当前位置: 首页 > news >正文

数论复习c++

改造序列

题目描述

给定长度为 n n n的序列 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an,你可以从中删除一些数,使得删完以后的序列中,所有相邻元素之和均为偶数。请问最少需要删除多少个数?

输入格式

第一行一个整数 T T T,表示测试数据组数 T T T

接下来 T T T组数据,每组数据第一行一个整数 n n n,第二行 n n n个整数,空格分开

输出格式

T T T行,每行一个整数,表示相应数据的答案

样例 #1

样例输入 #1

2
5
2 4 3 6 8
6
3 5 9 7 1 3

样例输出 #1

1
0

提示

∑ n \sum n n为一个数据点中所有 n n n之和

对于 100 % 100\% 100%的数据, 1 ⩽ T ⩽ 100 1\leqslant T\leqslant 100 1T100 3 ⩽ n ⩽ 1 0 5 3\leqslant n\leqslant 10^5 3n105 1 ⩽ a i ⩽ 1 0 9 1\leqslant a_i\leqslant 10^9 1ai109 1 ⩽ ∑ n ⩽ 1 0 5 1\leqslant \sum n\leqslant 10^5 1n105

这道题很简单,只需要判断奇数和偶数的的个数,输出最小的那个数就行了,核心代码如下:

while(t--)
{int n,ansa=0,ansb=0;	//一定要附初值,不然后面的值不对for(int i=1;i<=n;i++){cin>>a[i];if(a[i]%2==0)	//判断奇数偶数的个数{ansa++;}else{ansb++;}/*这里也个可以怎么写:int x;cin>>x;if(x%2==0){ansa++;}else{ansb++;}*/}printf("%d\n",min(ansa,ansb));
}

非倍数求和

题目描述

给定 n , a , b n,a,b n,a,b,求 1 1 1 n n n之间所有既不是 a a a的倍数也不是 b b b的倍数的数之和。

输入格式

一行,三个整数 n , a , b n,a,b n,a,b

输出格式

一行,一个整数,表示答案

样例 #1

样例输入 #1

10 3 5

样例输出 #1

22

提示

对于 30 % 30\% 30%的数据,$1\leqslant n,a,b\leqslant 10^3 $

对于 60 % 60\% 60%的数据, 1 ⩽ n , a , b ⩽ 1 0 6 1\leqslant n,a,b\leqslant 10^6 1n,a,b106

对于 100 % 100\% 100%的数据, 1 ⩽ n , a , b ⩽ 1 0 9 1\leqslant n,a,b\leqslant 10^9 1n,a,b109

这道题是一道典型的数论题,代码如下:

#include <bits/stdc++.h>
using namespace std;
long long gcd(int a,int b)
{if(b==0){return a;}return gcd(b,a%b);
}
long long lcm(int a,int b)
{return (long long)a*b/gcd(a,b);/*这道题也可以怎么写:return (long long)a*b/__gcd(a,b);这是直接调用库里的gcd手写的gcd表示:那我走*/
}
int main()
{long long n,a,b,ans=0,tota,totb,tott,t;scanf("%lld%lld%lld",&n,&a,&b);ans=(long long)(1+n)*n/2;	//高斯求和tota=(long long)(a+n/a*a)*(n/a)/2;totb=(long long)(b+n/b*b)*(n/b)/2;t=lcm(a,b);tott=(t+n/t*t)*(n/t)/2;printf("%lld",ans-tota-totb+tott);	//全部-a的倍数-b的倍数+a和b的倍数(这里因为a和b的倍数剪了两遍,所以要把那一遍加回来)return 0;
}

三数不同

题目描述

给定长度为 n n n的序列 a i a_i ai,请计算所有满足以下条件的三元组 ( i , j , k ) (i,j,k) (i,j,k)的个数

  • i < j < k i<j<k i<j<k
  • a i a_i ai a j a_j aj a k a_k ak互不相同

输入格式

第一行,一个整数 n n n

第二行 n n n个整数 a i a_i ai

输出格式

一个整数,表示答案

样例 #1

样例输入 #1

4
3 1 4 1

样例输出 #1

2

提示

对于 30 % 30\% 30%的数据, n ⩽ 2 × 100 n\leqslant 2\times 100 n2×100,$a_i\leqslant 2\times 100 $

