果壳游戏
昨天是个非常糟糕的一天
但却有个非常非常幸运的事!!(居然昨天没发现555今天发现也很棒!)

10个AC币!!!(掉落概率非常非常非常小,平时都是0.0几的币)
太惊喜啦!!
哇啊啊啊啊啊啊真的超级无敌幸运哎!!!
把好运也分享给看到这篇文章的朋友呀~
题目
为了消磨时光,奶牛 Bessie 和她的朋友 Elsie 喜欢玩一种她们在农业展览会上看到的游戏。
游戏准备阶段,Bessie 在桌子上放置三个倒置的坚果壳,1号坚果壳放在位置1,2号坚果壳放在位置2,3号坚果壳放在位置3。并在其中一个坚果壳下面藏了一块小的鹅卵石(至少她希望这是一块鹅卵石——她在一块牧场的地上找到的)。
随后 Bessie 会两两调换坚果壳,鹅卵石会随着坚果壳一起移动,同时 Elsie 试着去猜鹅卵石的位置。
奶牛们在农业展览会上看到的这个游戏的标准形式是玩家可以看到鹅卵石初始的位置,然后要求玩家猜所有交换完成之后鹅卵石最终的位置。
然而,现在奶牛们想要去进行这样一种玩法,Elsie 不知道鹅卵石的初始位置,同时她可以在每一次交换之后猜一下鹅卵石的位置。
Bessie 知道正确答案,在游戏结束后会给 Elsie 一个分数,等于她猜对的次数。
给定所有的交换和 Elsie 的猜测,但是不给出鹅卵石的初始位置,请求出 Elsie 最高可能获得的分数。
输入格式
输入的第一行包含一个整数 N,为交换的次数。
以下 N 行每行描述了游戏的一个回合,包含三个整数 a、b 和 g,表示 Bessie 交换了位置 a 和 b 的坚果壳,然后 Elsie 猜的是位置 g。
所有这三个数均为 1、2、3 之一,并且 a≠b。
输出格式
输出 Elsie 可以得到的最高分数。
数据范围
1≤N≤100
输入样例:
3
1 2 1
3 2 1
1 3 1
输出样例:
2
样例解释
在这个例子中,Elsie 最多可以获得 2 分。
如果鹅卵石开始时位于坚果壳 1 下面,那么她猜中了一次(最后一次)。
如果鹅卵石开始时位于坚果壳 2 下面,那么她猜中了两次(开始两次)。
如果鹅卵石开始时位于坚果壳 3 下面,那么她没有猜对任何一次。
思路

AC代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n;//表示一共操作n次
cin>>n;
int p[4]={0,1,2,3};
int res[4]={0};
while(n--)//n次操作
{
int a,b,g;//a、b表示交换的杯子位置,g表示猜测的杯子位置
cin>>a>>b>>g;
swap(p[a],p[b]);
res[p[g]]++; //第g个位置上杯子的编号是p[g]
}
cout<<max(res[1],max(res[2],res[3]))<<endl;
return 0;
}
728

被折叠的 条评论
为什么被折叠?



