传送门

题意

分析

是一道稍微变形的容斥题目,容斥一般的公式
\[ans=\sum_iAi-\sum_{i<j}{Ai∩Aj}+\sum_{i<j<k}{Ai∩Aj∩Ak}+...\]
但是这道题只要奇数次数的,那么对于第k项乘以一个系数\(2^{k-1}\)
具体见代码

trick

如果在每次dfs中for循环前加一个判断:if(lcm<=n)...
时间会从1000ms降到20ms

代码

#include<cstdio>#define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a))
//#pragma comment(linker, "/STACK:102400000,102400000")
//inline void read(int &x){x=0; char ch=getchar();while(ch<'0') ch=getchar();while(ch>='0'){x=x*10+ch-48; ch=getchar();}}
inline ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
int t,n,m;
ll lcm,a[16],ans;
/*
举个栗子,如A,B,C,那么第一次dfs会计算A,AB,AC,ABC的值,第二次dfs会计算B,BC,第三次dfs会计算C
,希望大家能够理解
*/
void dfs(int cur,ll lcm,int num)//当前第cur个,需要乘的系数为2^(num-1)
{lcm=a[cur]/gcd(a[cur],lcm)*lcm;if(num&1) ans+=n/lcm*(1ll<<(num-1));else ans-=n/lcm*(1ll<<(num-1));if(lcm<=n) for(int i=cur+1;i<m;++i)  dfs(i,lcm,num+1);
}
int main()
{for(scanf("%d",&t);t--;){scanf("%d %d",&n,&m);ans=0;for(int i=0;i<m;++i) scanf("%lld",a+i);for(int i=0;i<m;++i)  dfs(i,a[i],1);printf("%lld\n", ans);}return 0;
}

转载于:https://www.cnblogs.com/chendl111/p/7074171.html

“玲珑杯”线上赛 Round #17 河南专场 B:震惊,99%+的中国人都会算错的问题(容斥计算)...相关推荐

  1. “玲珑杯”线上赛 Round #15 河南专场 F 咸鱼文章

    elttiL moT nwod eht teerts sllac ruo god " ehT peek god " . piZ si a peehs god . tuB nehw ...

  2. 玲珑杯 1138 - 震惊,99%+的中国人都会算错的问题(容斥)

    题目链接:http://www.ifrog.cc/acm/problem/1138 题解:这题就是简单的容斥,但是和标准的不太一样,这个是只加上出现奇数的.其实也是挺简单的. 容斥原式:      只 ...

  3. 水下机器人线上赛战火升级,目标检测、通信赛项等你来战

    权威目标检测.水声通信赛事火热报名中,更有35万奖金和自然科学基金委认证证书等你来拿! 2021年全国水下机器人大赛-线上赛战火升级啦!新上线水下光学目标检测产业应用.水下声学通信应用产业两大算法赛项 ...

  4. (实战)[2022 公司Deepracer 线上赛和线下赛]-002

    文章目录 1. 感受 2. 线下赛和线上赛的区别 3.比赛阶段 3.1 线上赛(第一轮) 3.2 线下赛(第二轮) 3.3 线下赛(第三轮) 4. 线下比赛总结 1. 感受 很荣幸跟数学系高材生Ker ...

  5. 首届“陇剑杯”网络安全大赛线上赛圆满结束

    9月14日,集结了各行业领域3020支战队.11135名网络安全精英的首届"陇剑杯"网络安全大赛线上赛圆满结束,成功拉开将于9月25日在甘肃兰州新区举行的总决赛战幕.届时,涵盖网络 ...

  6. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则

    简 介: 本文对于参加2021年第十六届智能车竞赛全国总决赛线上比赛室内AI视觉组比赛细则. 关键词: 智能车竞赛,线上比赛,室内视觉AI 一.比赛方式   由于AI视觉组的特殊识别任务,比如分赛区的 ...

  7. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则草案 - 初步版本

    简 介: 关于室内AI视觉组在线上比赛的特殊性,本文由逐飞起草的比赛细则给出了比赛过程的详细描述. 关键词: 智能车竞赛,室内视觉,线上比赛 §01 比赛方式   由于AI视觉组的特殊识别任务,比如分 ...

  8. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  9. 2022全国水下机器人大赛国际线上赛来啦!“水下感知赛、通信赛”等你来战!

    为打造国内外水下机器人领域顶端赛事,激励高校.科研机构和行业顶尖行业通过大赛的实践应用,加快科学技术转化和创新应用验证,为我国海洋经济和海洋安全做出更大的贡献. 为此,由中国国家自然科学基金委员会指导 ...

最新文章

  1. 浮动布局会受父框滚动条影响
  2. 简明 Vim 练级攻略(转)
  3. n1Linux分辨率,看看诺基亚曾经的六款平板电脑 N1不是第一
  4. IOS(objective-c)实现md5加密(32位小写)的工具类
  5. 计算机安全靠,市计算机:网络安全进校园,网络安全靠人人
  6. Java黑皮书课后题第7章:7.14(计算gcd)编写方法,返回个数不确定的整数的最大公约数。编写一个测试程序,提示用户输入5个数字,调用该方法找出这些数的最大公约数,并显示这个最大公约数
  7. 枚举当前环境中打开的所有IE
  8. 如何在vue中使用剪裁图片插件cropperImage
  9. bootstrap table无法服务器分页_[精选] MySQL百万数据,你如何用分页来查询数据
  10. Kafka集群部署搭建完美标准版
  11. linux没有interface文件,Linux下interface文件修改
  12. C#IList与List区别
  13. 使用XML文件方式配置log4cxx(log4cxx xml例子)
  14. Spring-context-ConfigurationClassUtils类
  15. vs中怎么去链接一个库文件(ws2_32.lib)
  16. 《Linux/UNIX系统编程手册(上、下册)》
  17. 高效记忆/形象记忆(11)110数字编码表 51-60
  18. Windows快捷键PrtSc截图无法正常使用
  19. OpenCMS 11 (一)安装配置
  20. 大学计算机基础课都学什么,大学计算机基础课程

热门文章

  1. 实际项目中如何使用Git做分支管理
  2. TEXTAREA只读
  3. 游泳池改造预算 -- PTA
  4. 快速定位函数指针所指向的函数原型
  5. 函数指针和回调函数的简单应用
  6. wait, notify 和 notifyAll区别
  7. 到广州来了,找不到工作!
  8. 如何在3ds max中创建可用于真人场景的巨型机器人:第 1部分
  9. IDEA中sout输出中文乱码
  10. 如何选择电机驱动器IC?