08 2011 档案

摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 6 using namespace std; 7 8 queue<int>q; 9 int main() 10 { 11 int a, x, b, y; 12 int visit[9][9]; 13 char c1, c2, r1, r2; 14 15 while(cin>>c1>>r1>>c2>>r2) 16 { 17 mems 阅读全文
posted @ 2011-08-29 22:47 zhongya 阅读(361) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<iostream> 5 6 using namespace std; 7 8 char map[30][30]; 9 int vis[30]; 10 int dir[4][2] = {1,0,-1,0,0,-1,0,1}; //搜索的四个方向,这里用数组表示,为了下面表示方便11 int ans, row, col, loc; //loc表示搜索的深度。12 13 int Inmap(int nr,in 阅读全文
posted @ 2011-08-26 17:09 zhongya 阅读(763) 评论(0) 推荐(0)
摘要:1 先灌满A和先灌满B效果一样。 2 #include<stdio.h> 3 4 int main() 5 { 6 int ca, cb, n, i; 7 while(scanf("%d%d%d",&ca,&cb,&n) != EOF) 8 { 9 if(ca==1)//做一个判断,为1时直接灌n次即可10 {11 for(i=1; i<=n; i++)12 {13 printf("fill A\n");14 printf(... 阅读全文
posted @ 2011-08-25 17:03 zhongya 阅读(202) 评论(0) 推荐(0)
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 5 using namespace std; 6 7 int Prime(int x) 8 { 9 int i=2,flag = 1;10 while(i<=sqrt(double(x)) && flag==1)11 {12 if(x%i==0)13 {14 flag = 0;15 break;16 }17 i++;18 }19 ... 阅读全文
posted @ 2011-08-24 15:25 zhongya 阅读(214) 评论(0) 推荐(0)
摘要:1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 char s[7][7]; 7 int n, m,wall,ok; 8 int visit[7][7]; 9 int si, sj;10 int dir[4][2] = {-1,0,0,1,1,0,0,-1};//四个方向,这是做DFS常用的方法,要谨记。11 12 int dfs(int x,int y,int num)13 {14 if(num==n*m-wall-1) 15 return ok = 1;16 for ... 阅读全文
posted @ 2011-08-24 15:22 zhongya 阅读(198) 评论(0) 推荐(1)
摘要:1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 char s[7][7]; //将变量名放在主函数外面为了递归调用时方便。 7 int n,m,t,ok; 8 int visit[7][7]; 9 int dir[4][2] = {-1,0,0,1,1,0,0,-1};//分为查找的四个方向10 int Si,Sj,di,dj;11 12 int dfs(int x,int y,int step)13 {14 if(ok == 1) return 0; //ok==1表示找到出口了 阅读全文
posted @ 2011-08-24 15:18 zhongya 阅读(252) 评论(0) 推荐(1)
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<queue> 4 5 using namespace std; 6 7 queue<int>q; 8 int main() 9 {10 int i, w, h, k, j;11 int visit[21][21];12 char s[21][21];13 14 while(scanf("%d%d", &w, &h) != EOF)15 {16 if(w==0 && h==0) break;17 阅读全文
posted @ 2011-08-22 16:07 zhongya 阅读(238) 评论(0) 推荐(0)
摘要:需要用到一些数学公式:(a+b)%m = (a%m + b%m)%m(a*b)%m = (a%m * b%m)%m这是利用它的余数来优化,从而减少了计算量 1 #include<stdio.h> 2 #include<string.h> 3 4 int main() 5 { 6 int i, ncases, num, m; 7 long long k, sum; 8 char n[101]; 9 10 while(scanf("%d", &ncases) != EOF)11 {12 while(ncases--)13 ... 阅读全文
posted @ 2011-08-21 23:19 zhongya 阅读(185) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 3 int num[21][21][21] = {0}; 4 5 int w(int a,int b,int c) 6 { 7 if (a<=0 || b<=0 || c<=0) return 1; 8 if(a>20 || b>20 || c>20) return w(20,20,20); 9 if(num[a][b][c]) return num[a][b][c];10 11 if(a<b && b<c) return num[a][b][c] = w(a,b,c-1)+ 阅读全文
posted @ 2011-08-21 21:43 zhongya 阅读(261) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 int w[21][21][21]; 3 int main() 4 { 5 int a,b,c; 6 7 for(a=0; a<21; a++) 8 for(b=0; b<21; b++) 9 for(c=0; c<21; c++)10 {11 if(a<=0||b<=0||c<=0)12 w[a][b][c] = 1;13 else if(a<b && b<c)14 w[a][b][c] = w[a][b][c-... 阅读全文
posted @ 2011-08-21 21:40 zhongya 阅读(135) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<math.h> 5 #define N 2147483648 6 7 int cmp(const void *a,const void *b) 8 { 9 return *(int *)a - *(int *)b;10 }11 12 int main()13 {14 int k=0, i, j;15 int a[50000]; //数组最大不超过5万个,因为5万的平方大于N了。16 17 ... 阅读全文
posted @ 2011-08-21 11:23 zhongya 阅读(176) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<string.h> 3 #define N 101 4 5 int main() 6 { 7 int ncases, i, sum1, sum2; 8 int len1, len2, j; 9 char a[N], b[N];10 11 while(scanf("%d",&ncases) != EOF)12 {13 for (i=1; i<=ncases; i++)14 {15 scanf("%s%s",a,b);16 ... 阅读全文
posted @ 2011-08-20 20:59 zhongya 阅读(137) 评论(0) 推荐(1)
摘要:1 #include<iostream> 2 #include<queue> 3 #define MAXV 100000 4 using namespace std; 5 int sign[100001],len[100001]; //sign是用来做标记的,len用来走到重点需步长 6 int main() 7 { 8 int N, K, y; 9 cin >> N >> K;10 queue<int>Q;11 Q.push(N);12 len[N] = 0;13 while(!Q.empty())14 {15 ... 阅读全文
posted @ 2011-08-19 17:23 zhongya 阅读(148) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 3 int main() 4 { 5 int i, ncases; 6 int n; 7 8 while(scanf("%d", &ncases) != EOF) 9 {10 while(ncases--)11 {12 scanf("%d", &n);13 i = 0;14 while( n != 0)15 {16 if(n%2 == 1)17 ... 阅读全文
posted @ 2011-08-19 11:18 zhongya 阅读(172) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<math.h> 3 4 int sumdigit(int n) 5 { 6 int sum = 0; 7 while(n != 0) 8 { 9 sum += n%10;10 n /= 10;11 }12 return sum;13 }14 15 int Prime(int n) //判断素数因子的位数之和,这是关键。16 {17 int i, tn=n, sum =0;18 19 for( i = 2; i*i <= n; i... 阅读全文
posted @ 2011-08-18 22:06 zhongya 阅读(226) 评论(0) 推荐(1)
摘要:1 #include<stdio.h> 2 3 int gcd(int a,int b) 4 { 5 if(b == 0) 6 return a; 7 else 8 return gcd(b,a%b); 9 }10 11 int main()12 {13 int step, mod;14 15 while(scanf("%d%d", &step,&mod) != EOF)16 {17 printf("%10d%10d",step,mod);18 if(gcd(step,mod) == 1... 阅读全文
posted @ 2011-08-18 17:49 zhongya 阅读(184) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 3 int main() 4 { 5 int k, n; 6 long long num; 7 8 while(scanf("%d", &n) != EOF) 9 {10 k = 1; 11 num = 1;12 while(num%n != 0)13 {14 num = (num*10+1)%n; //一开始把n忘了写超时了,最后改了一下 15 k++;16 }17 prin... 阅读全文
posted @ 2011-08-18 17:47 zhongya 阅读(135) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 3 int main() 4 { 5 int ncases, k; 6 long n; 7 8 while(scanf("%d", &ncases) != EOF) 9 {10 while (ncases--)11 {12 scanf("%ld", &n);13 k = 1;14 while(n != 1)15 {16 k++;17 ... 阅读全文
posted @ 2011-08-18 14:01 zhongya 阅读(171) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 #define N 10002 4 5 int cmp(const void *a,const void *b) 6 { 7 return *(int *)a - *(int *)b; 8 } 9 10 int main()11 {12 int i,a[N], b[N],j;13 int n, m, count;14 15 while(scanf("%d %d", &n, &m) != EOF)16 {17 for(i=0; i<n; i++) 阅读全文
posted @ 2011-08-17 16:49 zhongya 阅读(134) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 #define MAX 100 4 5 typedef struct 6 { 7 int a; 8 int b; 9 }Point;10 Point P[MAX];11 12 int father[MAX],num[MAX];13 int Mak_set(int n)14 {15 int i;16 for (i=1; i<=n; i++)17 {18 father[i] = i; 19 num[i] = 0; 20 }21 }22 23 int Find_se... 阅读全文
posted @ 2011-08-17 16:39 zhongya 阅读(234) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 3 int main() 4 { 5 int i, k, h[25], max; 6 int j, temp, dp[25]; 7 8 while(scanf("%d", &k) != EOF) 9 {10 for(i=1; i<=k; i++)11 {12 scanf("%d", &h[i]);13 }14 15 for (i=k; i>0; i--)16 {17 temp = 0;... 阅读全文
posted @ 2011-08-16 20:31 zhongya 阅读(119) 评论(0) 推荐(0)
摘要:#include<stdio.h>int main(){ int i,j, N, h[1002],dp2[1002]; int temp, dp[1002], max; while(scanf("%d", &N) != EOF) { for(i=1; i<=N; i++) { scanf("%d", &h[i]); } dp[1] = 1; for (i=2; i<=N; i++) { temp = 0; for (j=1; j<i; j++) { if ((h[i]>h[j]) && 阅读全文
posted @ 2011-08-16 17:28 zhongya 阅读(132) 评论(0) 推荐(1)
摘要:#include<stdio.h>int main(){ int i, j, N, temp, max; int high[102],dp1[102],dp2[102]; while(scanf("%d", &N) != EOF) { scanf("%d", &high[1]); for(i=2; i<=N; i++) { scanf(" %d",&high[i]); } dp1[1] = 1; for (i=2; i<=N; i++) { temp = 0; for (j=1; j&l 阅读全文
posted @ 2011-08-16 17:23 zhongya 阅读(164) 评论(0) 推荐(1)
摘要:#include<stdio.h>#include<stdlib.h>#define N 30000#define M 500int rank[N], father[N],num[N]; /* rank指代数的层数,num指每个节点数目 */ int Make_set(int x) /* 初始化父节点 */{ int i; for (i=0; i<x; i++) { father[i] = i; rank[i] = 0; num[i] = 1; }}int Find_set(int x) /* 寻找父节点,运用递归查找 */{ if (x != father[x] 阅读全文
posted @ 2011-08-14 10:35 zhongya 阅读(147) 评论(0) 推荐(0)
摘要:#include<stdio.h>#include<stdlib.h>#include<string.h>#define INT_MAX 2500typedef struct{ int x, y; int w;}edge;edge e[INT_MAX];int rank[INT_MAX], father[INT_MAX], dis_sum;int cmp(const void *a,const void *b){ return (*(edge*)a).w > (*(edge*)b).w ? 1 : -1;}int Exchage(int n){ int 阅读全文
posted @ 2011-08-13 10:35 zhongya 阅读(205) 评论(0) 推荐(1)