USACO 1.2 Dual Palindromes
跟上一个题基本差不多,题目是不是有歧义啊。。。这个题的意思是2-10进制中至少在两个进制上是回文的,理解错了题意挂了一次。。。
1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: dualpal 5 */ 6 #include <iostream> 7 #include <cstdio> 8 #include <cstring> 9 #include <cstdlib> 10 #include <map> 11 using namespace std; 12 int judge(int x,int n) 13 { 14 int p[30],i,num; 15 num = 1; 16 while(x > 0) 17 { 18 p[num++] = x%n; 19 x /= n; 20 } 21 for(i = 1; i <= num/2; i ++) 22 { 23 if(p[i] != p[num-i]) 24 break; 25 } 26 if(i == num/2+1) 27 return 1; 28 else 29 return 0; 30 } 31 int main() 32 { 33 int i,n,s,j,k; 34 freopen("dualpal.in","r",stdin); 35 freopen("dualpal.out","w",stdout); 36 scanf("%d%d",&n,&s); 37 j = 1; 38 for(i = s+1; j <= n; i ++) 39 { 40 int num = 0; 41 for(k = 2; k <= 10; k ++) 42 { 43 if(judge(i,k)) 44 { 45 num ++; 46 } 47 } 48 if(num >= 2) 49 { 50 printf("%d\n",i); 51 j ++; 52 } 53 } 54 return 0; 55 }