博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-1796 How many integers can you find 容斥定理
阅读量:6577 次
发布时间:2019-06-24

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

红果果的容斥定理。

代码如下:

#include 
#include
#include
#include
using namespace std;int ans, seq[15], N, flag;int M;inline int GCD(int a, int b){ int t; while (b) { t = a; a = b; b = t % b; } return a;}inline int LCM(int a, int b) { return a / GCD(a, b) * b;}void dfs(int p, int num, int sign){ if (p > 0) { ans += sign * N / num; } for (int i = p + 1; i <= M; ++i) { dfs(i, LCM(seq[i], num), -sign); }}int main(){ int i, j; while (scanf("%d %d", &N, &M) == 2) { flag = 0; ans = 0; for (i = 1, j = 1; i <= M; ++i, ++j) { scanf("%d", &seq[j]); if (seq[j] <= 0 || seq[j] >= N) { --j; } } N -= 1; M = j - 1; dfs(0, 1, -1); printf("%d\n", ans); } return 0;}

转载于:https://www.cnblogs.com/Lyush/archive/2012/07/28/2612834.html

你可能感兴趣的文章
table头部固定,内容滚动
查看>>
插入DOM元素
查看>>
Android SDK Manager 更新
查看>>
第一次作业:Linux 2.6.32的进程模型与调度器分析
查看>>
C# Excel嵌入到Winform
查看>>
修改HTML5 input placeholder 颜色及修改失效的解决办法
查看>>
Windows 服务器部署 asp.net core
查看>>
html5 随机数函数
查看>>
数据结构之图(2-1)【十字链表】适用于有向图
查看>>
你必须知道的简单的位操作技巧
查看>>
怎样合并排序数组(How to merge 2 sorted arrays?)
查看>>
年礼成快递企业不再接件主因:苹果产品最疯狂
查看>>
实习第三天
查看>>
Java第四次实验
查看>>
CSS3transition实现的简单动画菜单
查看>>
C语言基础回顾
查看>>
在Java中,以下关于方法重载和方法重写描述正确的是?
查看>>
Codeforces Round #315 (Div. 2A) 569A Music (模拟)
查看>>
提升代码内外部质量的22条经验(转载)
查看>>
利用Linq对集合元素合并、去重复处理
查看>>