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

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

题目连接   

处男容斥原理  纪念一下  TMD看了好久才明白DFS...

先贴代码后解释

 

#include
#include
using namespace std;#define LL long long#define N 11LL num[N],ans,n;int m,cnt;LL gcd(LL a,LL b){ int t; while(b) { t=a%b; a=b; b=t; } return a;}void dfs(int id,bool flag,LL LCM){ LCM=num[id]/gcd(num[id],LCM)*LCM; if(flag)ans+=n/LCM; else ans-=n/LCM; int i; for(i=id+1;i

DFS看不懂的话  一定去自己按树模拟一下,这是对难解的代码的最好方法之一

 

第一:小于n的数  所以n--别忘

第二:flag为1,说明是奇数层,加,为0,说明是偶数层要减

第三:小心  题中说的是非负数  所以判断是不是0

第四:注意DFS做容斥的方法,模拟一下  真的好理解

 

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

你可能感兴趣的文章
Linux文件系统探索
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
hadoop2.7.2 HA搭建
查看>>
gitosc上传项目
查看>>
基于开源云平台OpenStack的存储分析
查看>>
关于Android Sqlite语句注意事项一点
查看>>
shell高级视频答学生while循环问题
查看>>
无法SSH到Ubuntu
查看>>
使用@media实现IE hack的方法
查看>>
磁盘管理 - 软RAID
查看>>
KVM下virtio驱动虚拟机XML配置文件分析
查看>>
创建一个基本镜像
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
7、kvm虚拟机快照备份
查看>>
visual studio 2005没有找到MSVCR80D.dll问题
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
我的友情链接
查看>>