2021-3-20上课总结
一、果壳游戏
题目描述
为了消磨时光,奶牛Bessie和她的朋友Elsie喜欢玩一种她们在农业展览会上看到的游戏。
游戏准备阶段,Bessie在桌子上放置三个倒置的坚果壳,并在其中一个坚果壳下面藏了一块小的鹅卵石(至少她希望这是一块鹅卵石——她在一块牧场的地上找到的)。随后Bessie会两两调换坚果壳,同时Elsie试着去猜鹅卵石的位置。
奶牛们在农业展览会上看到的这个游戏的标准形式是玩家可以看到鹅卵石初始的位置,然后要求玩家猜所有交换完成之后鹅卵石最终的位置。
然而,现在奶牛们想要去进行这样一种玩法,Elsie不知道鹅卵石的初始位置,同时她可以在每一次交换之后猜一下鹅卵石的位置。Bessie知道正确答案,在游戏结束后会给Elsie一个分数,等于她猜对的次数。
给定所有的交换和Elsie的猜测,但是不给出鹅卵石的初始位置,请求出Elsie最高可能获得的分数。
输入格式(文件名:shell.in):
输入的第一行包含一个整数NN,为交换的次数(1≤N≤1001≤N≤100)。
以下NN行每行描述了游戏的一个回合,包含三个整数aa、bb和gg,表示Bessie交换了坚果壳aa和bb,然后Elsie猜的是坚果壳gg。所有这三个数均为1、2、3之一,并且a≠b。
输出Elsie可以得到的最高分数。
分析:
1、看到题目的第一眼应该想结构体;
2、从1到n一个一个枚举,枚举如果果壳再第i个杯里时,她可以得多少分;
3、开bool数组便于枚举(因为要用到swap函数);
4、开计数器打擂台比较,输出最大值;
具体步骤:
1、定义结构体,输入结构体,bool数组清零;
struct guoker
{
int a;
int b;
int g;
}c[1010];
bool d[1010];
cin>>n;
for(int i=1;i<=n;i++