2016XTU演算法專題個人賽1 題解

2021-07-15 07:32:42 字數 1904 閱讀 9253

題意:n個團隊,每個團隊1-4人,搭可以坐4人的車,每個團隊的人必須在同一輛車上,問最少需要多少輛車?

解法:4人團隊每個一輛車;1個3人團隊+1個1人團隊拼一輛;2人團隊每2個一輛車,單出的和2個1人團隊拼;剩下的1人團隊4個拼一輛。

題意:給出一些閉區間,把它們合併,要求合併成的區間數量最少,並按公升序輸出。

解法:

直接簡單地根據左端點由小到大排好序,然後遍歷過去就ok了,並把重疊的合在一起,直到發現並沒有交叉的區間,然後輸出之前的區間,最後把最後一次的區間輸出就好了。

以上解法**鏈結

題意:n堆鑽石排成一條線,每分鐘可以進行m次操作(1次操作:把一顆鑽石從某一堆移到另一堆 or 把一顆鑽石從某一堆中裝進口袋 or把一顆鑽石從口袋取出放入某一堆鑽石 )。要求每分鐘後,相鄰兩堆的鑽石數量不變。問k分鐘後最多可以帶走多少鑽石。

解法:由於要求相鄰兩堆的鑽石數量不變,一堆鑽石的數量減少,相鄰的堆的鑽石數量就要增加,那麼對於總堆數為偶數的情況,並沒有方法將鑽石拿走;對於總堆數為奇數的情況,將1號堆的鑽石拿走一顆放進口袋,然後將3號移一顆給2號,5號移給4號……n號移給n-1號,這樣(n / 2 + 1)次操作才能拿走一顆鑽石。這一組操作如果不能在一分鐘內完成,則不符合題意,不能拿走鑽石。能拿走的情況下,答案是時間允許的操作的組數與各奇數堆的鑽石數的最小值。

(**中鑽石編號是從0開始的)

官方題解鏈結1

官方題解鏈結2

題意:

給出n疊牌,每疊牌有s[i]張,然後有兩個人進行遊戲,a只能從牌底拿牌,b只能從牌頂拿牌,那到牌的牌面總和即為的分,兩人均按照最優的方式取牌,問說最後兩人的得分。

解法:

很像博弈題,但是可以用貪心做。首先對於每堆牌來說,要麼奇數,要麼偶數,偶數的時:兩個各取一半,因為如果靠近a這邊的一半牌裡有很大牌面的數,那麼a想取的這張牌要比b簡單的多(即b拿不走這張牌,而且a同時可以對這張牌緩一緩,因為雙方均均以最優方式),那麼b就不會傻傻的去浪費步數爭完全取不到的牌。奇數時:肯定有一方要多拿一張牌,那麼誰拿走這張牌就要根據說所有奇數牌堆的中間牌大小決定的。

以上題意解法**鏈結

官方題解鏈結

題意:

有乙個遊戲的規則是這樣的:給定乙個正整數陣列,從陣列中選取兩個數,將大的放在前面,小的放在後面,然後拼接在一起組成乙個數,取代這兩個數放在陣列中。如果用同乙個陣列玩很多次時,最後會得到僅僅只有乙個數的陣列。問:給你最後那乙個數,那麼它的原陣列最大元素數目為多大?給出的數p滿足1≤

p<

10100000

。注意的是,原陣列只含有正整數。

解法:

這是一道貪心題。數太大,可以用字元陣列表示。這樣的話,貪心策略是怎樣的呢?既然要使得最後元素個數最大,那麼我們可以從後面開始找將串分成兩個部分的子串,該子串滿足:1.前面的串表示的數大於等於該串表示的數;2.該串表示的數要盡量小。找到之後計數一次,接著將前面的串當成新的串繼續找,直至不能夠找到為止。這樣求出的解一定是最優的。

以上題意解法**鏈結(xwdd部落格鏈結)

官方題解鏈結

2016XTU演算法專題個人賽3 題解 未完成

題意 有0 10共11個座標位置,現在有n個餡餅掉在這11個位置,告訴每個餡餅落下的時刻t和座標x,上一秒位於x出的人只能移動到x 1,x,x 1這三個位置去接餡餅,問最多能接住多少餡餅。解法 dp i j 表示 i 時刻在 x 處能接住的最多餡餅數。dp初始化為0,先計算出i時刻j位置有多少餡餅,...

Tarjan演算法專練

題意 給乙個圖判斷是否是強連通圖。題解 利用tarjan計算圖中強連通分量的個數,如果為1則是強連通圖,否則不是。includeusing namespace std const int n 2e4 100 typedef long long ll vectorg n bool is instack...

2016級計專班程式設計課程主頁

新學期,我們一起起程!針對2016級的程式設計教學,重點之一是完善課堂方案,讓課堂成為再次掌握程式語言的催化劑,以課堂活動為核心,讓學習更有效。這重中之重,便是小組合作,學習小組不僅在課堂起作用,而且要延伸到整個學習過程。重點之二,是減輕學習負擔。仗著程式設計課是電腦科學與技術專業最重要的專業基礎課...