2019 8 3考試記錄

2021-09-25 20:27:25 字數 3130 閱讀 8439

「題目不難,還剩乙個小時,寫下記錄」

(寫於考場)

現在看來好樂觀233

題目確實不難,但是打的有多差233

難受"字串模擬。

不看下面的描述,我還以為是道裸kmp。

但是更貼心的是,模式串可以分開/笑哭

應該就是反著掃一遍(字典序要大),模式串匹配了就存一下陣列下標。

如果存下來的下標個數等於模式串長度那就是匹配成功,不然就沒有。

水題開局

複雜度o(lenb+lena)"

很水很水很水的題

居然比裸kmp還水233

沒什麼分析的,就是搞兩個下標,從後往前,當乙個模式串和文字串對應起來的時候,模式串的下標向前減一就ok了

code:

#include

using

namespace std;

const

int maxn=

1000005

;int flag,ans[maxn]

,lena,lenb,ai;

char a[maxn]

,b[maxn]

;int

main()

if(flag==lenb)

else

printf

("no\n");

return0;

}

"這題233333

本人第一次看到資料範圍居然以為存不下。

硬是對著題目看了20多分鐘,才開始重新審視資料…

我靠。為什麼t這麼小???

然後就比較簡單了。

由於人們只能橫著走和豎著走,所以可以分別求出避難所的橫座標和縱座標。

比如橫座標。這個座標的左右兩邊的累加值應當是盡可能相近的。所以左右掃,如果哪邊太大,就往另一邊分數字。最後求出來乙個範圍就是座標

但是我莫名其妙出了誤差???

好像我的這種掃法會出一點點誤差(差乙個1),而我調了10多分鐘沒有調出來。一煩躁,就乾脆把誤差範圍內的數全求了,再取最小值。

反正也就是乙個兩倍的常數(劃掉)

然後順便打了個讀入優化,以補償我的bug

補:靠!檔名怎麼打錯了233

複雜度o§(帶常數)"

(寫於考場)

雖然當時覺得不難,事後也證明演算法其實是對的。但是…

27分???

好吧,其實求左右兩邊累加值的那個誤差用我這種神奇的辦法求是沒有前途的,很難消除掉那個誤差。

所以應當換一種寫法,只從前掃到後,然後左邊的值累加,右邊的用總值減去左邊值就好了

當右邊的值第一次小於左邊的時候,說明可以再往右移不會再有收益而且會答案變差,所以停止

貼上code:

#include

using

namespace std;

int n,m,t,head,tail,s=

0,x,y;

const

int maxp=

200005

;struct nodex[maxp]

,y[maxp]

,tmp[maxp]

;long

long ans,tot,toty,totx;

bool

cmp(node a,node b)

intmain()

sort

(x,x+t,cmp)

,sort

(y,y+t,cmp)

;for

(int i=

0;i)for

(int i=

0;i)printf

("%lld.00"

,ans)

;return0;

}

"有史以來最水的壓軸題(劃掉)

基礎的狀壓dp,狀態還賊好設定。

轉移也簡單233

先設乙個全集u,表示當前狀態下所有石頭都還在(n個1)

然後dp,列舉每乙個石頭都可能會消失,再列舉它與所有石頭(包括自己!)的反應。

於是得出下乙個狀態,即為原狀態刪去消失的石頭。

轉移就是再加乙個反應石頭留下,消失石頭消失得出能量就行了

由於和自己反應的到的能量是0,所以一直到最後一次反應之前都不會出現與自己反應的情況,最後再**就好了,得到的還是0,不影響。

其實這個主要是強迫症,畢竟留下乙個好不爽,也不好操作嘛。

還有乙個要注意的就是不僅dp陣列要開longlong,像本人這種有返回值的dp函式也要longlong

30行解決233333333

複雜度o(n^2 * 2^n)(對稱美觀)"

(寫於考場)

最簡單最簡單的狀壓dp

我寫這題用的時間和寫第一題差不多???

然後0分??? 好吧

讀入優化寫掛了2333

靠,這個是真的尷尬,第乙個消掉所有空格的迴圈沒打,直接掛了

演算法還是對的,但是還有乙個細節尷尬了

話說樣例給的,如果自己跟自己反應(簡稱**)得到能量為0的話,那不會對答案有影響

but!!!!

他資料給的不是0!!!!

誤導我???

太難受了。

事後,我把讀入優化刪了,輸入時**的操作初始化一下

然後就a了跑的賊快

what???

好吧真的難受。

直接掛**

code:

#include

using

namespace std;

const

int maxn=11;

int a[maxn]

[maxn]

,t,n,u;

long

long f[

2049];

inline

long

longdp(

int u)

}return f[u];}

intmain()

printf

("%d\n",dp

(u));}

return0;

}

總而言之,題目很水但是我考的更水233

所以,這麼低是真的難受啊

反思一下,主要還是自己的檢查工作不到位,也不夠嚴謹

不過今天上午是真的困,狀態不是很好。。。

明天好好調整一下,爭取能有進步

2019 8 3考試反思

emmmm還行吧這次 首先過一遍題,t1是個玄學 fibonacci t2有65分好像是個裸分塊,t3非常迷。於是開始快樂碼t2,在碼分塊的時候也在想什麼線段樹,什麼vector,不過都沒有深入去想,先把能拿的分拿了。又在上面碼了乙個 n 2 的暴力,並且打了個對拍,改了一點小錯。我劉某丁就是wa0...

2019 8 3訓練日誌

約數 若整數n除以d的餘數為0,即d能整除n,則稱d是n的約數,n時d的倍數,記為d n。有正整數的質因數唯一分解可知任一正整數n可分解為n 個數為 c1 1 c2 1 cm 1 還有乙個是求這些因子的和 1 p1 p2 2 p1 c1 1 pm pm 2 pm cm 求n的正約數集合 試除法 若在...

2017 3 18考試記錄

雖然只做出了乙個題,但是第二題跟第三題也有思路,就是單位時間解題效率不高導致沒有做完,所以以後要多做題來加強一下。第一題 題目要求看能否讓所有排隊的人都能正好買到票拿到找零 分析 運用新學的stl中的map容器,將面值與數量存入容器中 注 當收到100要找零75時,應該注意找零順序,有50就給50和...