1 #include<bits/stdc++.h> 2 using namespace std; 3 4 inline max(int a, int b) { 5 return a>b?a:b; 6 } 7 8 int f(char* x,char* y) { 9 if(strlen(x)==0) return 0; 10 if(strlen(y)==0) return 0; 11 12 if(*x == *y) return f(x+1, y+1) + 1; 13 14 return max(f(x+1,y),f(x,y+1)); 15 } 16 17 int main() { 18 printf("%d\n", f("ac","abcd")); //2 19 printf("%d\n", f("acebbcde1133","xya33bc11de")); //5 20 system("pause"); 21 return 0; 22 } 23 24 25 26 27 #include<bits/stdc++.h> 28 using namespace std; 29 30 double a = 1.0; 31 double flag = 1; 32 double sum = 0.0; 33 34 int main() { 35 for(int i=1 ; i<=100 ; ++i) { 36 sum+= flag*(1.0/(2*i-1)) , flag *= -1; 37 } 38 cout<<4.0*sum<<endl; 39 } 40 41 42 43 #include<bits/stdc++.h> 44 using namespace std; 45 46 int main() { 47 for(double i=2.0; i<=3.0; i=i+0.0000001) { 48 if(fabs(pow(i,i)-10.0)<0.000001) printf("%.6lf\n",i); 49 } 50 } 51 52 53 54 55 #include<bits/stdc++.h> 56 using namespace std; 57 58 int vis1[8],vis2[8],a[20]; 59 60 void dfs(int x) { 61 if(x==14) { 62 for (int i=1; i<=14; ++i) cout<<a[i]<<' '; 63 cout<<endl; 64 } else { 65 for(int i=1; i<=7; ++i) { 66 if(vis2[i]) ; 67 else if(!vis1[i]) { 68 a[++x]=i,vis1[i]=x; 69 dfs(x); 70 a[x--]=0,vis1[i]=0; 71 } else { 72 if(x-vis1[i]==i) { 73 a[++x]=i,vis2[i]=x; 74 dfs(x); 75 a[x--]=0,vis2[i]=0; 76 } 77 } 78 } 79 } 80 } 81 82 int main() { 83 a[1]=7,a[2]=4,vis1[7]=1,vis1[4]=2; 84 dfs(2); 85 } 86 87 88 89 90 #include<bits/stdc++.h> 91 #define ll long long 92 using namespace std; 93 94 ll a,b,c,cc; 95 int cnt=0; 96 int main() { 97 scanf("%d",&c); 98 cc=c*c; 99 for(ll i=1; i<c; ++i) { 100 b=sqrt(cc-i*i); 101 if(b*b+i*i==cc) cnt++; 102 } 103 cout<<cnt/2<<endl; 104 } 105 106 107 108 #include<bits/stdc++.h> 109 #define N 20 110 using namespace std; 111 112 char tmp; 113 int M[N][N]; 114 bool col[N][N],row[N][N],mat[N][N],flag=false; 115 116 bool check(int x,int y,int k) { 117 return (!col[x][k])&&(!row[y][k])&&(!mat[ ((x-1)/3)*3 + ((y-1)/3+1) ][k]); 118 } 119 120 void dfs(int x,int y) { 121 if(flag) return ; 122 else if(x==10) { 123 for(int i=1; i<=9; ++i) { 124 for(int j=1; j<=9; ++j) { 125 cout<<M[i][j]; 126 } 127 cout<<endl; 128 } 129 flag = true; 130 } else if(M[x][y]) dfs(x+ (y==9) ,y%9+1); 131 else { 132 for(int k=1; k<=9; ++k) { 133 if(check(x,y,k)) { 134 col[x][k]=row[y][k]=mat[ ((x-1)/3)*3 + ((y-1)/3+1) ][k] = true,M[x][y]=k; 135 dfs(x+ (y==9) ,y%9+1); 136 col[x][k]=row[y][k]=mat[ ((x-1)/3)*3 + ((y-1)/3+1) ][k] = false,M[x][y]=0; 137 } 138 } 139 } 140 } 141 142 int main() { 143 for(int i=1; i<=9; ++i) { 144 for(int j=1; j<=9; ++j) { 145 scanf("%c",&tmp); 146 M[i][j]=tmp-'0'; 147 if(M[i][j]) { 148 col[i][M[i][j]]=row[j][M[i][j]]=mat[ ((i-1)/3)*3 + ((j-1)/3+1) ][M[i][j]] = true; 149 } 150 } 151 getchar(); 152 } 153 dfs(1,1); 154 } 155 156 157 158 #include<bits/stdc++.h> 159 using namespace std; 160 161 const int MOD = 10007; 162 const int MAXN = 1e5+5; 163 164 int dp[MAXN][2],n,tmp; 165 166 vector<int> edge[MAXN]; 167 168 void add(int u,int v) { 169 edge[u].push_back(v); 170 } 171 172 void dfs(int x) { 173 dp[x][0]=dp[x][1]=1; 174 for(int i=0; i<edge[x].size(); ++i) { 175 int&v = edge[x][i]; 176 dfs(v); 177 dp[x][1]=(dp[x][1]*dp[v][0])%MOD; 178 dp[x][0]=(dp[x][0]*(dp[v][0]+dp[v][1]))%MOD; 179 } 180 } 181 182 int main() { 183 scanf("%d",&n); 184 for(int i=2; i<=n; ++i) { 185 scanf("%d",&tmp); 186 add(tmp,i); 187 } 188 dfs(1); 189 cout<<(dp[1][0]+dp[1][1]-1)%MOD<<endl; 190 }
2015 - 蓝桥省赛
猜你喜欢
转载自www.cnblogs.com/chunibyo/p/10559594.html
今日推荐
周排行