1 solutions
-
0
答案是 CDEBEEDCBA
#include<cstdio> #include<string> #include<cstring> #include<utility> #include<cmath> #include<map> #include<queue> #include<set> #include<algorithm> #include<vector> #include<iostream> #define ll long long #define pii pair<int,int> #define mp make_pair #define fi first #define se second #define inf 0x7fffffff using namespace std; string s; int c[100]; int count(char ch) { return c[ch-'A']; } int dfs(int x) { if(x==10) { if(s.find('B')+1==s[0]-'A'+2)//1 { int x=0,y,i; for(i=1;i<10;i++) { if(s[i]==s[i-1])x++,y=i; } if(x==1&&y==s[1]-'A'+2)//2 if(s[2]=='A'&&s[0]=='A'||s[2]=='B'&&s[1]=='B'||s[2]=='C'&&s[3]=='C' ||s[2]=='D'&&s[6]=='D'||s[2]=='E'&&s[5]=='E')//3 if(count('A')==s[3]-'A')//4 if(s[4]=='A'&&s[9]=='A'||s[4]=='B'&&s[8]=='B'||s[4]=='C'&&s[7]=='C' ||s[4]=='D'&&s[6]=='D'||s[4]=='E'&&s[5]=='E')//5 if(s[5]<='D'&&count('A')==count(s[5]+1)||s[5]=='E'&&count('A')!=count('B') &&count('A')!=count('C')&&count('A')!=count('D')&&count('A')!=count('E'))//6 if(abs((int)s[6]-s[7])==4-(s[6]-'A'))//7 if(count('A')+count('E')==s[7]-'A'+2)//8 { x=count('B')+count('C')+count('D'); y=s[8]-'A'; if(y==0&&(x==2||x==3||x==5||x==7)||y==1&&(x==1||x==2||x==6)|| y==2&&(x==1||x==4||x==9)||y==3&&(x==1||x==8)||y==4&&x==5)//9 { cout<<s; } } } return 0; } s+='A'; c[0]++; dfs(x+1); c[0]--; c[1]++; s[x]='B'; dfs(x+1); c[1]--; c[2]++; s[x]='C'; dfs(x+1); c[2]--; c[3]++; s[x]='D'; dfs(x+1); c[3]--; c[4]++; s[x]='E'; dfs(x+1); c[4]--; s=s.substr(0,x); return 0; } int main() { int i,j,k,n,m,x,y,z,t; s=""; dfs(0); }
- 1
Information
- ID
- 5
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 34
- Accepted
- 22
- Uploaded By