6 28校內test T1 Jelly的難題1

2022-02-19 20:25:41 字數 1484 閱讀 1507

jelly的難題【題目鏈結】

好了廢話完了,下面是題解部分:

solution:

首先你可能發生的,是看不懂題:

定睛一看,這是個廣搜!(然後非常幸運昨天剛做了乙個廣搜的題,然後我就會了)

首先先是輸入部分,這個真的很毒瘤了,當sy已經去忙akt1的時候,我還在可憐的與讀入作鬥爭(與讀入抗爭掉了大部分時間可還行)。讀入很毒瘤,因為每個字元之間有空格,所以讀入的時候要用while過濾。然後咱的讀入好生毒瘤,看看就好啦(相信像ych這樣的大佬肯定有更優的方法):

n=read();m=read();

char ch=getchar();

for(int i=1;i<=n;i++)

}

然後就是bfs部分了,其實就是乙個標準的廣搜板子,然後因為最近看了tarjan,我居然在bfs裡用了時間戳可海星。

首先要說一直理解不了建構函式這種東西,所以一直都是寫賦值函式,看看就好。

首先顯然是把*(也就是印表機)的地方加進佇列中,然後別忘記開vis記錄已經走過了。

然後while(!q.empty()),每次取出隊首,向四個方向擴充套件(當然前提是可以擴充套件因此記得寫pan函式),然後對於最大時間以及卷子數量,我用了時間

的理念,也就是記錄訪問順序(當然並不是完全時間戳),進行儲存與bfs,每次取出隊首,然後四個方向嘗試拓展,如果可以拓展,那麼拓展,將其入隊,並將新入隊的結點的dfn值在被拓展出的結點的基礎上+1,這樣最大的dfn也就是最大的時間ans。然後還有如何算總共的卷子數,我的演算法比較複雜,感覺過於麻煩了(看看就好啦),記錄每個時間戳,然後用ans-時間戳+1,表示的就是這個結點的卷子數。然後加起來就好啦。

#includeusing

namespace

std;

inline

intread()

intn,m,x,y;

int a[501][501

];int dx[4]=;

int dy[4]=;

char a1[501][501

];bool vis[501][501

];const

int mod=19260817

;struct

node;

node fz(

int x,int y,int

dfn)

bool pan(int x,int y)

queue

q;void

bfs()}}

for(int i=2;i<=cnt;i++)//

我太菜了的求卷子數法qwq

sum=(sum%mod+ans%mod-cz[i]%mod+1)%mod;

cout

}int

main()

}bfs();

return0;

}

end-

7 10校內test T2不等數列

題目鏈結luogu 此題在luogu上模數是2015,考試題的模數是2012。然後這道題聽說好多人是打表找規律的 就像7.9t2一樣 手動滑稽 gc 另外手動 sy,每次測試都無意之間bibi正解,然後說自己是不會做是個什麼騷氣操作。所以我們來看真.題解 solution 首先,輸入莫得什麼好說的 ...

7 9校內test T2 極值問題

這個題真的,毫無思路的說,但是我們會打表啊 lz的打表之路 當然是手寫乙個暴力啦 然後滾去配置lemon測試一下暴力可以得多少分qwq 是的40分呢!然後其實看上面也能看出來一些規律了,定睛一看 但其實我並沒有看出來 斐波那契數列!於是我們就可以找斐波那契數列中最大的小於等於k的兩項,然後碼量也不多...

7 10校內test T3經營與開發

題目鏈結luogu 它 又是個dp 我 我討厭dp 然後又是讀入,顯然用快讀啊 資料範圍還是很大的 習慣 然後我們發現,不論是損耗值 維修值,還是 採礦所得,維修花費 都帶著個p,因此我們可以把p提出來?dp i 表示第i個星球 第n個星球的最大賺取費用 那麼我們的解就是dp 1 考慮一下 假設第i...