日常訓練 20170602 Equation

2021-08-02 05:56:55 字數 1446 閱讀 3018

題意:聽著自己美妙的曲子,小z進入了夢鄉。在夢中,小z彷彿又回到了自己縱橫考場的年代。在夢中,小z參加了一場考試,這場考試一共有

n 道題,每道題的最終得分都是乙個大於等於

0的整數。然而醒來後,小z忘記了自己每道題的得分。他只記得自己計算過

m 次一些題目的分數和,每道題都被計算過,並且只被計算過一次。除此之外他還記得其中

t道題的滿分分別是多少(一道題的得分不會超過滿分)。現在小 z 想知道他這場考試有多少種得分情況(至少有一道題的得分不同就算不同的情況),因為這個答案可能很大,你只需要輸出答案對 109

+7取模後的結果即可。

輸入格式:第一行兩個整數 n,

m 表示題目個數與求和次數。

接下來

m 行,每行以乙個整數

k開頭,表示小z這次對

k 道題進行了求和。然後

k個整數 a1

…ak ,表示這次求和的都是哪些題。最後乙個整數

c 表示求和後的結果。

接下來一行乙個整數

t,含義見題目描述。

接下來

t 行,每行兩個整數 r,

l,表示第

r 道題的滿分是 l。

感覺和之前的一題幾乎一樣:直接容斥一發就過了

#include

typedef long long ll;

const int n = 1e6 + 50;

const int p = 1e9 + 7;

const int inf = 1e9;

int n, m, k[n], c[n], l[n], l[n], a, first[n], s;

ll fac[n*2], inv[n*2];

template void read (t &x)

struct recmp[n];

void ins(int

x, int

y) ;

first[x] = s;

}ll pwr(ll x, int k)

void init()

int calc(int

x) ll c(ll n, int k)

int main()

read(c[i]);

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

l[i] = inf;

read(k[0]);

while (k[0]--)

ll ans = 1;

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

//printf("i=%d tans=%lld\n", i, tans);

ans = ans * tans % p;

}printf("%lld\n",(ans % p + p) % p);

return

0;}

日常訓練 20170602 Book

n 個人,m組喜歡關係,2 n 10000,0 m 20000 保證二元組 x y 不重複。每個測試點資料不超過 10 組。不知所措,猜了乙個結論,只要每個點有入度出度就判 ye s 結果被出題人發現我這樣水過了資料,就加強了資料,把我卡成 30 分。題解是只要人與郵票能匹配就一定存在一種方案使得有...

日常訓練 壓縮

巨大的文字往往令人頭疼,特別是文字內容有大量重複的情況下,巨大的文字不便於運輸和閱讀,於是我們提出了noip nonsense obivous index pattern 荒謬的顯然索引法 一種 有效的 壓縮文字的方法。noip壓縮後的格式很特別,乙個文字壓縮後由若干個單元組成,每個單元由3部分組成...

日常訓練 Tree

j 對於h u j 時間複雜度的證明也是比較經典了,每次列舉的是sz eu s zev 相當於每次從a,b 中各任選一點,它們的lc a 為 u 這樣的點對列舉不會重複,因此總的時間複雜度為o n2 include include include include include using name...