解题报告 『生活大爆炸版石头剪刀布(模拟)』
生活随笔
收集整理的這篇文章主要介紹了
解题报告 『生活大爆炸版石头剪刀布(模拟)』
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題地址
雖說此題難度不大,但依然有著很精妙的做法。
比如下面這位大佬的代碼:
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = (a); i <= (b); i++)int n, Na, Nb, ans = 0, bns = 0; int a[200 + 5], b[200 + 5], vs[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 read() {int x = 0, flag = 0;char ch = ' ';while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();if (ch == '-') {flag = 1;ch = getchar();}while (ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + ch - '0';ch = getchar();}return flag ? -x : x; }void write(int x) {if (x < 0) {putchar('-');x = -x;}if (x > 9) write(x / 10);putchar(x % 10 + '0'); }int main() {n = read(), Na = read(), Nb = read();rep(i, 0, Na - 1) a[i] = read();rep(i, 0, Nb - 1) b[i] = read();rep(i, 0, n - 1) {ans += vs[a[i % Na]][b[i % Nb]];bns += vs[b[i % Nb]][a[i % Na]];}write(ans);printf(" ");write(bns);return 0; } View Code?完全不用加注釋有木有?
?
仿照著這份代碼我自己也敲了一份,結果居然WA了四個點。
最后發現按照習慣我的循環是從1開始的……
但是
i % Na || i % Nb
是可以為0的呀!
我果然還是太蒻了OGCOTZ。
?
轉載于:https://www.cnblogs.com/Kirisame-Marisa/p/10309728.html
總結
以上是生活随笔為你收集整理的解题报告 『生活大爆炸版石头剪刀布(模拟)』的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# T 泛型类,泛型方法的约束条件用法
- 下一篇: MySQL.分页 慢日志查询