社区讨论

10分求助(样例1输出0 0,样例2输出0 9)

P1328[NOIP 2014 提高组] 生活大爆炸版石头剪刀布参与者 5已保存回复 23

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
23 条
当前快照
1 份
快照标识符
@mi86b6q8
此快照首次捕获于
2025/11/21 09:20
4 个月前
此快照最后确认于
2025/11/21 10:00
4 个月前
查看原帖
不多做解释了233…… 通过#4
CPP
#include<iostream>
using namespace std;
const int score[5][5]={{0,-1,1,1,-1},{1,0,-1,1,-1},{1,-1,0,-1,1},{-1,-1,1,0,1},{1,1,-1,-1,0}};//定义得分表 
int main()
{
    int n,na,nb,scorea=0,scoreb=0;
    cin>>n>>na>>nb;
    int a[na],b[nb],vs[2][n]/*PK过程中双方出拳情况统计*/;
    for(int i=1;i<=na;i++)
      cin>>a[i];
    for(int i=1;i<=nb;i++)
      cin>>b[i];
    for(int i=1,j=i,k=i;i<=n;i++)
    {
        if(j>na)
          j-=na;
        if(k>nb)
          k-=nb;
        vs[1][i]=a[j];
        vs[2][i]=b[k]; 
        if(score[vs[1][i]][vs[2][i]]>=0)
          scorea+=score[vs[1][i]][vs[2][i]];//如果小A胜则为正 
        else
          scoreb-=score[vs[1][i]][vs[2][i]];//小B胜则为负 
    }
    cout<<scorea<<" "<<scoreb;
    return 0;
}

回复

23 条回复,欢迎继续交流。

正在加载回复...