Conan and Agasa play a Card Game
生活随笔
收集整理的這篇文章主要介紹了
Conan and Agasa play a Card Game
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你a,b兩個串,求p串,要求p串分別和a,b串只有一個不相同,并且p串不能含有重復元素(必須1~n)
#include <iostream> #include <cstdio> #include <cstring> #include <vector> #define maxn 1005 using namespace std; int main() {int n;scanf("%d",&n);int a[maxn],b[maxn],c[maxn],vis[maxn]={0};int ans=0;int tag[5],k=0;vector<int>q;for(int i=0;i<n;i++)scanf("%d",&a[i]);for(int i=0;i<n;i++){scanf("%d",&b[i]);if(a[i]==b[i]){c[i]=b[i];vis[a[i]]=1;//a里面有的數}else{ans++;q.push_back(i);}}if(ans==1)//一個數不相同的情況{for(int i=0;i<n;++i){if(c[i]==0){for(int j=1;j<=n;j++){if(vis[j]==0){c[i]=j;break;}}break;}}}else//2個不相同{for(int i=1;i<=n;++i)if(vis[i]==0){tag[k++]=i;q.push_back(i);}c[q[0]]=q[2];c[q[1]]=q[3];int sum1=0,sum2=0;for(int i=0;i<n;++i){if(a[i]!=c[i])sum1++;if(b[i]!=c[i])sum2++;}if(sum1!=1||sum2!=1){c[q[0]]=q[3];c[q[1]]=q[2];}}printf("%d",c[0]);for(int i=1;i<n;++i)printf(" %d",c[i]);printf("\n");return 0; }
總結
以上是生活随笔為你收集整理的Conan and Agasa play a Card Game的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Conan and Agasa play
- 下一篇: poj 1190 生日蛋糕 难|供自己瞻