您的位置:首页 > 其它

Ural 1091. Tmutarakan Exams 容斥原理

2017-08-15 14:36 134 查看
其实这个地方还是相当与枚举gcd(a,b)!=1的 数,

那么可能出现重复,,

所以就要枚举的是质因数,

但是还有重复。。https://vjudge.net/contest/177343#problem/I

看别人的递归的代码。。http://allcrazy.iteye.com/blog/1070702

int c[30][30];
int p[11] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };
int ans;
int k, s;
void init()
{
for (int i = 1; i <= 29; i++)
{
c[i][0] = c[i][i] = 1;
for (int j = 1; j < i; j++)
c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
}
}
void dfs(int id,int flag,int lcm){
if(id==10)return;
dfs(id+1,flag,lcm);
int lcm1=lcm*p[id];
int l=s/lcm1;
if(l<k)return;//剪支
ans+=c[l][k]*flag;
dfs(id+1,-flag,lcm1);
}
int main(){
init();
while(~sf("%d%d",&k,&s)){
ans=0;
dfs(0,1,1);
if(ans>10000)ans=10000;
pf("%d\n",ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: