Day 1
T1
一看样例:答案不就是 max i = 1 n a i + 1 2 \dfrac{\max_{i=1}^n a_i +1}{2} 2maxi=1nai+1 吗?
于是自信打上,拍都不拍。然后就,,对了?
插曲:自己出了一个极端数据,发现 scanf 跑了 1.05 s 1.05s 1.05s ,急忙打了一个快读
T2
开始打了一个暴力,就连样例都 T 飞
后来想好像一直向前是最优的,于是打了一个这
然而我没有反着来,挂掉了
T3
一道神奇的题目,直接贪心找环,然而直接爆零
总结
T1:规律题要打对拍,不然风险太大
T2:考虑要全面
T3:学会放弃
出成绩
膜拜广州二中高手,其实
如果 BF 来估计能 AK
总分 100 + 40 + 0 = 140 100+40+0=140 100+40+0=140
Day 2
T1
想到了 KMP ,然后又想到之前的一道题,于是陷入单个数组的查分无法自拔
赛后:我*,只要移一下项就可以了!!!!!!!!!!!!!!!!!!
Sol:题意变为 ( x i + j − 1 + z j ) m o d 256 = y i + j − 1 (x_{i+j-1}+z_j)\mod 256=y_{i+j-1} (xi+j−1+zj)mod256=yi+j−1 移项后 ( y i + j − 1 − x i + j − 1 + 256 ) m o d 256 = z j (y_{i+j-1}-x_{i+j-1}+256)\mod 256=z_j (yi+j−1−xi+j−1+256)mod256=zj
等量代换后是一个 kmp 模板
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int n,m,A,B,C,D,E,x[N],y[N],z[N],nxt[N],ans[N],len;
int main() {
freopen("noise.in","r",stdin);
freopen("noise.out","w",stdout);
scanf("%d%d%d%d%d%d%d",&n,&m,&A,&B,&C,&D,&E);
for(int i=1;i<=n;i++)scanf("%d",&y[i]);
for(int i=1;i<=m;i++)scanf("%d",&z[i]);
x[1]=A;
for(int i=2;i<=n;i++)x[i]=((x[i-1]<<B)+(x[i-1]>>C)+D)%E;
for(int i=1;i<=n;i++)y[i]=(y[i]-x[i]+256)%256;
for(int i=2,j=0;i<=m;i++) {
while(j && z[i]^z[j+1])j=nxt[j];
if(z[i]==z[j+1])j++;
nxt[i]=j;
}
for(int i=1,j=0;i<=n;i++) {
while(j && y[i]^z[j+1])j=nxt[j];
if(y[i]==z[j+1])j++;
if(j==m)ans[++len]=i-m+1,j=nxt[j];
}
if(!len)return puts("wrong"),0;
printf("%d\n",len);
for(int i=1;i<=len;i++)printf("%d ",ans[i]);
}
T2
好的,连续三个数异或不为 0:有手就行
多一个数:*
推了半个小时式子的我放弃去打了一个 dfs
T3
直接一个贪心 O ( n 3 ) O(n^3) O(n3) 似乎常数太大导致没有 50 50 50
或者贪心错误
总之这个分骗地可以
总结
T1:合并同类项
T2:学会放弃
T3:加个快读
出成绩
巨啊 L W T LWT LWT 160 ,比 S J H SJH SJH 多 10 p t s 10pts 10pts 可还行
一个周末就这么度过了,回去不用写作业的欢乐
题外话
DY 宿舍欢乐多
—— GTJ
可能 ZS 只有我们带了电脑
edge://surf
好家伙一个比小恐龙好玩的玩意儿,比赛时都可以腐
监考老师看了我一眼然后若有所思的笑了
耀华实验学校
床是真的矮,一坐下去可能会撞头。。。然后一天 400
伙食也一般。可能是深圳市大城市,房价物价都贵
成群的巨佬
1 年初中, 1 年高中。 22 岁麻省理工博士的科学家。。。
国外各大大学的学霸们。。。
初二报送清华,高一全省第一进省队的。。。
All At All
第一次打省赛,炸的惨
唯一的收获:数位 dp,反悔的贪心,一做就废的推公式技巧,一支笔,一个本子
没了
总而言之:体味了负面情感
这未必是件坏事
丰富我们的人生阅历
把负面情感转换为成长助力,可以获得美好情感
加油吧