测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A46318. 田忌赛马田忌赛马的故事已家喻户晓,大家也耳熟能详,即是以不同的排列顺序来支配上中下三等马来赢得比赛,体现了一种博弈的思维。现如果稍改一下比赛的规则,田忌和齐威王都按照某一周期性规律出马对战,比如:“上-下 上-中-上-下-上-中……”,就是以“上-下-上-中”为周期不断循环。胜负还是以“上等马赢中等马和下等马,中等马赢下等马,若两只马等级一样,则打平”。请问经过N轮比赛之后,田忌和齐威王谁赢得次…

填空题 中等

题目描述

田忌赛马

田忌赛马的故事已家喻户晓,大家也耳熟能详,即是以不同的排列顺序来支配上中下三等马来赢得比赛,体现了一种博弈的思维。现如果稍改一下比赛的规则,田忌和齐威王都按照某一周期性规律出马对战,比如:“上-下 上-中-上-下-上-中……”,就是以“上-下-上-中”为周期不断循环。胜负还是以“上等马赢中等马和下等马,中等马赢下等马,若两只马等级一样,则打平”。请问经过N轮比赛之后,田忌和齐威王谁赢得次数多?

输入描述

输入包含三行: 

第一行为三个整数:N,NT,NQ,分别表示比了N轮,田忌出马对战的周期长度,齐威王出马对战的周期长度。N≤100,NT≤100,NQ ≤ 100。 

第二行包含NT个整数,表示田忌出马对战的规律。 

第三行包含NQ个整数,表示齐威王出马对战的规律。 

其中,以“1”代表上等马;“2”代表中等马;“3”代表下等马。相邻两个整数之间用单个空格隔开。

输出描述

输出一行,若田忌赢的次数多,输出T;若齐威王赢的次数多,输出Q;若两人打平,输出P。

样例输入

10 3 4

1 2 3

1 2 3 3

1

2

3

样例输出

T

参考答案

#include<iostream> using namespace std; int n,nt,nq,t=0,q=0,ii=0,ij=0; int tzq[105],qzq[105]; int main() { cin>>n>>nt>>nq; for(int i=0;i<nt;i++) cin>>tzq[i]; for(int i=0;i<nq;i++) cin>>qzq[i]; for(int i=0;i<n;i++) { if(tzq[ii]<qzq[ij]) t++; else if(tzq[ii]>qzq[ij]) q++; else t++,q++; ii+=1;ij+=1; if(ii==nt) ii=0; if(ij==nq) ij=0; } if(t>q) cout<<"T"; else if(q>t) cout<<"Q"; else cout<<"P"; return 0; }
上一题 下一题