洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

题解:

cpp 复制代码
#include<iostream>
#include<vector>
//定义二维数组,直接标识不同出法相应对应关系
int mark[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}};
void JudgeScore(int A,int B,int& countA,int& countB){
    if(mark[A][B]==1) countA++;
    else if(mark[A][B]==-1) countB++;
}
int main(){
    int N,NA,NB,countA=0,countB=0;
    std::cin>>N>>NA>>NB;
    std::vector<int> A(NA),B(NB);
    for(int i=0;i!=NA;++i) std::cin>>A[i];
    for(int i=0;i!=NB;++i) std::cin>>B[i];
    int i=0,j=0;
    while(N--){
        JudgeScore(A[i],B[j],countA,countB);
        i=(i+1)%NA,j=(j+1)%NB;
        //每次下标移动到数组结尾时从零开始,本质就是取模运算的过程
    }
    std::cout<<countA<<" "<<countB;
    return 0;
}

结果:

相关推荐
bkspiderx4 分钟前
C++操作符优先级与结合性全解析
c++·思维导图·操作符优先级·结合性
楼田莉子9 分钟前
基于Linux的个人制作的文件库+标准输出和标准错误
linux·c语言·c++·学习·vim
繁华似锦respect44 分钟前
单例模式出现多个单例怎么确定初始化顺序?
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
渡我白衣1 小时前
计算机组成原理(1):计算机发展历程
java·运维·开发语言·网络·c++·笔记·硬件架构
繁华似锦respect1 小时前
C++ 内存分配器-allocator
开发语言·c++·设计模式
博语小屋1 小时前
线程同步与条件变量
linux·jvm·数据结构·c++
崇山峻岭之间1 小时前
C++ Prime Plus 学习笔记030
c++·笔记·学习
liu****2 小时前
20.预处理详解
c语言·开发语言·数据结构·c++·算法
ULTRA??2 小时前
moonbit关于模式匹配中的变量绑定
开发语言·c++·人工智能
小龙报3 小时前
【算法通关指南:数据结构与算法篇】树形结构遍历指南:DFS 递归深搜与 BFS 队列广搜实战解析
c语言·数据结构·c++·算法·链表·深度优先·visual studio