洛谷 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;
}

结果:

相关推荐
挖矿大亨19 分钟前
C++中的引用
开发语言·c++
Larry_Yanan1 小时前
Qt多进程(四)QTcpSocket
开发语言·c++·qt·ui
superman超哥1 小时前
仓颉内存管理深度探索:引用计数的实现原理与实战
c语言·开发语言·c++·python·仓颉
TechPioneer_lp1 小时前
27届暑期实习内推:网易美团京东快手等
数据结构·c++·人工智能·笔记·机器学习·面试
小无名呀2 小时前
RAII 智能指针
c++
Once_day2 小时前
CC++八股文之基础语法(2)
c语言·c++
dawnButterfly2 小时前
C 语言标准、编译器与操作系统的关系
c语言·开发语言·c++
程序员龙一2 小时前
进程、线程、协程通俗讲解与对比
c++·线程·进程·协程
Dream it possible!3 小时前
LeetCode 面试经典 150_回溯_单词搜索(104_79_C++_中等)
c++·leetcode·面试·回溯
superman超哥3 小时前
仓颉语言智能指针深度实战:突破 GC 与所有权的边界
c语言·开发语言·c++·python·仓颉