XUPT 新生賽題目總結

2021-10-13 07:31:28 字數 3034 閱讀 4459

xupt 新生賽題目總結

簡單的結構體排序,唯一要注意的是資料範圍(時間不能超過o(nlogn)),因此使用快排。

在講這道題前先簡單介紹一下博弈論題目特點:

1.兩名選手,交替進行預先規定好的操作

2.在任何情況下,合法操作只取決於情況本身,與選手無關

3.遊戲失敗的最終判定往往是選手無法進行合法操作了

顯然,這是一道經典博弈論的題目,不難發現先手必勝(題目中其實已經給提示),要證(猜)也不是特別難:

[1]當只有1堆時,顯然必勝.

[2]當只有2堆時,拿2必勝.

[3]當只有3堆時,拿1必勝,

[4]當只有4堆時,先拿2,後手怎麼拿先手都必勝。

[5]當只有5堆時,先拿4,必勝。

…[n]當有n堆時,必勝.

因此直接輸出win即可

顯然,只有奇數次操作的學妹才會站著,而又只有平方數的學妹能進行奇數次操作,因此這道題目翻譯一下就是:判斷1~2^40中的平方數

經典的貪心演算法–時間規劃問題,因為要盡可能多的寫題,因此用結構體將結束時間從小到大排序,然後依次寫就行(時間重合的就跳過)

#include

struct timu

;int

main()

}for

(i=2

,j=1

;i<=n;i++)}

printf

("%d\n"

,count)

;return0;

}

小布特煩惱

這道題本質上來講是一道閱讀題,題目中的關鍵資訊:

1.小布必須以這樣的方式放置立方體:它們將按體積按非遞減順序排序。

2.小布可以交換兩個相鄰的立方體。

顯然這是氣泡排序的方法,因此我們只需計算氣泡排序的最差情況下的交換次數:假設有n個物體從大到小排列,那麼第1個物體需交換n-1次,第2個物體需交換n-2次…第n-1個物體需交換1次。顯然這是等差數列。

那麼總次數sum=(n-1+1)*(n-1)/2。

又因為題目中說了

3.如果小布需要超過 (n-1)n/2-1 次交換操作,他就不會做這種無聊的工作。

因此只需判斷數列是否單調遞減即可。

#include

intmain()

,count=0;

scanf

("%d"

,&s)

;while

(s--)}

}if(count>=((

(n-1

)*n/2)

-1))

printf

("no\n");

else

printf

("yes\n");

}return0;

}

菜學長的糖糖

判斷乙個數出現的次數即可。

#include

intmain()

;int n,i,j,t,count;

scanf

("%d"

,&n)

;for

(i=1

;i<=n;i++

)scanf

("%lld"

,&a[i]);

for(i=

1;i<=n-

1;i++)}

}for

(i=1

;i<=n;)if

(count%2==

1)i=i+count;

}return0;

}

水題

一道數學思維題,從n=k,nk三種情況考慮即可

#include

intmain()

printf

("%d\n"

,count)

; count=0;

}else

}return0;

}

2015新生賽題目

time limit 1 sec memory limit 128 mb submit 66 solved 13 submit status web board 實驗室有n個座位,原本編號為1 n。現在zero將所有座位重新編號。zero想知道對於給定的數字p,是否存在某個座位的新編號為p,或者某些...

新生賽賽後總結

題目描述 蒲煜凡學長跟學妹出來約會了!蒲煜凡學長作為一名標準直男,想要給學妹買一杯奶茶,便問學妹喜歡喝什麼樣的奶茶,學妹回了兩個字 隨便 蒲煜凡學長傻眼了,但作為一名優秀的acmer,他是不會坐以待斃的,他早早便將學妹喜歡喝的奶茶 和奶茶店的 表弄到了手 現在你要根據奶茶 判斷學妹到底喜歡喝哪一種奶...

題解 關於新生賽部分題目的

題目傳送門 題目是個圓,弱弱的問一句有存圓的資料結構或型別嘛?呃,看成一條直線不就行。題目資料量感人,我能不能o n 3 解決?emm.我的思路 1.首先既然能構成等邊三角形,那麼必然,三個點是要平分整個圓的。也就是說只要存在一組三個點他們之間的距離都是三分之一圓弧就行,也就是周長的三分之一。2.把...