Run ID | User | Problem | Result | Memory | Time | Language | Code Length | Submit Time |
6623536 | kingpro | 1012 | Accepted | 248K | 0MS | C++ | 247B | 2010-03-24 22:26:21 |
1
#include
<
iostream
>
2 using namespace std;
3
4 int main()
5 {
6 int x[ 14 ] = { 0 , 2 , 7 , 5 , 30 , 169 , 441 , 1872 , 7632 , 1740 , 93313 , 459901 , 1358657 , 2504881 };
7 int i = 0 ;
8 while ( 1 )
9 {
10 cin >> i;
11 if (i == 0 )
12 break ;
13 cout << x[i] << endl;
14 }
15 return 0 ;
16 }
2 using namespace std;
3
4 int main()
5 {
6 int x[ 14 ] = { 0 , 2 , 7 , 5 , 30 , 169 , 441 , 1872 , 7632 , 1740 , 93313 , 459901 , 1358657 , 2504881 };
7 int i = 0 ;
8 while ( 1 )
9 {
10 cin >> i;
11 if (i == 0 )
12 break ;
13 cout << x[i] << endl;
14 }
15 return 0 ;
16 }
我承认我作弊...哈哈...
x数组时这么算出来的:
1
int
main()
2 {
3 bool k[ 26 ];
4 for ( int i = 1 ; i < 14 ; i ++ )
5 for ( int s = 1 ; ;s ++ )
6 {
7 int j = 0 , n = 0 ;
8 for (j = 0 ; j < i * 2 && (k[j] = true ); j ++ );
9 for (j -= 1 ; n < i; n ++ )
10 {
11 for ( int m = 0 , t = s % ( 2 * i - n); m < t && (k[ ++ j >= i * 2 ? (j -= i * 2 , j) : j] && m ++ , true ););
12 if (j < i) break ;
13 k[j] = false ;
14 while ((j < 1 && (j += i * 2 ) && false ) || ! k[ -- j]);
15 }
16 if (n == i)
17 {
18 cout << i << " " << s << endl;
19 break ;
20 }
21 }
22 return 0 ;
23 }
2 {
3 bool k[ 26 ];
4 for ( int i = 1 ; i < 14 ; i ++ )
5 for ( int s = 1 ; ;s ++ )
6 {
7 int j = 0 , n = 0 ;
8 for (j = 0 ; j < i * 2 && (k[j] = true ); j ++ );
9 for (j -= 1 ; n < i; n ++ )
10 {
11 for ( int m = 0 , t = s % ( 2 * i - n); m < t && (k[ ++ j >= i * 2 ? (j -= i * 2 , j) : j] && m ++ , true ););
12 if (j < i) break ;
13 k[j] = false ;
14 while ((j < 1 && (j += i * 2 ) && false ) || ! k[ -- j]);
15 }
16 if (n == i)
17 {
18 cout << i << " " << s << endl;
19 break ;
20 }
21 }
22 return 0 ;
23 }
这个 恩…… 也是解题的一个方法...