USACO Chapter 1 Section 1.5

 1 /*
 2 ID:xiekeyi1
 3 PROG:numtri
 4 LANG:C++
 5 */
 6 #include<bits/stdc++.h>
 7 using namespace std ;
 8 const int maxn = 1000 + 10 ;
 9 // ´ÓÉÏÍùÏÂ
10 int data[maxn][maxn] , dp[maxn][maxn];
11 
12 int main()
13 {
14     freopen("numtri.in","r",stdin);
15     freopen("numtri.out","w",stdout);
16     int n ;
17     cin >> n ;
18     for( int i = 1 ; i <= n ; i++)
19         for( int j = 1 ; j <= i ; j++)
20             cin >> data[i][j] ;
21 
22     dp[1][1] = data[1][1] ;
23 
24     for( int i = 2 ; i <= n ; i++)
25         {
26             for( int j = 1 ; j <= i ; j++)
27                 {
28                     dp[i][j] = max(dp[i-1][j-1] , dp[i-1][j] ) + data[i][j] ;  //×¢Òâ±ß½çÎÊÌâ
29                 }
30         }
31 
32     int ans = 0 ;
33 
34     for( int i = 1 ; i <= n ; i++)
35         ans = max( dp[n][i] , ans ) ;
36     cout << ans << endl ;
37     return 0 ;
38 }
numtri

 

 

 

  1 /*
  2 ID:xiekeyi1
  3 PROG:pprime
  4 LANG:C++
  5 */
  6 #include<bits/stdc++.h>
  7 using namespace std ;
  8 
  9 
 10 bool isprime( int n )
 11 {
 12     if( n == 0 || n == 1 )
 13         return false ; 
 14     if( n == 2 )
 15         return true ;
 16     int sqrt_n = sqrt(n) ; 
 17     for( int i = 2 ; i <= sqrt_n ; i++)
 18         if( n % i == 0 )
 19             return false ;
 20     return true ; 
 21 }
 22 
 23 
 24 int digit( int n )
 25 {
 26     int d = 0 ;
 27     while( n != 0 )
 28         n/=10 , d++;
 29     return d ; 
 30 }
 31 
 32 void f( int a , int b , int n )
 33 {
 34     if( n >= a && n <= b  && isprime( n ) )
 35         cout << n << endl ;
 36     return  ; 
 37 }
 38 
 39 void func( int a , int b , int dd1 , int dd2)
 40 {
 41     int palindrom = 0; 
 42     for( int i = dd1 ; i <= dd2; i++)
 43     {
 44         if( i == 1 )
 45         {
 46             for( int d1 = 0 ; d1 <= 9 ; d1++)
 47             {
 48                 palindrom = d1 ; 
 49                 f(a,b,palindrom) ;
 50             }
 51         }
 52         else if ( i == 2 )
 53         {
 54             for( int d1 = 1 ; d1 <= 9 ; d1++)
 55             {
 56                 palindrom = 1e1 * d1 + 1e0 * d1 ;
 57                 f(a,b,palindrom);
 58             }
 59         }
 60         else if( i == 3 )
 61         {
 62             for( int d1 = 1 ; d1 <= 9 ; d1++)
 63             {
 64                 for( int d2 = 0 ; d2 <= 9 ; d2++)
 65                 {
 66                     palindrom = 1e2 * d1 + 1e1 * d2 + d1 ;
 67                     f(a,b,palindrom);
 68                 }
 69             }
 70         }
 71         else if( i == 4 )
 72         {
 73             for( int d1 = 1 ;  d1 <= 9 ; d1++)
 74             {
 75                 for( int d2 = 0 ; d2 <= 9 ; d2++)
 76                 {
 77                     palindrom = 1e3 * d1 + 1e2 * d2 + 1e1 * d2 + 1e0 * d1 ;
 78                     f(a,b,palindrom) ;
 79                 }
 80             }
 81         }
 82         else if( i == 5 )
 83         {
 84             for( int d1 = 1 ; d1 <= 9 ; d1++)
 85             {
 86                 for( int d2 = 0 ; d2 <= 9 ; d2++ )
 87                 {
 88                     for( int d3 = 0 ; d3 <= 9 ; d3++)
 89                     {
 90                         palindrom = 1e4 * d1 + 1e3 * d2 + 1e2 * d3 + 1e1 * d2 + 1e0 * d1 ;
 91                         f(a,b,palindrom) ;
 92                     }
 93                 }
 94             }
 95         }
 96 
 97         else if( i == 6 )
 98         {
 99             for( int d1 = 1 ; d1 <= 9 ; d1++)
100             {
101                 for( int d2 = 0 ; d2 <= 9 ; d2++)
102                 {
103                     for( int d3 = 0 ; d3 <= 9 ; d3++)
104                     {
105                         palindrom = 1e5 * d1 + 1e4 * d2 + 1e3 * d3 + 1e2 * d3 + 1e1 * d2 + 1e0 * d1 ;
106                         f(a,b,palindrom);
107                     }
108                 }
109             }
110         }
111 
112         else if( i == 7 ) 
113         {
114             for( int d1 = 1 ; d1 <= 9 ; d1++)
115             {
116                 for( int d2 = 0 ; d2 <= 9 ; d2++)
117                 {
118                     for( int d3 = 0 ; d3 <= 9 ; d3++)
119                     {
120                         for( int d4 = 0 ; d4 <= 9 ; d4++)
121                         {
122                             palindrom = 1e6 * d1 + 1e5 * d2 + 1e4 * d3 + 1e3 * d4 + 1e2 * d3 + 1e1 * d2
123                                 + 1e0 * d1 ;
124                             f(a,b,palindrom);
125                         }
126                     }
127                 }
128             }
129         }
130 
131         else if( i == 8 )
132         {
133             for( int d1 = 1 ; d1 <= 9 ; d1++)
134                 for( int d2 = 0 ; d2 <= 9 ; d2++)
135                     for( int d3 = 0 ; d3 <= 9 ; d3++)
136                         for( int d4 = 0 ; d4 <=9 ; d4++)
137                         {
138                             palindrom = 1e7 * d1 + 1e6 * d2 + 1e5 * d3 + 1e4 * d4 + 1e3 * d4 + 1e2 * d3 
139                                 + 1e1 * d2 + 1e0 * d1 ;
140                             f(a,b,palindrom);
141                         }
142         }
143 
144         else if( i == 9 )
145         {
146             for( int d1 = 1 ; d1 <= 9 ; d1++)
147                 for( int d2 = 0 ; d2 <= 9 ; d2++)
148                     for( int d3 = 0 ; d3 <=9 ; d3++ )
149                         for( int d4 = 0 ; d4 <= 9 ; d4++)
150                             for( int d5 = 0 ; d5 <= 9 ; d5++)
151                             {
152                                 palindrom = 1e8 * d1 + 1e7 * d2 + 1e6 * d3 + 1e5 * d4 + 1e4 * d5
153                                       + 1e3 * d4 + 1e2 * d3 + 1e1 * d2 + 1e0 * d1 ;
154                                 f(a,b,palindrom);
155                             }
156         }
157     }
158     return ; 
159 }
160 
161 
162                 
163 
164 
165 
166 
167 int main()
168 {
169     freopen("pprime.in","r",stdin);
170     freopen("pprime.out","w",stdout);
171     int a  , b ;
172     cin >> a >> b ;
173     int d1 = digit(a) , d2 = digit(b) ;
174     func( a , b , d1 , d2 ) ; 
175     return 0 ;
176 }
pprime

 

 

 

 

 1 /*
 2 ID:xiekeyi1
 3 PROG:sprime
 4 LANG:C++
 5 */
 6 
 7 #include<bits/stdc++.h>
 8 using namespace std ;
 9 
10 int ans = 0 ; 
11 bool isprime( int n )
12 {
13     if( n == 0 || n == 1 )
14         return false ;
15     if( n == 2 )
16         return true ;
17     for( int i = 2 ; i <= sqrt(n) ; i++)
18         if(  n % i == 0 )
19             return false ;
20     return true ;
21 }
22 
23 void dfs( int n )
24 {
25     if( n == 0 )
26     {
27         cout <<  ans << endl ;
28     }
29 
30     for( int i = 1 ; i <= 9 ; i++)
31     {
32         int t = ans ; 
33         ans = i + ans * 10 ;
34         if( isprime ( ans ) ) 
35             dfs( n - 1 ) ;
36         ans = t ; 
37 
38     }
39 }
40 
41 
42     
43 
44 int main()
45 {
46     freopen("sprime.in","r",stdin);
47     freopen("sprime.out","w",stdout);
48     
49     int n ;
50     cin >> n ;
51     ans = 0 ;
52     dfs(n) ;
53     return 0 ;
54 }
srime

 

posted on 2017-05-04 23:11  Dark猫  阅读(125)  评论(0)    收藏  举报

导航