1. 程式人生 > >一個被不點名批評的垃圾騙分暴力選手被普及難度的省選信心(??)模擬賽艹爆的題解

一個被不點名批評的垃圾騙分暴力選手被普及難度的省選信心(??)模擬賽艹爆的題解

公共前綴 fine pre clas 技術 bsp mat a.out math

如果真是這種實力去什麽省選啊,浪費錢浪費名額浪費時間,不如退役充當編程愛好者打網站,回去搞課內棄理從文刷刷計算題好歹成績還好看一點

精神狀態很好,也沒有任何不適,幾乎在正常考試都保持了挺高的精神集中,這樣都墊底真是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

一個被不點名批評的垃圾騙分暴力選手被普及難度的省選信心(??)模擬賽艹爆的題解