值得纪念的爆零技巧
记录一下 \(zcxxxxx\) 的爆零技巧,以供大家一起爆零 \(QWQ\)
2022.2.13
寒假集训结束前,举行了一次模拟赛。。
然后……考了倒一
主要问题出在 T1 上,本来不算T1,T2T3 合起来能考第二来,然后 \(T1\) 爆了……,为什么呢,请观摩如下两份代码:
/*
Worker:zcxxxxx
*/
#include
using namespace std;
const int maxn = 100 + 7;
const int INF = 0x7fffffff;
inline int read() {
int x = 0, f = 1; char c = getchar();
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int n;
string s;
int num[maxn];
int base = 233333;
int main() {
n = read();
for(int i = 1; i <= n; i++) {
cin >> s;
int len = s.size();
for(int j = 0; j < len; j++) {
num[j + 1] = s[j] - 'a' + 1;
num[j + 1] *= base;
}
for(int j = 1; j < len; j++) num[j] = (num[j] + num[len]) % 26 + 97, cout << (char)num[j];
}
return 0;
}
and
/*
Worker:zcxxxxx
*/
#include
using namespace std;
const int maxn = 100 + 7;
const int INF = 0x7fffffff;
inline int read() {
int x = 0, f = 1; char c = getchar();
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int n;
string s;
int num[maxn];
int base = 233333;
int main() {
n = read();
for(int i = 1; i <= n; i++) {
cin >> s;
int len = s.size();
for(int j = 0; j < len; j++) {
num[j + 1] = s[j] - 'a' + 1;
num[j + 1] *= base;
}
for(int j = 1; j < len; j++) num[j] = (num[j] + num[len]) % 26 + 97, cout << (char)num[j];
cout << "\n";
}
return 0;
}
一看好像没啥区别,当我上午考完抑郁了一中午后,回到机房,打开测试点准备调代码时,发现输出和输入混到一行了……
才发现原来是没输出换行,直接疯掉。
最后幸亏有 \(npy\) ,才缓下来
直接少了 \(100\) 分啊,以后一定要检查清楚呜呜呜o(╥﹏╥)o
2022.2.27
又考试,从中午起来就感觉不对劲,身体软绵绵的……
果然,下午又倒数。。。
竟然把橙题黄题都做错了,第三题大暴力还没打出来(;へ:)
做的是2015年的day1,做过的人都知道,除了T3都很水……
T1 是一道小模拟,虽然小吧,但是我好像是因为太困了,整整调了一节课 \(QAQ\),最后发现读错题了,“右上”读成“左上”了……
T2 一看就是个找最小环,我直接激动地把 \(tarjan\) 就打上了呀,感觉很对。
最后一交,\(T1\) \(T2\) 都只有 \(50\),看了一下代码,\(T1\) 数组开小了……
做题的时候迷迷糊糊的看了一眼数据范围,然后打上了const int A = 47
就完了 (?Д`)
应该开 \(n ^ 2\) 的
\(T2\) 我的 \(tarjan\) 函数里初始化low[u] = dfn[u] = u
就很无语……
我怎么这么没状态,有大佬来指点一下该怎么避免吗( ? ^ ? )