Day 1:

     第一次参加noip。小激动,小紧张,这些正常的情绪就不用说了。唯一值得一提的是 我早上步行去郑大工学院的时候迷路了,直接转进了隔壁的河南农大,绕了半天找不到机房,还给几个同学打了电话可就是没人接……于是就在保安异样的目光下灰溜溜地走出了校门= =...然后还算好,总算提前半个小时来到了考点。。。

    然后找座位的时候我遇到了奇怪的事情!!我的座位旁边是夏五岳……同校+同语言……天知道负责人的随机数生成器是出了什么问题= =不过看起来我们似乎没有被监考的志愿者盯上?那就这样吧= =于是,按照平时的习惯,我先敲好了头文件和快速读入……(别问我为什么还有快速读入……我只是懒得每次打scanf又怕cin被卡……)然后……看题……

A: 生活大爆炸版石头剪刀布

 给出五种手势的胜负关系,A、B的出拳循环节和总共进行的轮数N,求游戏结束时两人各自的输赢次数。

N <= 200N <= 200。N <= 200。N <= 200。

 QAQ……请告诉我我没有看错数据范围。请告诉我200遍我没有看错数据范围。不对……我是不是走错考场考成普及组了?可是普及组不应该是下午比赛吗……好吧好吧,我再检查200遍题目就开始敲代码。。。

     于是开考后三十分钟,我开始了无脑模拟。话说这题要是数据范围再大那么几个零是不是就可以变成数论题了?= = 看来出题人有着特别的送分技巧……就这么敲完了模拟。果断开下一题?算了还是再检查200遍题目吧……万一理解错了呢……

 1 /*========================================================*/
 2 /*======================BY ASM.DEF========================*/
 3 /*========================================================*/
 4 #include <cstdio>
 5 #include <cctype>
 6 #include <cstring>
 7 #include <cmath>
 8 #include <algorithm>
 9 #include <vector>
10 #include <queue>
11 #if defined DEBUG
12 FILE *in = fopen("test""r");
13 #define out stdout
14 #else
15 FILE *in = fopen("rps.in""r");
16 FILE *out = fopen("rps.out""w");
17 #endif
18 template<typename T> inline bool getd(T &x){
19     int c = fgetc(in);
20     bool minus = 0;
21     while(c != '-' && c != EOF && !isdigit(c))c = fgetc(in);
22     if(c == EOF)return 0;
23     if(c == '-'){
24         minus = 1;
25         x = 0;
26     }
27     else x = c - '0';
28     while(isdigit(c = fgetc(in)))x = x * 10 + c - '0';
29     if(minus)x = -x;
30     return 1;
31 }
32 using namespace std;
33 /*==========================================================*/
34 const int maxn = 200 + 5;
35 const bool win[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}};
36 int N, NA, NB;
37 int A[maxn], B[maxn], ansA = 0, ansB = 0;
38 int main(){
39     getd(N), getd(NA), getd(NB);
40     int i, a, b;
41     for(i = 0;i < NA;++i)
42         getd(A[i]);
43     for(i = 0;i < NB;++i)
44         getd(B[i]);
45     for(i = 0;i < N;++i){
46         a = A[i % NA];
47         b = B[i % NB];
48         if(win[a][b])++ansA;
49         if(win[b][a])++ansB;
50     }
51     fprintf(out"%d %d\n", ansA, ansB);
52     
53     return 0;
54 }
无脑模拟

相关文章: