p9958题解
P9958题解
题意
题目共三种情况,第一种是在第一个,第二种是在第二个,第三种是在第三个。
那么,题目给了我们这些信息,我们就可以直接写代码了。
思路+代码
#include<bits/stdc++.h>//万能头文件
using namespace std;
struct node{//创建输入数组
int a,b,g;
}a[105];
int shishi[5];//鹅卵石实时情况
int main(){
int n;cin>>n;//输入个数
for(int i=1;i<=n;i++) cin>>shishi[i].a>>shishi[i].b>>shishi[i].g;//输入每次交换情况
int maxn=0;//定义最大值存储变量
for(int i=1;i<=3;i++){//进行三次判断:在第一个、第二个和第三个
int x=0;//这一次的次数
w[i]=1;
for(int j=1;j<=n;j++){//进行判断
swap(w[shishi[j].a],w[shishi[j].b]);//进行交换
if(w[shishi[j].g]==1) x++;//如果猜中就增加,否则不变
}
maxn=max(x,maxn);//判断最大值
memset(w,0,sizeof w);//清空数组函数(memset)
}
cout<<maxn;//输出最大值
return 0;
}
最后说一下个人看法:其实这道题不算太难,跟着题意写代码就行了,也不用什么过于高深的函数,只要仔细点,都是可以做出来的。