如果真是这种实力去什么省选啊,浪费钱浪费名额浪费时间,不如退役充当编程爱好者打网站,回去搞课内弃理从文刷刷计算题好歹成绩还好看一点
精神状态很好,也没有任何不适,几乎在正常考试都保持了挺高的精神集中,这样都垫底真是f**k
---------考场上的废柴发挥-----------
昨晚见到OZY,得知输出样例有分不会爆零太好了心情极佳,然而题怎么*******
(自从那天开始满脑子都是暴力骗分的yzh)
早上先看了半个小时题目,感觉t1就是签到找规律,t2一眼暴力+KM40分美滋滋,正解怕是在trie上乱搞吧,t3暴力又有40贼舒服,感觉正解应该是离线贪心,t4一看不会,感觉20%可以骗骗,哇这次岂不是接近200?莫名开心
t1 就是一个tyb在(0,0)点,要跳到(x,0)点,第k次跳能跳k格,问最小跳的步数
t2 就是两个字符串集合,求两两匹配的公共前缀和最大
t3 又是tyb在1点,然后往右跳到n,中间路途有陷阱伤害为a,然后有B个询问,问假如tyb一次能跳d,能够承受s的伤害,能不能跳到终点
t4 就是找树的直径,然后求最长连续的点的直径波动不超过M
一个爆搜打表,结果还调了一下,爆搜还写错了一次,然后换宽搜又搞,最后搞出来了找规律,OK 稳如老狗AC 此时9:20
结果这就是我考场上打对的唯一一个暴力。。
随便讲讲规律,把数列分段,第i段i个元素,假如当前n是第x段里第y个元素
如果x%2==1 && y%2==1 ans=x
如果x%2==1 && y%2==0 ans=x+2
如果x%2==0 && y%2==1 ans=x+1
如果x%2==0 && y%2==0 ans=x
虽然不是很满意速度,但是写出来也还是很开心的,毕竟自从NOIP2017完挂以后赌誓以后绝不能错找规律题
然后就开始开心打暴力
10:00就写完t2,t3了 怎么大佬们都在刚t4???
还是很稳,然后OZY过来水表了一下,突然想起给了大样例,测一下发现KM挂了??静态查错大半个小时,woc哪里挂了,蒙蔽虚的要死
然后楠楠就说他已经切了t2,肉老师说能拿330,我真的????心态都没了,这次题这么水????
冷静下来想t2,发现woc贼jj水,赶紧码,结果那群bt 11:30就交了,一个个200+....
心态炸裂,直接上天
最终100+10+10+0=120 中间那20还是直接输出样例
整个人都不好了。
OZY:你搞什么啊
ORZ hz&&ljw t3暴力+读优70 lxj整体二分A t3
-------------考后-----------------
我的确不是很信我KM模版居然写挂了。。
然后真的没写错,是暴力求前缀错了!!!????我 真说不出话
然后T3暴力st表里的Bin[j-1]写成Bin[j/2]什么鬼 wc
心态没了。下午就把t2t3切了,mdzz t2t3正解不跟我想得一样??!写你个棒棒锤暴力,暴力就爆十啦SB
然后晚上认真刚t4,wc,看错题了?两个问?树的直径?
菜鸡yzh
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #define f(i) bl[i+100] using namespace std; int n,bl[210],ans;bool bk; void dfs(int x,int k) { if(x>35||x<-35)return ; if(k<f(x)) { f(x)=k; } dfs(x+k+1,k+1); dfs(x-k-1,k+1); } int main() { memset(bl,63,sizeof(bl)); bk=false;dfs(0,0); for(int n=1;n<=28;n++) { printf("%d\n",f(n)); } return 0; }
t1暴力找规律
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; typedef long long LL; LL d[210000]; int main() { freopen("a.in","r",stdin); freopen("a.out","w",stdout); d[0]=0;for(int i=1;i<=200000;i++)d[i]=d[i-1]+i; int T; scanf("%d",&T); while(T--) { LL n; scanf("%lld",&n); if(n<0)n=(0LL-n); int l=0,r=200000,bel=0; while(l<=r) { int mid=(l+r)/2; if(n<=d[mid]) { r=mid-1; bel=mid; } else l=mid+1; } LL k=n-d[bel-1]; if(bel%2==1) { if(k%2==1)printf("%d\n",bel); else printf("%d\n",bel+2); } else { if(k%2==1)printf("%d\n",bel+1); else printf("%d\n",bel); } } return 0; }
找规律AC code
原文地址:https://www.cnblogs.com/AKCqhzdy/p/8824105.html