摘要: View Code 1 /* 2 注意: 3 111111 的余数是 111110的余数 +1 4 以此类推 5 */ 6 7 #include<stdio.h> 8 9 int main()10 {11 int n;12 while(EOF != scanf("%d",&n))13 {14 int t = 1%n;15 int num = 1;16 while(t)17 {18 t = t*10 +1;19 num++;20 t%=n;21 }22 prin... 阅读全文
posted @ 2012-04-03 14:53 知行执行 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 声明:借鉴高手!一、 同余对于整数除以某个正整数的问题,如果只关心余数的情况,就产生同余的概念。定义1 用给定的正整数m分别除整数a、b,如果所得的余数相等,则称a、b对模m同余,记作a≡b(mod m),如 56≡0 (mod 8)。定理1 整数a,b对模m同余的充要条件是 a-b能被m整除(即m|a-b)。证 设a=mq1+r1, 0<=r1<m; b=mq2+r2, 0<=r2<m.若a≡b(mod m),按定义1,r1=r2,于是a-b=m(q1+q2),即有m|a-b.反之,若m|a-b,即m|m(q1-a2)+r1-r2,则m|r1-r2,但|r1-r2|& 阅读全文
posted @ 2012-04-03 08:43 知行执行 阅读(17206) 评论(1) 推荐(3) 编辑
摘要: View Code 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 char map[14][7]; 6 bool isw[14][7]; 7 bool f; 8 char newc[3]; 9 int m; 10 int dir[8][8]={ 11 {0,-1},{0,1},{-1,-1},{1,1}, 12 {-1,0},{1,0},{-1,1},{1,-1} 13 }; 14 15 void addnew() 16 { 17 ... 阅读全文
posted @ 2012-04-02 19:58 知行执行 阅读(8234) 评论(0) 推荐(0) 编辑
摘要: View Code 1 /* 2 这是一个贪心问题: 3 以岛屿为圆心,以雷达半径为半径画圆 和 X轴有两个交点 这就是说在这个范围内安装雷达都可以覆盖到 4 此岛屿 5 我们求出所有的这样的 区域 然后以左边界从小到大排列,左边界相同的 按右边界 从 大到小排列 6 7 我们只需关心 下一个范围十分 在 tr 左边 8 特别要注意的是 更新 tr 时 取得时 老 tr 和 新区域 右边界 r 两者的最小值 9 */10 #include<iostream>11 #include<algorithm>12 #include<cmath>13 using na 阅读全文
posted @ 2012-04-02 16:26 知行执行 阅读(238) 评论(0) 推荐(0) 编辑
摘要: View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int T[1001]; 5 int K[1001]; 6 7 int cmp(const void *x,const void *y) 8 { 9 int *m = (int *)x;10 int *n = (int *)y;11 return *m-*n;12 }13 14 int main()15 {16 int i,t;17 while(scanf("%d",&t) != EOF)18 {19 for(i=0;i<t;+ 阅读全文
posted @ 2012-04-02 12:52 知行执行 阅读(248) 评论(0) 推荐(0) 编辑
摘要: //10的8次方对 10003 mod 是 9 这是为什么要 乘以9了View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 5 char a[1000001]; 6 7 int main() 8 { 9 int t,zero,sum;10 int num,len,i;11 scanf("%d",&t);12 while(t--)13 {14 scanf("%s",a);15 sum=0;16 zero = 1;17 l 阅读全文
posted @ 2012-04-02 10:52 知行执行 阅读(220) 评论(0) 推荐(0) 编辑
摘要: View Code 1 #include<iostream> 2 using namespace std; 3 4 int divs(int m,int n) 5 { 6 if(m<0)return 0; 7 if(m == 0 || n==1)return 1; 8 return divs(m-n,n) + divs(m,n-1); 9 // 可以归纳为两种情况: 10 //divs(m-n,n) 表示 每个盘子中至少一个苹果 ,则剩下的 m - n个 可以 随意 向 n个盘子中放11 //divs(m,n-1) 表示 至少一个盘子 没有苹果 则 m... 阅读全文
posted @ 2012-04-01 19:24 知行执行 阅读(168) 评论(0) 推荐(0) 编辑
摘要: View Code 1 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 6 struct node 7 { 8 int x; 9 int f;10 int c;11 }a[101];12 13 bool cmp(node x,node y)14 {15 return x.c<y.c;16 }17 18 int main()19 {20 int i,j;21 int K,E,N;22 int m;23 cin>>m;24 for(i = 0;i<m... 阅读全文
posted @ 2012-04-01 13:40 知行执行 阅读(161) 评论(0) 推荐(0) 编辑
摘要: View Code 1 #include<stdio.h> 2 #include<iostream.h> 3 4 int divs(int m,int n) 5 { 6 if(n==1)return 1; 7 if(m == n)return 1; 8 if(m < n)return 0; 9 if(m>n)return divs(m-1,n-1) + divs(m-n,n);//divs(m-1,n-1)代表是第一位放 1 剩余的10 //m - 1位再在其余 n-1 位上分11 //divs(m-n,n)代表的是每一位上放的数字都大于112 //m .. 阅读全文
posted @ 2012-04-01 13:39 知行执行 阅读(212) 评论(0) 推荐(0) 编辑
摘要: View Code 1 #include<iostream> 2 using namespace std; 3 4 int divs(int m,int n) 5 { 6 if(m<1 || n<1)return 0; 7 if(m == 1 || n==1)return 1; 8 if(m<n)return divs(m,m); 9 if(m == n)return divs(m,m-1) + 1;10 return divs(m,n-1) + divs(m-n,n);11 }12 13 int main()14 {15 int t,n;16 cin>&g 阅读全文
posted @ 2012-04-01 13:38 知行执行 阅读(159) 评论(0) 推荐(0) 编辑