HELP
  • 板块学术版
  • 楼主Forever1507
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/10/24 11:17
  • 上次更新2023/11/5 10:01:44
查看原帖
HELP
359614
Forever1507楼主2020/10/24 11:17

P5833调了一整天了,救救蒟蒻吧!```cpp #include<bits/stdc++.h> using namespace std; map<string,int>mp; map<int,string>mmp; bool vis[105]; int n; string a[105],b[105],ans[105]; bool check(){ for(int i=1;i<=8;i++){ if(a[i-1]!=b[i]&&a[i+1]!=b[i]){ return false; } } return true; } void update(){ bool flag=0; if(ans[1]==""){ for(int i=1;i<=8;i++){ ans[i]=a[i]; } return; } for(int i=1;i<=8;i++){ if(mp[a[i]]>mp[ans[i]]){ flag=1; break; } } if(flag==1){ return; } for(int i=1;i<=8;i++){ ans[i]=a[i]; } return; } void dfs(int k){ if(k==9){ if(check()==1){ update(); } return; } for(int i=1;i<=n;i++){ if(vis[i]==0){ a[i]=mmp[i]; vis[i]=1; dfs(k+1); vis[i]=0; } } return; } int main(){ cin>>n; mp["Beatrice"]=1; mp["Belinda"]=2; mp["Bella"]=3; mp["Bessie"]=4; mp["Betsy"]=5; mp["Blue"]=6; mp["Buttercup"]=7; mp["Sue"]=8; mmp[1]="Beatrice"; mmp[2]="Belinda"; mmp[3]="Bella"; mmp[4]="Bessie"; mmp[5]="Betsy"; mmp[6]="Blue"; mmp[7]="Buttercup"; mmp[8]="Sue"; for(int i=1;i<=n;i++){ string s="",ls=""; int aa; getline(cin,s); bool flag=0; for(int i=0;i<s.size();i++){ ls+=s[i]; if(flag==0){ for(int i=1;i<=8;i++){ if(ls==mmp[i]){ aa=i; ls=""; flag=1; } } } else{ for(int i=1;i<=8;i++){ if(ls==mmp[i]){ b[aa]=mmp[i]; } } } } } dfs(1); for(int i=1;i<=8;i++){ cout<<ans[i]<<endl; } return 0; }

2020/10/24 11:17
加载中...