对于 60 % 60\% 60%的数据, n ⩽ 2 × 1 0 3 n\leqslant 2\times 10^3 n2×103 a i ⩽ 2 × 1 0 3 a_i\leqslant 2\times 10^3 ai2×103

对于 100 % 100\% 100%的数据, 3 ⩽ n ⩽ 2 × 1 0 5 3\leqslant n\leqslant 2\times 10^5 3n2×105 1 ⩽ a i ⩽ 2 × 1 0 5 1\leqslant a_i\leqslant 2\times 10^5 1ai2×105

这道题是要找出有多少对 三元组 ,这道题的代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N=2e6;
int h[N+10];
long long c(int n,int m)	//查找函数
{if(m==2){return (long long)n*(n-1)/2;}else if(m==3){return (long long)n*(n-1)*(n-2)/6;}
}
int main()
{int n,ans=0;scanf("%d",&n);for(int i=1;i<=n;i++){int x;scanf("%d",&x);h[x]++;}long long tot=c(n,3);	//找zzz的情况for(int i=1;i<=N;i++){if(h[i]>=2){tot-=c(h[i],2)*(n-h[i]);	//找zzy的情况,前两个找到了,最后一个随便找一个就行了}if(h[i]>=3){tot-=c(h[i],3);	//找zzz的情况}}printf("%lld",tot);return 0;
}

相关文章:

数论复习c++

改造序列 题目描述 给定长度为 n n n的序列 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1​,a2​,...,an​&#xff0c;你可以从中删除一些数&#xff0c;使得删完以后的序列中&#xff0c;所有相邻元素之和均为偶数。请问最少需要删除多少个数&#xff1f; 输入格式 第一行…...

Java try-with-resources 显性 与 隐性 关闭 资源

try-with-resources 是 Java 7 引入的一个语言特性&#xff0c;用于简化资源管理的代码&#xff0c;特别是在处理需要关闭的资源&#xff08;如文件、网络连接、数据库连接等&#xff09;时。try-with-resources 允许您在 try 语句中声明需要关闭的资源&#xff0c;这些资源会在…...

Vue在页面输出JSON对象,测试接口可复制使用

效果图&#xff1a; 数据处理前&#xff1a; 数据处理后&#xff1a; 代码实现&#xff1a; HTML: <el-table height"600" :data"tableData" border style"width: 100%" tooltip-effect"dark" size"mini"><el-…...

【STM32】FreeRTOS开启后,不再进入主函数的while(1)

开启freertos后&#xff0c;想在主函数的while(1)中实现led的翻转&#xff0c;发现无法实现。 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, …...

Python+Selenium+Unittest 之selenium11--WebDriver操作方法1-常用操作

目录 1、send_keys("输入的内容") &#xff08;输入文字&#xff09; 2、clear() (清除元素内的内容) 3、click()&#xff08;点击元素&#xff09; 4、quit()关闭浏览器 5、refresh()&#xff08;刷新浏览器页面&#xff09; 6、set_window_size()和用 maxim…...

气液固三相线识别—Langmuir部分复现

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material...

Redis——常见数据结构与单线程模型

Redis中的数据结构 Redis中所有的数据都是基于key&#xff0c;value实现的&#xff0c;这里的数据结构指的是value有不同的类型。 当前版本Redis支持10种数据类型&#xff0c;下面介绍常用的五种数据类型 底层编码 Redis在实现上述数据结构时&#xff0c;会在源码有特定的…...

大数据-玩转数据-Flink-Transform

一、Transform 转换算子可以把一个或多个DataStream转成一个新的DataStream.程序可以把多个复杂的转换组合成复杂的数据流拓扑. 二、基本转换算子 2.1、map&#xff08;映射&#xff09; 将数据流中的数据进行转换, 形成新的数据流&#xff0c;消费一个元素并产出一个元素…...

Java泛型集合简明教程

前言 我们编写一个数组并对数组进行排序&#xff0c;不管是对浮点型数组、整型数组、字符串数组或者是其他任何类型的数组进行排序&#xff0c;我们可以利用方法重载的方式&#xff0c;针对每种类型的数组分别编写一个排序方法&#xff0c;需要为几种类型的数组排序&#xff0…...

