麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

【GDKOI2017模擬1.21】Equation

2019-11-11 05:32:15
字體:
來源:轉載
供稿:網友

Description

聽著自己美妙的曲子,小Z進入了夢鄉。在夢中,小Z仿佛又回到了自己縱橫考場的年代。在夢中,小Z參加了一場考試,這場考試一共有n道題,每道題的最終得分都是一個大于等于0的整數。然而醒來后,小Z忘記了自己每道題的得分。他只記得自己計算過m次一些題目的分數和,每道題都被計算過,并且只被計算過一次。除此之外他還記得其中t道題的滿分分別是多少(一道題的得分不會超過滿分)。現在小Z想知道他這場考試有多少種得分情況(至少有一道題的得分不同就算不同的情況),因為這個答案可能很大,你只需要輸出答案對1,000,000,007取模后的結果即可。

Input

第一行兩個整數n,m表示題目個數與求和次數。 接下來m行,每行以一個整數k開頭,表示小Z這次對k道題進行了求和。然后k個整數a1~ak,表示這次求和的都是哪些題。最后一個整數c表示求和后的結果。 一行一個整數t,含義見題目描述。 t行,每行兩個整數r,L,表示第r道題的滿分是L。

Output

一行一個整數表示答案模1,000,000,007的結果。

Sample Input

5 2 2 1 2 5 3 3 4 5 7 1 3 4

Sample Output

180

Data Constraint

對于30%的數據:n,c≤8。 對于另外40%的數據:t=0。 對于100%的數據:1≤n,m≤1,000,000,0≤c,L≤1,000,000,0≤t≤20。

題解

沒有限制時,顯然可以直接組合數 當有限制時,發現限制數量很少,所以考慮使用容斥來解決這個問題 對于一個子要求a[i]<r(不滿足),可以把它看成滿足a[i]>=r,那么可以把a[i]分解為x+r+1的形式(x>0)這樣就可以直接用沒有限制的方法求出總的方案數

貼代碼

const md=1000000007;var a,go:array[0..1000005]of longint; cc,tt:array[0..1000005]of longint; f:array[0..1100005]of int64; yu:array[0..2000005]of int64; p:array[0..25,1..2]of longint; i,j,k,l,m,n,x,y,z,t,o,c:longint; zong,ans,tot,tmp:int64;function quickmi(x,y:int64):int64;var a,b:int64;begin a:=x; b:=1; while y>0 do begin if y mod 2=1 then b:=(b*a) mod md; a:=(a*a) mod md; y:=y div 2; end; exit(b);end;begin //assign(input,'t3.in'); reset(input); assign(input,'equation.in'); reset(input); assign(output,'equation.out'); rewrite(output); readln(n,m); yu[0]:=1; yu[1]:=1; for i:=2 to 2000000 do yu[i]:=(yu[i-1]*i) mod md; z:=0; zong:=1; for i:=1 to m do begin read(k); cc[i]:=k; for j:=1 to k do begin read(a[z]); go[a[z]]:=i; end; readln(tt[i]); tmp:=(yu[k-1]*yu[tt[i]]) mod md; tmp:=quickmi(tmp,md-2); tmp:=(tmp*yu[k+tt[i]-1]) mod md; zong:=(zong*tmp) mod md; end; readln(t); for i:=1 to t do readln(p[i,1],p[i,2]); f[0]:=zong; ans:=zong; for i:=1 to 1<<t-1 do begin z:=1; for j:=1 to t do if i and (1<<(j-1))<>0 then z:=z*(-1); for j:=1 to t do if i and (1<<(j-1))<>0 then begin c:=tt[go[p[j,1]]]; l:=i xor (1<<(j-1)); for k:=1 to t do if (go[p[k,1]]=go[p[j,1]]) and (j<>k) then begin c:=(c-p[k,2]-1) mod md; if c<0 then break; end; if c<0 then continue; k:=cc[go[p[j,1]]]; tmp:=(yu[k-1]*yu[c]) mod md; tmp:=quickmi(tmp,md-2); tmp:=(tmp*yu[k+c-1]) mod md; tmp:=quickmi(tmp,md-2); c:=(c-p[j,2]-1) mod md; if c<0 then continue; f[i]:=(f[l]*tmp) mod md; tmp:=(yu[k-1]*yu[c]) mod md; tmp:=quickmi(tmp,md-2); tmp:=(tmp*yu[k+c-1]) mod md; f[i]:=(f[i]*tmp) mod md; ans:=(ans+z*f[i]+md) mod md; break; end; end; writeln(ans); close(input); close(output);end.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产午夜免费不卡精品理论片 | 97青青草视频 | 男女牲高爱潮免费视频男女 | 久久久一区二区三区视频 | 久久精品2019中文字幕 | 国产一级二级视频 | 国产精品久久久久久久久久久久久久久 | 国产精品av久久久久久久久久 | 免费一级欧美在线观看视频 | 一区二区三区日韩电影 | 4p一女两男做爰在线观看 | 国产一区二区免费看 | www.91pron| 国产精品视频不卡 | 成人毛片100免费观看 | 国产精品一 | 国产午夜亚洲精品理论片大丰影院 | 永久免费黄色片 | 国产精品久久久久久久四虎电影 | 99re久久最新地址获取 | 欧美日韩精品一区二区三区蜜桃 | 日日狠狠久久偷偷四色综合免费 | 国产精品成人免费一区久久羞羞 | 欧美日本不卡 | 久久777国产线看观看精品 | 成年人视频在线免费观看 | 成人福利视频 | 精品久久久久久亚洲精品 | 欧美成人精品欧美一级乱黄 | 美国黄色毛片女人性生活片 | 一边吃奶一边摸下娇喘 | 99在线热播精品免费 | 日日综合| 天天躁狠狠躁夜躁2020挡不住 | 91精品观看91久久久久久国产 | 国产精品视频成人 | 高清成人在线 | 欧美一级爱操视频 | 99成人在线 | 99国产精品欲a | 久久综合久久综合久久 |