ZZULIOJ 2494 考試排座位(模擬)

2021-09-19 15:41:50 字數 1786 閱讀 1817

時間限制: 1 sec  記憶體限制: 128 mb

提交: 74  解決: 20

[提交] [狀態] [討論版] [命題人:admin]

題目描述

每到考試時,為了保證每位同學和其周圍的同學都不認識,小明想出了如下策略:

假設某個考場有 n 個學校的考生,第 i 所學校有 t名考生參加考試。令每校考生排成一列縱隊,第 i+1 隊的考生排在第 i 隊考生之後。

從第 1 所學校開始,各校的第 1 位考生順次入座,然後是各校的第 2 位考生…… 以此類推。如果最後只剩下 1 所學校還沒有分配座位,則需要安排他們的考生隔位就坐。

但是小明不會為各校的考生分配座位號,請你為各校考生自動生成座位號,從 1 開始編號。

輸入第一行輸入參加考試的學校數 n (不超過100的正整數);第二行輸入 n 個不超過100的正整數(確保給出的整數都是10的倍數),其中第 i 個數對應第 i 所學校的考生人數,數字間以空格分隔。

輸出從第 1 所學校的開始,順次輸出考生的座位號。每10名考生佔一行,座位號間以 1 個空格分隔,行首尾不得有多餘空格。另外,每所學校的第一行按「#x」輸出該校的編號x,從 1 開始。

樣例輸入 copy

3

30 40 20

樣例輸出 copy

#1

1 4 7 10 13 16 19 22 25 28

31 34 37 40 43 46 49 52 55 58

61 63 65 67 69 71 73 75 77 79

#22 5 8 11 14 17 20 23 26 29

32 35 38 41 44 47 50 53 56 59

62 64 66 68 70 72 74 76 78 80

82 84 86 88 90 92 94 96 98 100

#33 6 9 12 15 18 21 24 27 30

33 36 39 42 45 48 51 54 57 60

題意開始有點沒懂,看下樣例,應該就能明白。例如樣例:即1排到1,2排到2,3排到3,然後4再排到1

排到第30個時,第三組沒位置了,所以再從第一組的第三排 從31開始,繼續模擬上述操作。所以這題可以

列舉每一行的情況,進行排列,然後再輸出。有乙個特殊情況,就是行數最大的那行,要跟該組上一行的最後

乙個數比較下,是否加1,例如樣例中的第二組,排完前三列後,數目為80,這時不能加1,要+2.

#include#includeusing namespace std;

#define n 110

int a[n][n][n];

int b[n];

int main()

int m_ = 0; //用來特判單獨一行

int now = 1;

for(int i = 1; i <= mx / 10; i++) //枚舉行

int x = 1;

int base = now, re = 0;

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

base = now + x, x++; // 下一組的 該行開始數字

}}

now = re + 1; //下一行從now這個數開始排}}

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

return 0;

}

zzulioj 2494 考試排座位

題目描述 每到考試時,為了保證每位同學和其周圍的同學都不認識,小明想出了如下策略 假設某個考場有 n 個學校的考生,第 i 所學校有 t名考生參加考試。令每校考生排成一列縱隊,第 i 1 隊的考生排在第 i 隊考生之後。從第 1 所學校開始,各校的第 1 位考生順次入座,然後是各校的第 2 位考生 ...

ZZULIOJ 2494 考試排座位 模擬)

題目描述 每到考試時,為了保證每位同學和其周圍的同學都不認識,小明想出了如下策略 假設某個考場有 n 個學校的考生,第 i 所學校有 t名考生參加考試。令每校考生排成一列縱隊,第 i 1 隊的考生排在第 i 隊考生之後。從第 1 所學校開始,各校的第 1 位考生順次入座,然後是各校的第 2 位考生 ...

樹狀陣列,HDOJ2494

幾個打桌球的漢子住在一條直線上,他們每個人都有乙個rank值,現在他們要比賽,就得選乙個人當裁判,裁判只能住在比賽兩個人的房子之間,而且rank值也必須在比賽兩個人之間。現在問一共能打多少場比賽 直觀就是列舉裁判的位置,那麼ans l i r i i l i n i 1 r i 也就是左邊比他低的乘...