數論 HAOI2012 容易題

2021-08-09 02:17:07 字數 1091 閱讀 6341

問題描述

為了使得大家高興,小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首歌開始之前吉他手想要改變的音量是多少。吉他手想以最大的音量演奏最後一...