• P1328 生活大爆炸版石头剪刀布


    这是2014年提高组的一道简单的模拟题。

    暴力就可以AC。首先给出一个表格,表示输赢的情况,根据这个表格,我们便可以开score[][]来记录对战的得分情况,千万不要忘记这是两方面的,也就是说表格灰色部分也是需要处理的(我一开始就没有考虑)。然后因为他按周期出牌,所以要填充到长度为n,所以有两个方法,一个是取余,一个是循环,然而我看数据不算大,果断选择了循环。然后就是进行对战,将分数进行++即可。

    1.当调试发现思路和代码都没bug时就要去看数组开的对不对或者变量对不对。(特别时模拟样例都不对)

    2.简单的题一定快速去做,另外题干长,形式新,不一定代表逻辑复杂或难AC

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int a_t,b_t;
    int a_o[1000],b_o[1000];
    int a_s,b_s;
    int n;
    int temp=0;
    int score[5][5]={{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
    int main(){
        cin>>n>>a_t>>b_t;
        for(int i=1;i<=a_t;i++){
            cin>>a_o[i];
        }
        for(int i=1;i<=b_t;i++){
            cin>>b_o[i];
        }
        temp=a_t+1;
        while(temp<=n){//填满 
            for(int i=1;i<=a_t;i++){
                a_o[temp]=a_o[i];
                temp++;
            }
        }
        temp=b_t+1;
        while(temp<=n){ 
            for(int i=1;i<=b_t;i++){
                b_o[temp]=b_o[i];
                temp++;
            }
        }    
        for(int i=1;i<=n;i++){
            a_s+=score[a_o[i]][b_o[i]];
            b_s+=score[b_o[i]][a_o[i]];
        //    cout<<a_s<<"  "<<b_s<<endl;
        }
        cout<<a_s<<" "<<b_s;
        return 0;
    } 
  • 相关阅读:
    【转】C++虚函数表
    vector的增长模式
    C++ 四种类型强制转换
    【转】new和malloc的区别
    C++堆和栈的区别
    C/C++中的内存分区
    mySQL__function课堂笔记和练习
    mySQL__storage课堂笔记和练习
    mySQL__Variable课堂笔记和练习
    mySQL__View课堂笔记和练习
  • 原文地址:https://www.cnblogs.com/china-mjr/p/11342965.html
Copyright © 2020-2023  润新知