题目链接:http://www.ifrog.cc/acm/problem/1138

题解:这题就是简单的容斥,但是和标准的不太一样,这个是只加上出现奇数的。其实也是挺简单的。

容斥原式:     

只求奇数那么就要球容斥的系数如果n=2,显然为a+b-2*a*b,n=3,a+b+c-2*a*b-2*a*c-2*b*c+4*a*b*c,n=4.....不妨设f(x)表示由x个数组合出来的数系数为多少,那么当x为奇数时f(x)=1-(f(1)*n-f(2)*n+f(3)*n-........-f(x-1)*n),当x为偶数的时候f(x)=-(f(1)*n-f(2)*n+f(3)*n-f(4)*n+.....+f(x-1)*n)这个规律是总结出来的具体画一下图。然后可以得到系数为2^(k - 1),

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;
ll gcd(ll a , ll b) {return (b > 0) ? gcd(b , a % b) : a;
}
int arr[20];
int main() {int t;scanf("%d" , &t);while(t--) {int n , m;ll ans = 0;scanf("%d%d" , &n , &m);for(int i = 0 ; i < m ; i++) scanf("%d" , &arr[i]);for(int i = 1 ; i < (1 << m) ; i++) {ll num = 0;ll lcm = 1;for(int j = 0 ; j < m ; j++) {if(i & (1 << j)) {num++;lcm = lcm/gcd(lcm , (ll)arr[j]) * (ll)arr[j];if(lcm > n) break;}}if(num % 2) ans += n / lcm * (1 << (num - 1));else ans -= n / lcm * (1 << (num - 1));}printf("%lld\n" , ans);}return 0;
}

转载于:https://www.cnblogs.com/TnT2333333/p/7116121.html

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

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

    传送门 题意 略 分析 是一道稍微变形的容斥题目,容斥一般的公式 \[ans=\sum_iAi-\sum_{i<j}{Ai∩Aj}+\sum_{i<j<k}{Ai∩Aj∩Ak}+.. ...

  2. 一看吓一跳:13亿中国人都会用错的成语

    一看吓一跳:13亿中国人都会用错的成语 中国成语,历史悠久,在漫长的演化过程中,人们难免望文生义,生吞活剥,结果,弄得这些词汇大大背离了原始意义,甚至驴唇不对马嘴,乃至出现成群结队的 "拦路 ...

  3. 99%的中国人都会犯的英语错误

    一句很常见的英语:Nice to meet you! 该怎么回答呢? 99%的中国人会说:Me too! 其实是错误的!(我也曾经长期犯这个错误) 正确答案:You too! 原因:对方说:" ...

  4. 科学计算机算错,Windows 10 计算器真的连简单算术都会算错吗?

    今天不少媒体都在盛传Windows 10内置的计算器很简单的算术都能算错,如果粗略看眼内容可能还会被迷惑,不过仔细看看就知道那是多么智障了. 事情起因这样的: Windows 10内置的计算器拥有多种 ...

  5. 99%的人都会用错或者不会看的N折验证

    做实际比赛和机器学习项目, 很多朋友都会经常遇到线下线上不一致的情况,排除一些特殊的情况,例如问题没法预测,不存在潜在pattern的情况等,我敢说99%的人都不会看N折验证的结果. 没错,是真的! ...

  6. java一个类多次加载_据说99.99%的人都会答错的类加载问题

    概述 首先还是把问题抛给大家,这个问题也是我厂同学在做一个性能分析产品的时候碰到的一个问题. 同一个类加载器对象是否可以加载同一个类文件多次并且得到多个Class对象而都可以被java层使用吗? 请仔 ...

  7. 据说有99%的人都会做错的面试题

    这道题主要考察了面试者对浮点数存储格式的理解.另外,请不要讨论该题本身是否有意义之类的话题.本题只为了测试面试者相关的知识是否掌握,题目本身并没有实际的意义. 下面有6个浮点类型变量,其中前三个是fl ...

  8. Android计算器输入错误纠正,减法都算错?安卓惊爆计算器低级错误Bug

    [IT168 资讯]最近小编我在网上闲逛的时候发现有很多用户都在反映一个非常惊悚的问题:使用Android手机内置的计算器时有些最简单的减法都会算错,例如14.52-14.49,再例如8.03-7.9 ...

  9. C. Serval and Toxel‘s Arrays(容斥+按值算贡献

    Problem - C - Codeforces 题意:一个 n 长的值成对不同数组,有 m 次变化,每次执行一次 p 位置,改为 v 值[保证每次改完的数组内的值成对不同],计算所有 m + 1 的 ...

最新文章

  1. 二次规划的一个很好的课件网站
  2. Unicode与UTF-8的区别
  3. 职场好人缘的26个细节
  4. Apache Flink 进阶(三):Checkpoint 原理剖析与应用实践
  5. c++用一级运算比较大小_python学习五-python运算符
  6. 由VB的KeyCode和KeyAscii到扫描码、虚拟码的思考
  7. latex 插入bibtex 的文献。在参考文献上方多了一行序号,解决办法参考
  8. 弹丸论破2 中文攻略
  9. CSP 201712-3 Crontab(100)
  10. ThrottleStop CPU频率调节
  11. 条件随机场(Conditional random field,CRF)
  12. DevOps名言警句 - 2021
  13. java输出GPA_请完成下列Java程序:实现换算GPA,对于学生学习的每一门课程,都输入两个..._考试资料网...
  14. python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
  15. matlab怎么调用桌面文件,Matlab界面Desktop操作桌面简介
  16. js清空input类型为type的文件框的内容
  17. asp.net(入门理解)
  18. 组合数学--不相邻的组合数
  19. 深度学习中,人们常说的鲁棒性和泛化性是什么意思?通俗的给你解释清楚,一看你就明白了。
  20. java如何处理tcp异常断开_针对TCP连接异常断开的分析

热门文章

  1. 常见运维面试题及答案【个人收集】
  2. 如何避免陷入流量旋涡
  3. SAP相对其他erp软件的优势
  4. Python 机器学习实战 —— 监督学习(上)
  5. 软件体系结构--《Software.architecture.perspectives.on.an.emerging.discipline》
  6. 计算任意多边形的面积
  7. 断网的html页面,断网情况下,前端页面处理
  8. 手机(wap)网页底部固定悬浮广告带轮播特效代码
  9. OG0VA1B 全局曝光、高速感光芯片
  10. 计算机组成原理试题和答案2017,20177自考计算机组成原理试题及答案.doc