Prometheus-RabbitMQ Exporter

文章目录 一、介绍监控插件两个插件的区别一、 官方插件 rabbitmq_prometheus1 配置 RabbitMQ 集群名称2 授权使用插件2.1 配置文件方式2.2 命令行方式3 监听地址和端口4 RabbitMQ 插件获取指标的频率5 配置到 Prometheus6 关于聚合指标和每个对象指标6.1 获取聚合指标 `/metri…...

flink读取kafka数据存储iceberg

1、说明 使用flink实时的读取kafka的数据&#xff0c;并且实时的存储到iceberg中。好处是可以一边存数据&#xff0c;一边查询数据。当然使用clickhouse也可以实现数据的既存既取。而hive数据既存既读则会有问题。iceberg中数据读写数据都是从快照中开始的&#xff0c;读和写对…...

文章二:分支管理策略 - 分支玩转:Git分支管理实战

开始本篇文章之前先推荐一个好用的学习工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;学习事半功倍。欢迎访问&#xff1a;http://airight.fun 概述 在软件开发中&#xff0c;版本控制是一项至关重要的工作。Git作为目前最受欢迎的分布式版本控制系统&…...

JS dom元素和鼠标位置之间的一系列属性快速参考

clientHeight 获取对象的高度&#xff0c;不计算任何边距、边框、滚动条&#xff0c;但包括该对象的补白。 clientLeft 获取 offsetLeft 属性和客户区域的实际左边之间的距离。 clientTop 获取 offsetTop 属性和客户区域的实际顶端之间的距离。 clie…...

【剑指 Offer 39】数组中超过一半的数字

题目&#xff1a; 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例&#xff1a; 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 思考&#xff1a; 方法一&#xff1a;投…...

list.stream.filter,List<List>转换为List

1.filter过滤 返回符合查询条件的集合//过滤所有deviceType为1的List<DeviceWorkTimeEntity> list entities.stream().filter(a -> "1".equals(a.getDeviceType())).toList(); 2.List<List>转换为List 可以使用流(Stream)的flatMap操作 public cl…...

手机里视频太大怎么压缩?压缩教程分享

现在视频文件的体积越来越大了&#xff0c;动不动就是几个GB起步&#xff0c;如果后期再剪辑处理一下&#xff0c;更是会占据更多的设备空间了&#xff0c;还会导致我们传输受到限制&#xff0c;这时候就需要我们对视频进行压缩处理&#xff0c;下面给大家分享几个简单的方法&a…...

Spring-Cloud-Loadblancer详细分析_3

前两篇文章介绍了加载过程&#xff0c;本文从Feign的入口开始分析执行过程&#xff0c;还是从FeignBlockingLoadBalancerClient.execute来入手 public class FeignBlockingLoadBalancerClient implements Client {private static final Log LOG LogFactory.getLog(FeignBlock…...

使用 VScode 开发 ROS 的Python程序(简例)

一、任务介绍 本篇作为ROS学习的第二篇&#xff0c;是关于如何在Ubuntu18.04中使用VSCode编写一个Python程序&#xff0c;输出“Hello&#xff01;”的内容介绍。 首先我们来了解下ROS的文件系统&#xff0c;ROS文件系统级指的是在硬盘上ROS源代码的组织形式&#xff0c;其结构…...

2022年03月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;双精度浮点数的输入输出 输入一个双精度浮点数&#xff0c;保留8位小数&#xff0c;输出这个浮点数。 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 只有一行&#xff0c;一个双精度浮点数。 输出 一行&#xff0c;保留8位小数的浮点数。 样例输…...

HarmonyOS/OpenHarmony应用开发-ArkTSAPI系统能力SystemCapability列表

SysCap&#xff0c;全称SystemCapability&#xff0c;即系统能力&#xff0c;指操作系统中每一个相对独立的特性。 开发者使用某个接口进行开发前&#xff0c;建议先阅读系统能力使用说明&#xff0c;了解Syscap的定义和使用指导。 说明 当前列表枚举出3.1 Beta版本中支持的…...

为什么你的VSCode日志插件总失效?揭秘Node.js/Python/Java项目中87.6%的路径解析失败根源

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VSCode 日志插件的核心价值与典型失效场景 VSCode 日志插件&#xff08;如 Log File Highlighter、Log Viewer 或 Output Colorizer&#xff09;通过语法高亮、时间戳解析、关键词过滤与折叠等功能&…...

3步掌握猫抓:开源浏览器资源嗅探工具如何改变你的媒体下载体验?

3步掌握猫抓&#xff1a;开源浏览器资源嗅探工具如何改变你的媒体下载体验&#xff1f; 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经…...

Real-Anime-Z参数详解:高度宽度1024×1024最佳实践,超分后细节保留率实测报告

Real-Anime-Z参数详解&#xff1a;高度宽度10241024最佳实践&#xff0c;超分后细节保留率实测报告 1. 模型特性概述 Real-Anime-Z是一款基于Stable Diffusion架构的写实向动漫风格大模型&#xff0c;由Devilworld团队开发。这款模型最大的特点是实现了写实与动漫风格的完美平…...

修车师傅的‘清码’秘籍:用UDS 0x14服务清除AutoSar ECU故障码的完整流程与实战避坑

修车师傅的‘清码’秘籍&#xff1a;用UDS 0x14服务清除AutoSar ECU故障码的完整流程与实战避坑 在汽车电子诊断领域&#xff0c;故障码&#xff08;DTC&#xff09;的清除操作看似简单&#xff0c;实则暗藏玄机。许多维修技师和诊断工程师都曾遇到过这样的困惑&#xff1a;为什…...

攻克 fmtlib/fmt 项目 Windows 构建的 ABI 兼容性难题:完整解决方案

攻克 fmtlib/fmt 项目 Windows 构建的 ABI 兼容性难题&#xff1a;完整解决方案 【免费下载链接】fmt A modern formatting library 项目地址: https://gitcode.com/GitHub_Trending/fm/fmt fmtlib/fmt 作为一款现代格式化库&#xff0c;在 Windows 平台构建过程中常面临…...

别再傻傻串联了!手把手教你用Verilog写4bit超前进位加法器(附完整代码)

别再傻傻串联了&#xff01;手把手教你用Verilog写4bit超前进位加法器&#xff08;附完整代码&#xff09; 第一次接触数字电路设计时&#xff0c;很多工程师都会对加法器的实现方式感到困惑。为什么简单的加法运算会有这么多不同的实现方案&#xff1f;为什么教科书上总是强调…...

食品喷码检测实战:Java+YOLOv11准确率99.2%,延迟不到30ms

做工业视觉落地快6年了,食品包装喷码识别是我做过最多的项目之一。几乎所有食品厂都有这个需求,但90%的项目都做得不好:传统OCR对模糊、变形、倾斜的喷码识别准确率只有60%-70%,每天需要安排大量人工复检,漏检的产品流到市场就是巨额的召回损失。 去年我帮某知名乳制品厂…...

别再死记公式了!用Python手写一个反向传播,5分钟搞懂链式法则

用Python代码拆解反向传播&#xff1a;5分钟可视化链式法则 当我在第一次接触神经网络时&#xff0c;那些复杂的数学公式让我望而却步。直到有一天&#xff0c;我决定用Python代码亲手实现一个简单的反向传播过程&#xff0c;才真正理解了链式法则的精妙之处。本文将带你用不到…...

手把手教你用STM32CubeMX配置SAI接口驱动MEMS数字麦克风(PDM转PCM实战)

STM32CubeMX实战&#xff1a;SAI接口驱动MEMS麦克风的PDM转PCM全流程解析 在智能语音设备爆发的时代&#xff0c;MEMS数字麦克风因其小尺寸、高信噪比和抗干扰能力成为嵌入式音频采集的首选。但许多开发者首次接触PDM信号转换时&#xff0c;常被时钟同步、滤波器设计等问题困扰…...

不再停留在概念!金融垂直智能体,营销风控价值逐步兑现

今年以来&#xff0c;OpenClaw 小龙虾的横空出世&#xff0c;再度唤醒了社会大众对智能体助手的追捧&#xff0c;这一热门趋势也进一步延伸到金融行业。尽管像OpenClaw这样的智能体能够为金融机构提供更平价、易用的智能体落地痛到&#xff0c;但是碍于金融行业的强数据驱动、严…...