
算法题目
文章平均质量分 64
尘埃092
这个作者很懒,什么都没留下…
展开
-
UVA 10878
#include #include #include using namespace std;int main(){ char str[20]; int i, key; while( fgets(str, 20, stdin ) ) { if( str[i] == '_' ) continue;原创 2013-04-25 09:52:00 · 801 阅读 · 0 评论 -
uva 401
代码写得有点小繁琐,见谅吧....懒得再算数组顺序了#include #include #include #include using namespace std; int is_palindrome( char str[] ); int is_mirrored( char str[] );原创 2013-04-25 12:53:57 · 589 阅读 · 0 评论 -
uva 10115
#include #include #include char find[10][90];char replace[10][90];char input[300];void edit( char input[], int time ){ char temp1[300], temp2[300]; int i, j, len1, len2, t, turn, star原创 2013-05-07 16:49:39 · 703 阅读 · 0 评论 -
uva 10010
#include #include #include #include #include char ch[50][50];char find[20][80];int m, n, t, T;int equal( int y, int x, int len, int turn ){ int i, j, k, flag[8], value; for( i = 0; i < 8; i原创 2013-05-14 13:00:46 · 722 阅读 · 0 评论 -
uva 748 浮点乘法幂
#include #include #include #include #define MAX 20000int main(){ int n, p, i, j, k, x, carrey; int num[MAX], num1[MAX], num2[MAX]; char R[7]; while( scanf( "%s %d", R, &n ) == 2 ) { memse原创 2013-05-15 16:24:31 · 619 阅读 · 0 评论 -
uva 10420
#include #include #include #include char temp[1000], input[1000];char word[5000][1000];void change( int i, int j ){ char temp[1000]; strcpy( temp, word[i] ); strcpy( word[i], word[j] ); str原创 2013-05-16 08:57:46 · 925 阅读 · 0 评论 -
uva 152
这题最大难度在于英文,好吧,其实是求一个点到另外其他点的最小距离,如果小于10则记录一次#include #include #include #include #include inline double power( double num ){ return num*num;}int main(){ int dis[10], a, min; double x[6000原创 2013-05-16 21:29:11 · 687 阅读 · 0 评论 -
uva 11111
#include #include #include int input[6000];int n;int stack[6000];int stack_v[6000];bool deal( ){ int top = 0; int topv = 0; for( int i = 0; i < n; i++ ) { if( input[i] < 0 ) { if( t原创 2013-05-17 14:01:03 · 741 阅读 · 0 评论 -
uva 540
题目大意:有个所谓的team排序, 给出t个队伍,以及这些队伍的成员。 然后进行排队。 ENQUEUE x: 把x插入队列中时。如果队列没有该元素的队员,则插入队列的最后面。如果队列中已经有了他的队员,那么插入最后一个队员之后。 DEQUEUE: 把队头的元素删除,并且输出STOP: 停止解题思路:如果对链表熟悉,要模拟这个过程并不难原创 2013-05-20 14:54:04 · 889 阅读 · 0 评论 -
uva 784
这题深搜和宽搜都可以,感觉最贱的是最后输入的"_" input 输入几个下划线,output输出几个,好吧我没看清题wa 了3次dfs:#include #include #include #define MAX 81char map[31][81];int d[4][2] = { {1, 0}, {-1, 0}, {0, 1}, {0, -1} };int startx原创 2013-05-22 19:00:18 · 732 阅读 · 0 评论 -
uva 10714
这章什么高效算法设计啊,这题初看貌似很高端,后来分析了集中情况,这连模拟题都不是,最弱智的数的大小,好吧,主要是分析蚂蚁极端情况,思路我就不透露了#include #include int ants[100000];int main(){ int len, t, max, min, n, lin; scanf( "%d", &t ); while(t--) { scanf原创 2013-05-24 16:28:20 · 677 阅读 · 0 评论 -
uva 11054
题很简单,思路也不难,就是一个贪心,但是第一次写用最直观的模拟,结果导致了TLE,必然,数据量大概是100000,我的程序大概最坏的话应该是个O(n2)TLE 了这是我的TLE代码#include #include #include int a[200000];long long cost;int n;inline int abs( int a ){ if( a < 0原创 2013-05-26 19:41:59 · 971 阅读 · 0 评论 -
uva 10905
很水的贪心,重点在于如何排序字符串。开始我用的排序方法是按字典序比,不过不一样的是,如果前面的字母都一样,单词短的排前面,开始觉得没什么问题,后来遇见这个数据就跪了。。2 9909 990最后使用了c++ 的string比较, 思路是两个string : a 和 b 连接成a+b 或者b+a ,直接比较即可。#include #include #include原创 2013-06-06 15:35:45 · 896 阅读 · 0 评论 -
uva 10282 Trie树
字典树是哈希树的一种,通常用于字符串匹配,由于思想和实现都很简单,所以我就不再介绍了,自己google之吧。。很水的题,RE了一次,好吧我现在太浮躁了...#include #include #include #include #include #define CLR(array,val) memset(array,val,sizeof(array))#define MAX 2原创 2013-06-11 16:33:50 · 772 阅读 · 0 评论 -
uva 993
一个数分解,不过是从2开始的,1 分解是 1 2分解是 2 3分解是 3 4 分解是 4 不清楚为什么 10 分解不是10 而是 2 5题目说是找最小的Q 但是 10 不是比25 小吗? 但是好像题目就是让你找从小到大的分解。。所以这题不太懂#include#include#include#include#include#原创 2013-07-18 08:24:33 · 664 阅读 · 0 评论 -
uva 712
简单的建立树,遍历 数据也很水1A的题#include #include #include #include int time = 1, n;int tree[1000];int flag;void deal( int i ){ if( flag == -1 ) return ; if( i >= pow(2,n)-1 ) { printf( "%d", tree原创 2013-07-22 09:58:55 · 735 阅读 · 0 评论 -
UVA 539
/*好长时间没有A题了,写个简单搜索连memset( map, 0, sizeof(map) )都忘了,TLE了2次...唉...*/#include #include #define MAX 100int map[MAX][MAX], max;int vis[MAX][MAX];int node, elem;void dfs( int n, int cal ){ int i;原创 2013-01-12 15:28:30 · 431 阅读 · 0 评论 -
UVA 167
//纯八皇后问题,没什么好说的#include #include #include int map[10][10];int sum, max, C[20000];void dfs( int cur ){ int i, j, ok; if( cur == 8 ) { sum = 0; for( i = 0; i < 8; i++ ) sum += map[i][C[原创 2012-12-28 16:29:19 · 712 阅读 · 0 评论 -
UVA 639
#include int N;int cal, max;char map[10][10];void dfs( int cal ){ int i, j; if( cal > max ) max = cal; for( i = 1; i <= N; i++ ) for( j = 1; j <= N; j++ ) if( map[i][j] == '.' && canp原创 2012-12-23 15:27:11 · 636 阅读 · 0 评论 -
ZOJ 1242
//半衰期log2 ?//代码参考网上的,用到了换底公式#include #include #include int main(){ int w, d, cout = 1; int dec = 5730, result; double temp, year; while( scanf( "%d%d", &w, &d )!= EOF && w ) {原创 2012-09-20 09:23:00 · 563 阅读 · 0 评论 -
南阳理工 oj 图的邻接表dfs dfs 均可
//有点郁闷深搜过来, 广搜没过,求大神指点啊#include #include #include int n;struct node{ int num; struct node * next; };struct data{ int prior; node * last_linked;}map[100000];node q[20000];int front, rea原创 2013-06-04 11:55:59 · 692 阅读 · 0 评论 -
NYOJ 布线问题 prim
//普通邻接矩阵 时间复杂度 O(v*e)#include #include #include #include #define INF 999999int v;int map[505][505];int lowcost[505];int visit[1000];int prim( int start ){ int min, choose, ans; ans = 0;原创 2013-06-05 18:44:36 · 830 阅读 · 0 评论 -
UVA 133
/*约瑟夫问题吧,,,水题*/#include #include #include int main(){ int N, k, m, i, time, j, mem[60],x; while( scanf( "%d%d%d", &N, &k, &m ) && N && k && m ) { x = N; memset( mem,原创 2012-11-29 21:43:35 · 550 阅读 · 0 评论 -
UVA 10152
/* 这道题本来柯神说用广搜,最后我想出来了一个超easy的方法,哈哈 !!! */#include #include char in[200][100], temp[200][100];int out[200];int main(){ int K, n, i, j, s; scanf( "%d", &K ); getchar(); while( K-- )原创 2012-12-01 15:50:18 · 462 阅读 · 0 评论 -
UVA 673
/*简 单 的 栈 问 题 ...1A 水 过~~*/#include #include char str[200];char stack[300];int top;int main(){ int N, len, i, flag; scanf( "%d", &N ); getchar(); while( N-- ) { flag = 1; top = 0;原创 2012-12-02 15:54:11 · 393 阅读 · 0 评论 -
UVA 10050
/*大水题,用比较笨的方法模拟的*/#include #include int part[200][4000];int main(){ int N, time, x, p, count, cal[4000], a, b, i, t; scanf( "%d", &time ); while( time-- ) { memset( part, 0, sizeof(part) )原创 2012-12-03 20:52:20 · 502 阅读 · 0 评论 -
UVA 11234
/*这道题我完全按照题目的意思先把simple input 读入栈,然后建立符号判断树,然后再用队列也就是树的BFS搜索,思路明确,给的数据也很简单,一遍AC*/#include #include #include #include #define MAX 12000typedef struct node{ char val; struct node* left; s原创 2012-12-05 07:51:36 · 564 阅读 · 0 评论 -
UVA 442
/*这题思路简单,写起来有点小麻烦,建议用函数写,如有疑问,欢迎留言*/#include #include #include #include int p[200][200], top, flag, sum;char stack[200];char str[2000];typedef struct matrix{ char n; int row, col;}M;int m原创 2012-12-06 09:57:34 · 501 阅读 · 0 评论 -
UVA 146
/*很郁闷為什麼这么水的字母串+O(n2)排序為什麼是暴力搜索这章节的,好吧,不管三七二十一先过了水题*/#include #include #include char str[200];int len;void insert( int j, int i ){ int t, temp; temp = str[i]; for( t = i-1; t >= j; t-- )原创 2012-12-09 21:10:49 · 504 阅读 · 0 评论 -
UVA 101
/*这题写了4个小时快....哭了....确保UVA POJ均可AC*/#include #include #include #include int block[100][100];int N, top[100];void clear( int x, int y ){ int i, s; for( i = top[x]-1; i >= y; i-- ) for( s =原创 2012-12-11 19:45:35 · 365 阅读 · 0 评论 -
UVA 439
#include #include #include int d[8][2]={{1,2},{2,1},{-1,2},{-1,-2},{1,-2},{-2,-1},{-2,1},{2,-1}};int q[100];int dis[10][10];int vis[10][10];void bfs( int x, int y ){ int front, rear, nx, ny,原创 2012-12-13 10:42:13 · 457 阅读 · 0 评论 -
UVA 532
/* 三维map上的 搜索, BFS水过*/#include #include #include int map[100][100][100];int vis[100][100][100];int dis[100][100][100];int h, m, n;int d[6][3] = { {-1,0,0}, {1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,原创 2012-12-13 21:39:20 · 607 阅读 · 0 评论 -
UVA 10004
#include #include #include int v;int q[20000];int map[300][300], vis[300], val[300];void bfs( int x ){ int front, rear, a = 0, nx, next; front = rear = 0; q[front++] = x; val[x] = 1; vis[x原创 2012-12-16 18:10:05 · 511 阅读 · 0 评论 -
UVA 10344
/*刚开始TLE 后来发现递归函数找到23点的时候推到上一层就不超时了,好吧。。。*/#include #include #include int sign[100][10];int flag;void print( int *A, int *P, int cur ){ int i, j, c1, c2, sum; if( cur == 5 ) { for( i = 0;原创 2012-12-18 20:07:09 · 567 阅读 · 0 评论 -
UVA 216
#include #include #include #define MAX 200int n;int p[MAX], ans[MAX], used[MAX]; float x[MAX], y[MAX], min;float cal( float x1, float y1, float x2, float y2 ){ return sqrt( pow(x1-x2, 2) + po原创 2012-12-20 10:50:15 · 495 阅读 · 0 评论 -
uva 644
第一次交用的冒泡排序,Re了, 改成快排OK#include #include #include #include using namespace std;char temp[100][10];int cmp( const void *_a, const void * _b ){ char * a = (char*)_a; char * b = (char*)_b原创 2013-04-29 15:18:04 · 728 阅读 · 0 评论 -
ZOJ 2704 括号匹配栈
/*这道题因为int stack[] 写成了 char stack[] 导致 括号超过255就出问题了。。。。。。让我纠结了好几天,真悲剧,以后检查题一定要从变量类型,开始检查*/#include #include char str[100100];int stack[100100];int flag[100100];int len, i, num, max, b, top原创 2012-11-15 08:55:46 · 708 阅读 · 0 评论 -
dijkstra O(n2) 算法模版
#include #include using namespace std;const int maxint = 9999999;const int maxn = 1010;int data[maxn][maxn], lowcost[maxn];//data 存放点点之间的距离, lowcost存放点到start 的距离,从0开始存放bool used[maxn]; //标记点是否原创 2012-11-16 20:09:45 · 720 阅读 · 0 评论 -
zoj 1243
//水#include #include using namespace std;int main(){ int cases; string str1, protocol, port, address, dictionary; cin >> cases; for (int t = 0; t != cases; ++t) {原创 2012-09-20 16:55:37 · 577 阅读 · 0 评论 -
HDOJ 1022经典火车调度问题
#include #include #include #define max 100char stack[max];int top;int empty(){ if( top == 0 ) return 1; return 0;}int main(){ char in[max], out[max]; int n, j, q[max]原创 2012-11-14 10:24:22 · 836 阅读 · 0 评论