一個被不點名批評的垃圾騙分暴力選手被普及難度的省選信心(??)模擬賽艹爆的題解
如果真是這種實力去什麽省選啊,浪費錢浪費名額浪費時間,不如退役充當編程愛好者打網站,回去搞課內棄理從文刷刷計算題好歹成績還好看一點
精神狀態很好,也沒有任何不適,幾乎在正常考試都保持了挺高的精神集中,這樣都墊底真是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==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
一個被不點名批評的垃圾騙分暴力選手被普及難度的省選信心(??)模擬賽艹爆的題解