解題報告:
設數字分別為a1
,a2,
a3……
m ,那麼若方程x1
a1+x
2a2+
……xn
+1m=
1有解 ,則這張卡片可行。而此方程有解的充要條件為gc
d(a1
,a2,
a3……
m)=1
,所以本題即為求gc
d(a1
,a2,
a3……
m)=1
,1≤a
1,a2
,a3…
…an≤
m 的方案數。
那麼可以反著求gc
d(a1
,a2,
a3……
m)≠1
,1≤a
1,a2
,a3…
…m≤m
的方案數。,再用總方案數nm
減去即可。
又因為m是知道的,所以可以先將m分解質因數為p1
,p2,
p3……
pcnt
,那麼a1
,a2,
a3……
m 有公因子px
的方案數即為⌊m
px⌋n
,但會算重,容斥一下即可,我的**中是用二進位制數表示選哪幾個質因子的,也可以深搜。
#include
#include
#include
#include
#include
#include
#define ll unsigned long long
using
namespace
std;
const
int n=35;
int n,m,p[n],cnt;
ll ans=1;
int getint()
int main()
if(tmp>1)p[++cnt]=tmp;
for(int i=1;i<=n;i++)ans*=m;
for(ll i=1;i<(1
<1,d=1,tot=1;
for(int j=1;j<=cnt;j++)
for(int j=1;j<=n;j++)tot*=m/d;
ans+=tot*f;
}cout
0;}
跳蚤 POJ 1091 容斥原理
跳蚤time limit 1000ms memory limit 10000k total submissions 8723 accepted 2601 description z城市居住著很多只跳蚤。在z城市週六生活頻道有乙個娛樂節目。乙隻跳蚤將被請上乙個高空鋼絲的正 鋼絲很長,可以看作是無限長。...
poj1091 跳蚤 容斥原理
思路 假設跳蚤選擇x1個第一張卡片,x2個第二張卡片。xn個第n張卡片,xn 1張寫著m的卡片,那麼就可以列出方程 a1 x1 a2 x2 an xn m x n 1 1 由於可以向左跳和向右跳,因此題目即問上述不定方程是否有解?答案以及它的證明可以在任何一本數論書中找到,它的充要條件是 a1,a2...
poj 1091 跳蚤(不定方程 容斥)
跳蚤 time limit 1000ms memory limit 10000k total submissions 8731 accepted 2605 description z城市居住著很多只跳蚤。在z城市週六生活頻道有乙個娛樂節目。乙隻跳蚤將被請上乙個高空鋼絲的正 鋼絲很長,可以看作是無限長...