問題描述
為了使得大家高興,小q特意出個自認為的簡單題(easy)來滿足大家,這道簡單題是描述如下:
有乙個數列a已知對於所有的a[i]都是1~n的自然數,並且知道對於一些a[i]不能取哪些值,我們定義乙個數列的積為該數列所有元素的乘積,要求你求出所有可能的數列的積的和 mod 1000000007的值,是不是很簡單呢?呵呵!
輸入格式
第一行三個整數n,m,k分別表示數列元素的取值範圍,數列元素個數,以及已知的限制條數。
接下來k行,每行兩個正整數x,y表示a[x]的值不能是y。
輸出格式
一行乙個整數表示所有可能的數列的積的和對1000000007取模後的結果。如果乙個合法的數列都沒有,答案輸出0。
樣例輸入
3 4 5
1 11 12 2
2 34 3
樣例輸出90
題解:
討論一種簡單情況:設n=3,a[1]=1,2 a[2]=1,2,3 a[3]=2,3
可以推出結論:
ans=∑a[1] * ∑a[2] *......* ∑a[m]
∑a[i]表示所有a[i]能取得數字總和
#include#include#include#define maxn 100005
#define ll long long
using namespace std;
const ll mod=1000000007;
ll n,m,k;
ll qans,hans=1,one,cnt=1;
struct rule
a[maxn];
ll mont(ll a,ll b)
b=(long long)b>>1;
a=(long long)(a*a)%mod;
} return res;
}bool cmp(rule a,rule b)
{ if(a.num==b.num)
{ return a.del
HAOI2012 音量調節
音量用乙個整數描述。輸入檔案中整數beginlevel,代表吉他剛開始的音量,整數maxlevel,代表吉他的最大音量。音量不能小於0也不能大於maxlevel。輸入中還給定了n個整數c1,c2,c3,cn,表示在第i首歌開始之前吉他手想要改變的音量是多少。吉他手想以最大的音量演奏最後一首歌,你的任...
HAOI2012 音量調節
嘟嘟嘟 這道題只要狀態一想出來,這題就做完了。另 dp i j 表示 i 首歌音量 j 能否達到,則如果dp i 1 j 1,那麼dp i j c i dp i j c i 1.然後最後從max到0反向遍歷dp n i 即可。注意這題陣列要開2e3,否則因為j c i 陣列越界造成了一些詭異的錯誤,...
HAOI2012音量調節
音量用乙個整數描述。輸入檔案中給定整數beginlevel,代表吉他剛開始的音量,以及整數maxlevel,代表吉他的最大音量。音量不能小於0也不能大於maxlevel。輸入檔案中還給定了n個整數c1,c2,c3 cn,表示在第i首歌開始之前吉他手想要改變的音量是多少。吉他手想以最大的音量演奏最後一...