How many integers can you find HDU - 1796_容斥计数
题目过于智障,不用解释
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include<cstdio> using namespace std; typedef long long ll; const int R=13; ll a[R]; ll n,ans; int m,cnt=0; ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b);} void dfs( int cur,ll lcm, int id){ if (cur>cnt) return ; lcm=a[cur]/gcd(a[cur],lcm)*lcm; if (id)ans+=(n-1)/lcm; else ans-=(n-1)/lcm; for ( int i=cur+1;i<=cnt;++i) dfs(i,lcm,!id); } int main(){ while ( scanf ( "%lld%d" ,&n,&m)!=EOF) { ans=cnt=0; for ( int i=1;i<=m;++i){ ll k; scanf ( "%lld" ,&k); if (k)a[++cnt]=k; } for ( int i=1;i<=cnt;++i) dfs(i,a[i],1); printf ( "%lld\n" ,ans); } return 0; } |
分类:
数学 - 容斥原理
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 终于决定:把自己家的能源管理系统开源了!
· [.NET] 使用客户端缓存提高API性能
· 外部H5唤起常用小程序链接规则整理
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· WPF 怎么利用behavior优雅的给一个Datagrid添加一个全选的功能