博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URAL 1091. Tmutarakan Exams
阅读量:4286 次
发布时间:2019-05-27

本文共 992 字,大约阅读时间需要 3 分钟。

  

题意:给你两个数K,S,让你从1~S中挑选K个数使得他们的最大公约数大于1,问你有多少种方法?(如果方法大于10000 即方法就是10000)

题解:S 的范围【2,50】比较小,可以用容斥原理做

(1)把S分解素因子只需到23即可.....(组成的因子不超过S的一半)然后去能整除素因子的个数组合

(2)去除含有共同的数的组合即可 2 * 3   2 * 5    2 * 7    3 * 5    3 * 7       2 * 11 (这个可以思考一下)

code:

#include
#include
#include
#include
using namespace std;typedef long long LL;int prime[9] = {2,3,5,7,11,13,17,19,23};int Ro[6] = {6,10,14,15,21,22};int C[30][30];void init(){//组合数打表 C[0][0] = 1; for(int i = 1;i <= 25;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]; }}int main(){ init(); int K,S; while(cin >> K >> S){ int sum = 0; for(int i = 0;i < 9;i++){//素因子 int k = S / prime[i]; if(k >= K) sum += C[k][K]; } for(int i = 0;i < 6;i++){//含有共同的数 int k = S / Ro[i]; if(k >= K) sum -= C[k][K]; } if(sum > 10000) sum = 10000; cout << sum << endl; }}

转载地址:http://scsgi.baihongyu.com/

你可能感兴趣的文章
C# lock关键词/lock语句块、线程锁
查看>>
EF TransactionScope异常:分布式事务已完成。请将此会话登记到新事务或 NULL 事务中。
查看>>
EF 多线程TransactionScope事务异常"事务(进程 ID 58)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。"
查看>>
TransactionScope线程安全问题整理
查看>>
关于EF上线文异常问题整理
查看>>
AngularJS路由之ui-router(三)大小写处理
查看>>
AngularJs checkbox绑定
查看>>
C# 扩展方法整理
查看>>
微信小程序开源项目库整理
查看>>
Ionic Grid栅格布局居中实例
查看>>
VS生成Cordova for Android应用之Gradle
查看>>
Cordova 配置WebView可以打开外部链接
查看>>
Ionic Tab选项卡使用整理(一)
查看>>
Ionic Tab选项卡使用整理(二)
查看>>
Ionic Tab选项卡使用整理(三)
查看>>
AngularJs控制器说明(一)
查看>>
Teleport Ultra网站静态资源下载工具
查看>>
AngularJs $http 请求服务整理
查看>>
ionic 加载动作$ionicLoading 和加载动画 ion-spinner
查看>>
使用Git获取最新版本到本地
查看>>