备战蓝桥杯---组合数学2

本专题主要介绍容斥原理。

大家高中的时候肯定接触过韦恩图,容斥原理比较通俗的理解就是减去所有可能并加上重叠的部分。

我们直接看公式:

知道后,我们先看道模板题:

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[6],n;
signed main(){a[0]=2;a[1]=5;a[2]=11;a[3]=13;while(cin>>n){int sum=0;for(int i=0;i<=(1<<4)-1;i++){int cnt=0;int ww=1;for(int j=0;j<4;j++){if((i>>j)&1==1){ww*=a[j];cnt++;}}if(cnt%2==0) sum+=n/ww;else sum-=n/ww;}printf("%lld\n",sum);}
}

接下来看一道有趣的题:

下面是分析:

首先,题目应该改为被1只及以上。同时10^4,显然不能容斥原理,但我们可以借鉴它先减后弥补的思想。

下面是解法(十分的巧妙):

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,x;
map<int,int> mp;
int gcd(int a,int b){while(b){int tmp=b;b=a%b;a=tmp;}return a;
}
signed main(){scanf("%lld%lld",&n,&m);for(int i=1;i*i<=m;i++){if(m%i==0){mp[i]=0;mp[m/i]=0;}}mp.erase(m);for(int i=1;i<=n;i++){scanf("%lld",&x);int yy=gcd(x,m);for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){if((it->first)%yy==0) mp[it->first]=1;}}int sum=0;for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){if(it->second==0) continue;int num=m/(it->first);sum+=((it->first)*(num))*(num-1)/2*(it->second);for(map<int,int>::iterator it1=it;it1!=mp.end();it1++){if(it1==it) it1++;if(it1==mp.end()) break;if((it1->first)%(it->first)==0) mp[it1->first]-=it->second;}}cout<<sum;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466563.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

controlnet的模型下载

controlnet模型有sd15和基于sd15上的fp16版本 fp16版本的模型比较小&#xff0c;但功能效果跟sd15是一样的 controlnet的fp16模型下载地址 https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main controlnet的openpose里&#xff0c;有个dw_open…

使用 FFmpeg 将视频转换为 GIF 动画的技巧

使用 FFmpeg 将视频转换为 GIF 动画 FFmpeg 可以将视频转换为 GIF 动画&#xff0c;方法如下&#xff1a; 1. 准备工作 确保您已经安装了 FFmpeg。 熟悉 FFmpeg 的命令行使用。 了解 GIF 动画的基本知识。 2. 基本命令 ffmpeg -i input.mp4 output.gif 3. 参数说明 -i in…

Git、github与gitee码云

1.git核心是两个仓库&#xff1a;本地仓库和远程仓库 主要用于团队合作和代码版本控制&#xff08;个人现有版本代码出错可回溯上个提交版本的代码&#xff09; 远程仓库国际主流githut&#xff0c;但外网速度问题&#xff0c;国内可使用码云gitee github&#xff1a;https:…

【原创 附源码】Flutter安卓及iOS海外登录--Apple登录最详细流程

最近接触了几个海外登录的平台&#xff0c;踩了很多坑&#xff0c;也总结了很多东西&#xff0c;决定记录下来给路过的兄弟坐个参考&#xff0c;也留着以后留着回顾。更新时间为2024年2月12日&#xff0c;后续集成方式可能会有变动&#xff0c;所以目前的集成流程仅供参考&…

【动态规划】【数学】【C++算法】1449. 数位成本和为目标值的最大数字

作者推荐 【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目 本文涉及知识点 动态规划汇总 LeetCode1449. 数位成本和为目标值的最大数字 给你一个整数数组 cost 和一个整数 target 。请你返回满足如下规则可以得到的 最大 整数&#xff1a; 给当前结果添加…

获IROS最佳移动操作论文提名|通研院提出首个实现连续操作任务的空中具身智能机器人CORVUS(渡鸦)

论文导读 本文介绍了通研院机器人实验室发表于2023年国际机器人顶级会议IROS上的论文&#xff0c;题为《Sequential Manipulation Planning for Over-actuated Unmanned Aerial Manipulators》[1]。文章介绍了一种可以实现空中全向平稳飞行的过驱动空间机械臂平台Coordinated …

2024牛客寒假算法基础集训营2-c Tokitsukaze and Min-Max XOR

来源 题目 Tokitsukaze 有一个长度为 n 的序列 a1,a2,…,an和一个整数 k。 她想知道有多少种序列 b1,b2,…,bm满足&#xff1a; 其中 ⊕\oplus⊕ 为按位异或&#xff0c;具体参见 百度百科&#xff1a;异或 答案可能很大&#xff0c;请输出  mod1e97 后的结果。 输入描述…

卡尔曼滤波详解(1)

目录 1. 核心思想 2. 五个公式的解读 2.1 预测部分 2.2 更新部分 3. 公式的实际应用 4. 调参方法 1. 核心思想 首先&#xff0c;卡尔曼滤波器可以用来估计系统的状态&#xff0c;这个状态是时间序列上的&#xff0c;利用上一时刻的状态可以预测当前时刻的状态&#xff0c…

Solidworks:平面工程图练习

把草图变成工程图&#xff0c;遇到第一个问题是线宽需要用鼠标选中后再设置线宽和颜色。我觉得应该有一个自动设置现款的功能&#xff0c;不知道有没有&#xff0c;我找了半天也没找到。 另一个问题是&#xff0c;作业代号字体上下颠倒了&#xff0c;不知道这是啥意思。 第三个…

ns3.38安装过程

一、Ubuntu22.04安装 ​ 1.下载镜像文件 [ubuntu22.04.1-desktop-amd64.iso] 下载地址 2.安装虚拟机 参考过程&#xff1a;http://t.csdnimg.cn/wkZ7O 二、ns3安装 安装过程参考该贴&#xff1a;http://t.csdnimg.cn/Mdhdk 1.安装依赖库 必装的库 sudo apt install g…

《Git 简易速速上手小册》第5章:高级 Git 技巧(2024 最新版)

文章目录 5.1 交互式暂存5.1.1 基础知识讲解5.1.2 重点案例&#xff1a;为 Python 项目分阶段提交5.1.3 拓展案例 1&#xff1a;细粒度控制更改5.1.4 拓展案例 2&#xff1a;处理遗漏的更改 5.2 使用 Rebase 优化提交历史5.2.1 基础知识讲解5.2.2 重点案例&#xff1a;整理 Pyt…

161基于matlab的快速谱峭度方法

基于matlab的快速谱峭度方法&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;对滤波好信号进行包络谱分析。输出快速谱峭度及包络谱结果。程序已调通&#xff0c;可直接运行。 161 信号处理 快速谱峭度 包络谱分析 (xiaohongshu.com)