随笔分类 - POJ水题
摘要:http://poj.org/problem?id=3087题意:每组3个串,前两个串长度为n,第三个串长度为2*n,依次从第二个串(s2)中取一个字符,从第一个串(s1)中取一个字符,......,直至取完,如果组成的新串(s)和第三个字符串相同则输出组数和匹配成功的次数,如果不相同,则将s串的前n个字符作为s1,后n个字符作为s2,接着匹配,如果永远匹配不成s,则输出组数和-1。思路:简单的字符串模拟,关键是判断输出-1的情况,如果一直匹配与 s不同,但与原来的strcat(s1,s2)相同,则证明无法匹配成功,因为此时字符串已经匹配了一个周期。 1 #include 2 #includ.
阅读全文
摘要:http://poj.org/problem?id=3080寻找最长公共子串。。暴搜的。。 1 #include 2 #include 3 int main() 4 { 5 int t,n; 6 char s[12][62],ss[62],str[62]; 7 scanf("%d",&t); 8 while(t--) 9 {10 scanf("%d%*c",&n);11 int i,j,k;12 for (i = 0; i max_len)32 {33 ...
阅读全文
摘要:http://poj.org/problem?id=1035题意:给定一个单词判断其是否在字典中,若存在输出"%s is correct",否则判断该单词删掉一个字母,或增加一个字母,或替换一个字母后是否存在于字典中。 1 #include 2 #include 3 int deal(char *s1,char *s2) 4 { 5 int i = 0; 6 int len1 = strlen(s1); 7 int len2 = strlen(s2); 8 if(len1==len2)//替换 9 {10 while(i < len1 &...
阅读全文
摘要:http://poj.org/problem?id=3006 1 #include 2 #include 3 int is_prime(int n) 4 { 5 int i,m; 6 if (n==1) 7 return 0; 8 m = sqrt(n); 9 for (i = 2; i <= m; i ++)10 {11 if (n%i==0)12 return 0;13 }14 return 1;15 }16 int main()17 {18 int a,d,n,i;19...
阅读全文
摘要:http://poj.org/problem?id=2499 1 #include 2 int main() 3 { 4 int t,a,b; 5 scanf("%d",&t); 6 for (int i = 1; i b)14 {15 l += a/b;16 a = a % b;17 }18 else19 {20 r += b/a;21 b = ...
阅读全文
摘要:http://poj.org/problem?id=1316 1 #include 2 #include 3 int f[10001]; 4 int main() 5 { 6 int i; 7 memset(f,0,sizeof(f)); 8 for (i = 1; i < 10001; i ++) 9 {10 int n = i;11 int ans = n;12 while(n)13 {14 ans += n%10;15 n /= 10;16 ...
阅读全文
摘要:http://poj.org/problem?id=2388 1 #include 2 #include 3 const int N=10010; 4 using namespace std; 5 int main() 6 { 7 int f[N],n,i; 8 scanf("%d",&n); 9 for (i = 1;i <= n;i ++)10 scanf("%d",&f[i]);11 sort(f+1,f+1+n);12 printf("%d\n",f[(n+1)/2]);13 return 0;14 }V
阅读全文
摘要:http://poj.org/problem?id=2105 1 #include 2 #include 3 int main() 4 { 5 char str[101]; 6 int pow[8] = {1,2,4,8,16,32,64,128}; 7 int n,t; 8 scanf("%d",&n); 9 while(n--)10 {11 int ans = 0;12 t = 1;13 scanf("%s",str);14 int len = strlen(str);15 ...
阅读全文
摘要:http://poj.org/problem?id=1552 1 #include 2 const int N=102; 3 int main() 4 { 5 int n,f[N],g[N]; 6 int cnt; 7 while(1) 8 { 9 cnt = 0;10 scanf("%d",&n);11 if (n==-1)12 break;13 f[0] = n;14 g[0] = 2*n;15 int i ;16 for ...
阅读全文
摘要:http://poj.org/problem?id=1207此题注意比较n,m的大小,还有最后的原样输出。 1 #include 2 int main() 3 { 4 int n,m,i,j,max,t; 5 while(~scanf("%d%d",&n,&m)) 6 { 7 int n1 = n; 8 int m1 = m; 9 max = 0;10 if(n > m)11 {12 t = n;13 n = m;14 ...
阅读全文
摘要:http://poj.org/problem?id=1008按第一种记录方法算出总天数,然后按第二种记录方式输出。#include#includechar Hab[20][11] = { "","pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", &
阅读全文
摘要:http://poj.org/problem?id=1005#include#include#include const double pi = acos(-1.0);int main(){ int t,j; scanf("%d",&t); for (int i = 1;i = 1.0/2*(pi*r)) break; cnt++; } printf("Property %d: This property will begin eroding in year %d.\n",i, cnt); } ...
阅读全文
摘要:http://poj.org/problem?id=1003题意:最上面的卡片露出它下面卡片的1/2,第二个上面的卡片露出它下面的1/3,......,依次类推。。求能放的卡片数。。。#include#includeint main(){ double len; while(~scanf("%lf",&len)&&len) { double sum = 0; int i; for ( i = 2;; i ++) { sum +=1.0/i; if(sum >= len) ...
阅读全文
摘要:http://poj.org/problem?id=1046纯水题。。找距离最短的输出。。#include#includeconst int INF=1<<28;struct node{ int r; int g; int b;} a[20];int main(){ int i,r1,g1,b1,dis,pos; for (i = 0 ; i < 16; i ++) { scanf("%d%d%d",&a[i].r,&a[i].g,&a[i].b); } while(1) { int min = INF; ...
阅读全文
摘要:http://poj.org/problem?id=2000#includeconst int N=10010;int main(){ int coin[N]; long long n,i = 1,j,k; j = 1; k = 0; while (i = j) { k = 0; j++; } } while(~scanf("%lld",&n)&&n) { long long scoin = 0; for (i = 1; i <= n; i ++...
阅读全文
摘要:http://poj.org/problem?id=1218题意:门的状态有两种开或关,初始化为开,每次进行状态转换,第一次把门号是1的倍数的门状态转换,第二次把门号是2的倍数的门状态转换,......,第n次把状态是n的倍数的门状态转换,输出最后有几个门是开的状态。#include#includeint main(){ int i, t,a[1010],n; scanf("%d",&t); while(t--) { scanf("%d",&n); memset(a,0,sizeof(a)); for (i = 1; i <= ..
阅读全文
摘要:http://poj.org/problem?id=2017 1 #include 2 int main() 3 { 4 int n,mile,hour; 5 while(~scanf("%d",&n)&&n!=-1) 6 { 7 int sum = 0,h = 0; 8 while(n--) 9 {10 scanf("%d%d",&mile,&hour);11 h = hour-h;12 sum += mile*h;13 h ...
阅读全文

浙公网安备 33010602011771号