TuringEDU 1509民主集中制

2022-09-19 21:33:25 字數 846 閱讀 6044

有n個人坐座位,本著民主精神,每個人可以自己提出來,他所希望的座位的範圍,同時考慮到集中制的要求,他只能說乙個數x,表示他所希望的座位不超過x。求滿足每個人訴求的方案有少種。你只需要將答案mod 1000000007即可。如果這是不可能的,就輸出0。最小的可能編號為1。

第一行:乙個整數n(1<=n<=1000);

第二行n個整數,表示n個人的訴求。

乙個整數。

25 8

本題其實使用的是排列組合的原理,

如果直接計算肯定不好計算,

我們可以將 訴求陣列 從小到大排序

這樣對於每乙個 i,(2<=i<=n),

前一到i-1個人必定沒人會佔掉前a[i]個座位中的i-1個。

ac**如下:

#include#include#include//#pragma gcc optimize(2)

using namespace std;

inline int read()

while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();

return s*w;}

long long n,sum=1;

long long a[1010];//別忘記開long long

int main()//這個if判斷其實加不加無所謂,因為sum*0後sum會永遠等於0

sum=sum*(a[i]-i+1)%1000000007;

sum%=1000000007;//保險起見,再模一次

}cout

}

POJ 1509 字尾陣列

點選開啟鏈結 題意 給個串問最小的字尾,但是這個串是個環 思路 是個環也好處理,那麼就將串複製一遍加到後面就行了,然後求出字尾陣列和高度陣列,剛開始我寫的是就求出字尾陣列sa,然後從排名第1開始找,比如找到了i,排名為i的從第sa i 開始,那麼如果這個值小於輸入串的長度,直接輸出就行,提交wa,看...

1509 普及模擬 單元格

在乙個r行c列的 裡,我們要選出3個不同的單元格。但要滿足如下的兩個條件 1 選中的任意兩個單元格都不在同一行。2 選中的任意兩個單元格都不在同一列。假設我們選中的單元格分別是 a,b,c,那麼我們定義這種選擇的 費用 f a b f b c f c a 其中f a b 是指單元格a到單元格b的距離...

HIHOCODER 1509 異或排序

給定乙個長度為 n 的非負整數序列 a 1.n 你需要求有多少個非負整數 s 滿足以下兩個條件 1 0 s 260 2 對於所有 1 i n 有 a i xor s a i 1 xor s 第一行乙個正整數 n 第二行 n 個非負整數表示序列 a 1.n 1 n 50 0 a i 260 乙個非負正...