套題8 22 下午

2022-05-14 00:45:11 字數 1742 閱讀 4297

count

【問題描述】

李華終於逃離了無盡的英語作文, 重獲自由的他對一棵樹產生了興趣。

首先,他想知道一棵樹是否能分成大小相同的幾塊(即切掉一些邊,使得每個

連通塊的點數相同)。然後,他覺得這個問題過於簡單,於是他想知道一共有多

少種方案可以把這棵樹分成大小相同的幾塊。

然後他發現自己不會了,於是向聰明的你求助。

【輸入格式】

第一行乙個數,表示數的大小。

第二行至第 n 行,每行兩個數 x,y 表示 x 和 y 之間有一條邊。

【輸出格式】

一行,表示方案數。

【樣例一輸入】

61 2

2 32 4

4 55 6

【樣例一輸入】

3hint:

對於 30%的資料,1<=n<=100。

對於 60%的資料,1<=n<=100000。

對於 100%的資料,1<=n<=1000000。

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

#define m 1000009

intn;

int h[m],nex[m*2],to[m*2

],cnt,vis[m];

int sum[m],ans=2

;int build(int id,int

f)

return

sum[id];

}bool check(int

x)int

main()

build(

1,0);

for(int i=2;icheck(i);

/*乙個錯誤的寫法。。。。坑了我半天

for(int i=2;i<=sqrt(n);i++)

ans+=check(i)+check(n/i) //但是當i == n/i 就加重了。

*/ cout

}

dinner

【問題描述】

清兒今天請好朋友們吃飯,一共 n 個人坐在坐在圓桌旁。

吃飯的第一步當然是點餐了。 服務員拿來了 m 份選單。 第 i 個人閱讀選單並點出

自己喜歡的菜需要花費時間 t[i]。

當乙個人點完菜之後,就會把選單傳到他右手邊的第乙個人。

m 份選單是同時發出的,每個選單只能同時被乙個人閱讀。

清兒希望知道如何分發選單,才能讓點餐的總時間花費最少呢?

【輸入格式】

輸入檔名為 dinner.in

輸入第一行是 n 和 m,表示人數和選單數

輸入第二行,n 個數,表示每個人點餐所需要的時間。

【輸出格式】

輸出檔名為 dinner.out

輸出乙個整數表示點餐花費的最小時間。

【樣例一輸入】

3 21 5 10

【樣例一輸出】

10【樣例二輸入】

4 21 2 3 4

【樣例二輸出】

noip 模擬題 #1

5hint:

對於 20%的資料,n<=100.

對於 60%的資料,n<=10000.

對於 100%的資料,n<=50000,t[i]<=600

1014下午考試

題目大意 有乙個 n m 的矩陣,矩陣的每個位置上可以放置乙個數。對於第i行,第i行的差異定義為該行的最大數和最小數的差。乙個矩陣的差異,定義為矩陣中每一行差異的最大值。現在給定k個數v 1.k 問 從這k個數中選 n m 個數放入矩陣,能夠得到的矩陣的差異最小值是多少。n m k 100000,n...

10 9 下午 考試

t1 f i 表示不和法數大於i個的數量 f i c n ic 首先n m k n 先不考慮 用擋板法易知 ans c 即給m個果子中間再加上n 1個擋板的位置,在選n 1個 那考慮必須放乙個的情況,只要預先把m n,相當於每個籃子先放乙個 那考慮不合法數 i個,只需要預先給i個放k個,那這i個一定...

10 30 下午考試

p76 年?月?日?題目名稱 他 她 它 名稱 he she it 輸入 he.in she.in it.in 輸出 he.out she.out it.out 每個測試點時限 1 秒 1 秒 1 秒 記憶體限制 512mb 512mb 512mb 測試點數目 10 10 10 每個測試點分值 10...