時間限制: 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 也就是左邊比他低的乘...