2020 4 4 C組模擬賽題解

2021-10-05 18:58:08 字數 4046 閱讀 5647

t1:swapity swap

t2:********s

t3:clock tree

farmer john 的 n 頭奶牛(1≤n≤10^5)站成一排。對於每乙個 1≤i≤n,從左往右數第 i 頭奶牛的編號為 i。farmer john 想到了乙個新的奶牛晨練方案。他給奶牛們 m 對整數 (l1,r1)…(lm,rm),其中 1≤m≤100。他讓她們重複以下包含 m 個步驟的過程 k(1≤k≤10^9)次:

對於從 1 到 m 的每乙個步驟i:當前從左往右數在位置 li…ri 的奶牛序列反轉她們的順序。

當奶牛們重複這一過程 k 次後,請對每乙個 1≤i≤n 輸出從左往右數第 i 頭奶牛的編號。

輸入的第一行包含 n, m 和 k。對於每乙個 1≤i≤m,第 i+1 行包含 li 和 ri,均為範圍在 1…n 內的整數,其中 li在第 i 行輸出指令序列執行了 k 次後奶牛序列中從左往右數第 i 個元素的編號。

722

2537

124

3576

我們用f[i][j]記錄第 j 個元素,經過2^i次翻轉後,這個元素的值。

然後寫倍增拆分k,最後輸出。

#

include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

int n,m,k,a[

111]

,b[111

],c[

100010

],f[35]

[100010];

intmain()

cout

}return0;

}

farmer john 想要給他的奶牛們建造乙個三角形牧場。有 n(3≤n≤10^5)個柵欄柱子分別位於農場的二維平面上不同的點 (x1,y1)…(xn,yn)。他可以選擇其中三個點組成三角形牧場,只要三角形有一條邊與 x 軸平行,且有另一條邊與 y 軸平行。

fj 可以組成的所有可能的牧場的面積之和等於多少?

第一行包含 n。

以下 n 行每行包含兩個整數 xi 和 yi,均在範圍 −104…104 之內,描述乙個柵欄柱子的位置。

由於面積之和不一定為整數且可能非常大,輸出面積之和的兩倍模 10^9+7 的餘數。

400

0110

12

3
這道題有此公式:

ac+ad+bc+bd=(a+b)*(c+d)

根據這個可以:

按照x座標從小到大,y座標從小到大的順序,依次去列舉每個點i

記錄每個橫縱座標各自積累的是多少。當又來了乙個新點,則把這個點對應的橫座標位置的和,加上4倍與上乙個點之間的距離。

#

include

#include

#include

using

namespace std;

long

long n,m,sum;

struct

node

a[100010];

bool

cmp1

(node a,node b)

bool

cmp2

(node a,node b)

bool

c***

(node a,node b)

bool

cmp4

(node a,node b)

void

work()

,yy[

20010]=

;long

long x1[

20010]=

,y1[

20010]=

;long

long x2[

20010]=

,y2[

20010]=

;for

(int i=

1;i<=n;i++)}

intmain()

sort

(a+1

,a+1

+n,cmp1)

;//排序一次做一次

work()

;sort

(a+1

,a+1

+n,cmp2)

;work()

;sort

(a+1

,a+1

+n,c***)

;work()

;sort

(a+1

,a+1

+n,cmp4)

;work()

; cout

}

farmer john 的新牛棚的設計十分奇怪:它由編號為 1…n 的 n 間房間(2≤n≤2500),以及 n−1 條走廊組成。每條走廊連線兩間房間,使得每間房間都可以沿著一些走廊到達任意其他房間。

牛棚裡的每間房間都裝有乙個在表盤上印有標準的整數 1…12 的圓形時鐘。然而,這些時鐘只有一根指標,並且總是直接指向表盤上的某個數字(它從不指向兩個數字之間)。

奶牛 bessie 想要同步牛棚中的所有時鐘,使它們都指向整數 12。然而,她頭腦稍有些簡單,當她在牛棚裡行走的時候,每次她進入一間房間,她將房間裡的時鐘的指標向後撥動乙個位置。例如,如果原來時鐘指向 5,現在它會指向 6,如果原來時鐘指向 12,現在它會指向 1。如果 bessie 進入同一間房間多次,她每次進入都會撥動這間房間的時鐘。

請求出 bessie 可能的出發房間數量,使得她可以在牛棚中走動並使所有時鐘指向 12。注意 bessie 並不撥動她出發房間的時鐘,但任意時刻她再次進入的時候會撥動它。時鐘不會自己走動;時鐘只會在 bessie 進入時被撥動。此外,bessie 一旦進入了一條走廊,她必須到達走廊的另一端(不允許走到一半折回原來的房間)。

輸入的第一行包含 n。下一行包含 n 個整數,均在範圍 1…12 之內,表示每間房間初始時的時鐘設定。以下 n−1 行每行用兩個整數 a 和 b 描述了一條走廊,兩數均在範圍 1…n 之內,為該走廊連線的兩間房間的編號。

輸出出發房間的數量,使得 bessie 有可能使所有時鐘指向 12。

4

1110

111112

2324

1
求起點有多少個,那麼我們依次列舉每個點作為起點,把它當做樹根,從它出發往孩子走,看看能不能做到。

這樣列舉每個點做,每次根確定以後,一遍dfs

#

include

#include

#include

#include

using

namespace std;

int n,c[

2501

],t[

2501

],ans;

vector<

int> a[

2501];

//存圖

void

dfs(

int u,

int f)

}int

main()

for(

int i=

0;i1;i++

)for

(int i=

1;i<=n;i++

) cout

}

2020 3 11 C組模擬賽題解

t1 水果盛宴 t2 憤怒的奶牛2 t3 採訪 t4 房間開燈貝茜又再一次地闖入了 farmer john 的房子!她在廚房發現了一堆檸檬和一堆橘子 每堆都有無限多個 並且,她希望盡可能地多吃。貝茜的有乙個飽腹值上限 t 1 t 5,000,000 吃乙個橘子會增加她 a 點飽腹值,吃乙個檸檬會增加...

2020 3 14 C組模擬賽題解

t1 探索的奶牛 t2 單詞 t3 牛車 t4 危險係數fj的奶牛喜歡探索農場周圍的地形。一開始,所有n 1 n 1,000,000,000 只奶牛一起出發,但當碰到路口時,這一群牛可能會分成兩部分 不能為空 每一部分都繼續前進,當碰到另乙個路口時,再分成兩部分,如此反覆下去。假設路上到處都是新的岔...

2020 3 28 C組模擬賽題解

t1 羊羊整除 t2 羊羊吃草 t3 羊羊修路 t4 羊羊列隊羊年到了,村長開始教小羊學習pascal語言,剛開始學習四則運算。村長在白板上寫下兩個整數16和3,問小羊們,有16隻羊,平均分到3個羊村,每個羊村分到的數量必須相同,這個分配的數量最大是多少?小羊們很快就得到了答案,每個羊村分到5只,有...