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

news/2025/2/16 1:08:47/

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

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

我们直接看公式:

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

下面是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.ppmy.cn/news/1350697.html

相关文章

矩阵在计算机图像处理中的应用

矩阵在计算机图像处理中是非常核心的概念&#xff0c;因为它们为表示和操作图像数据提供了一种非常方便和强大的方式。以下是矩阵在计算机图像处理中的一些关键作用&#xff1a; 图像表示&#xff1a;在计算机中&#xff0c;图像通常被表示为像素矩阵&#xff0c;也就是二维数组…

VTK 三维场景的基本要素(相机) vtkCamera

观众的眼睛好比三维渲染场景中的相机&#xff0c;在VTK中用vtkCamera类来表示。vtkCamera负责把三维场景投影到二维平面&#xff0c;如屏幕&#xff0c;相机投影示意图如下图所示。 1.与相机投影相关的要素主要有如下几个&#xff1a; 1&#xff09;相机位置: 相机所处的位置…

强大的头像制作神器微信小程序源码/支持外卖CPS等优惠劵小程序源码

强大的头像制作神器微信小程序源码&#xff0c;支持外卖CPS等优惠劵小程序源码&#xff1b;这是一款目前见到比较丰富的头像制作小程序&#xff0c;拥有丰富的模板&#xff0c;多种分类基本大全。 支持直接获取微信头像&#xff0c;或者直接上传图片&#xff1b;另外上传的话还…

centos间文件传输

scp /home/vagrant/minio zx192.168.56.34:/home/zx /home/vagrant/minio 是你要传输的文件而且是当前机器登录用户有权限操作的文件 zx是目标机器的用户192.168.56.34是目标机器的地址 /home/zx是要传到这个文件夹下 要确保zx有/home/zx这个文件夹的操作权限 本质就是ssh文…

three.js 细一万倍教程 从入门到精通(三)

目录 五、详解PBR材质纹理 5.1、详解PBR物理渲染 5.2、标准网格材质与光照物理效果 5.3、置换贴图与顶点细分设置 5.4、设置粗糙度与粗糙度贴图 5.5、设置金属度与金属贴图 5.6、法线贴图应用 5.7、如何获取各种类型纹理贴图 5.8、纹理加载进度情况 单张图片加载 多…

Impala-架构与设计

架构与设计 一、背景和起源二、框架概述1.设计特点2.框架优点3.框架限制 三、架构图1.Impala Daemon2.Statestore3.Catalog 四、Impala查询流程1.发起查询2.生成执行计划3.分配任务4.交换中间数据5.汇集结果6.返回结果 总结参考链接 一、背景和起源 现有的大数据查询分析工具H…

使用阿里云通义千问14B(Qianwen-14B)模型自建问答系统

使用阿里云通义千问14B&#xff08;Qianwen-14B&#xff09;模型自建问答系统时&#xff0c;调度服务器资源的详情将取决于以下关键因素&#xff1a; 模型部署&#xff1a; GPU资源&#xff1a;由于Qianwen-14B是一个大规模语言模型&#xff0c;推理时需要高性能的GPU支持。模型…

C++ 位运算

任何信息在计算机中都是采用二进制表示的&#xff0c;数据在计算机中是以补码形式存储的&#xff0c;位运算就是直接对整数在内存中的二进制位进行运算。由于位运算直接对内存数据进行操作&#xff0c;不需要转换成十进制&#xff0c;因此处理速度非常快。 一、位运算符 C 提…