Codeforces Round 969 (Div. 2) (A~D)

news2024/9/20 23:31:53

文章目录

  • A. Dora's Set
    • 思路
    • code
  • B. Index and Maximum Value
    • 思路
    • code
  • C. Dora and C++
    • 思路
    • code
  • D. Iris and Game on the Tree
    • 思路
    • code

Codeforces Round 969 (Div. 2)

A. Dora’s Set

思路

签到题,把玩一下样例不难发现:

对于 [ l , r ] [l,r] [l,r] 上面索取的3个数,它必须满足其中2个数是奇数,另一个数为偶数

但这有一个问题,奇数可能是3的倍数,5的倍数等等
那么有一个很好的解决方案,只要这三个数是连续的那么他们的gcd肯定都互为1

由于数据不大,直接遍历即可

code

void solve(){
	int l,r;
	cin >> l >> r;
	int ans=0;
	while(l<=r){
		if(l%2==0) l++;
		if(l+2<=r){
			ans++;
			l+=3;
		}
		else break;
	}
	cout << ans << endl;
	return ;
}

B. Index and Maximum Value

思路

一道诈骗题它给定的区间 [ l , r ] [l,r] [l,r] 不是下标的区间,而是数字的区间
如果当前数字在这个范围内,就让它加一或者减一

根据贪心策略我们只需要找出最大的数,判断最大的数是否在这个区间内

  • 满足,则让它加一或者减一
  • 不满足,由于其他数不会影响最大值的贡献,那么它的最大值不变

code

void solve(){
	int n,m;
	cin >> n >> m;
	int maxn=0;
	for(int i=1;i<=n;++i){
		cin >> a[i];
		maxn=max(a[i],maxn);
	} 
	while(m--){
		char c;
		int l,r;
		cin >> c >> l >> r;
		if(maxn>=l && maxn<=r){
			if(c=='+') maxn++;
			else maxn--;
		}
		cout << maxn << " ";
	}
	cout << endl;
	return ;
}

C. Dora and C++

思路

对于每一个数 a i a_i ai ,显然它最后的结果为 a i + a x + b y a_i+ax+by ai+ax+by
对于 a x + b y ax+by ax+by 有没有感觉很熟悉? 这是裴蜀定理的应用,下面简单说一下裴蜀定理
图片来自本人博客:exgcd的模板以及应用

在这里插入图片描述

那么我们就可以 a i + a x + b y a_i+ax+by ai+ax+by转化成 a i + k ∗ g c d ( a , b ) a_i+k*gcd(a,b) ai+kgcd(ab)
显然,数组中每两个数的差值都不会超过 g c d ( a , b ) gcd(a,b) gcd(a,b) ,因此我们可以将数组中的数简化成 a i % = g c d ( a , b ) a_i\%=gcd(a,b) ai%=gcd(a,b)

如果不考虑贪心策略,那么它就为当前数组中的最大值-最小值
考虑贪心策略,很显然我们可以将每个数都加上 g c d ( a , b ) gcd(a,b) gcd(a,b)
因此我们只需要考虑相邻两个数之间的差值上一个数加上 g c d ( a , b ) gcd(a,b) gcd(a,b) 减去后面一个数即可

code

void solve(){
	int n,x,y;
	cin >> n >> x >> y;
	int g=__gcd(x,y);
	for(int i=1;i<=n;++i){
		cin >> a[i];
		a[i]%=g;
	}
	sort(a+1,a+1+n);
	int ans=a[n]-a[1];
	for(int i=1;i<n;++i){
		ans=min(ans,a[i]+g-a[i+1]);//由于下标i前面的数都能加上gcd(a,b),因此计算时可以不用考虑
	}
	cout << ans << endl;
	return ;
}

D. Iris and Game on the Tree

思路

把玩一下样例可以发现一个规律:

  • 如果首尾的数字相同,那么它的价值相同
  • 如果首尾数字不相同,那么它的价值差为1

就拿两个样例来说明:
010100010000001
通过手算不难得出,01串为4个,10串为3个
实际上它等价于01010101,中间的0对价值没有任何贡献
显然他的价值为1

01010000001000
通过手算得出,01串为3,10串为3
那么它的价值为0

显然,我们只需要考虑根节点和叶节点即可
假设 叶节点?的个数为c
根节点可能为?,那么我们需要分情况考虑:

  • 如果根节点不为?,ans = 与根节点不同的数 + c/2向上取整,即 ( c + 1 ) / 2 (c+1)/2 c+1/2
  • 如果根节点为?,由于他们两个绝对聪明,我们需要考虑互换先手的问题

首先是Iris先手, 如果我们不考虑互换先手,那么Iris肯定选max(1的个数,0的个数) + c/2(向下取整,Iris需要先选根节点)

考虑互换先手,那么lris可以选不为根节点也不为叶节点的其它节点,如果其他节点为奇数,那么就可以互换先手,反之不能互换先手(Dora也可以选其他节点,将先手换回去)
如果Dora先手,它必然考虑 min(1的个数,0的个数) ,所以它的价值为min(1的个数,0个数)+(c+1)/2(向上取整,Iris后手)

code

void solve(){
	int n;cin >> n;
	for(int i=1;i<=n;++i) d[i]=0;
	for(int i=1;i<n;++i){
		int x,y;
		cin >> x >> y;
		d[x]++,d[y]++;
	}
	string s;cin >> s;
	s= ' ' + s;
	int a=0,b=0,c=0,cnt=0;
	for(int i=2;i<=n;++i){
		if(d[i]==1){
			if(s[i]=='0') a++;
			else if(s[i]=='1') b++;
			else c++;
		}
		else{
			if(s[i]=='?') cnt++;
		}
	}
	if(s[1]!='?'){
		if(s[1]=='1') cout << a+(c+1)/2 << endl;
		else cout << b+(c+1)/2 << endl;
	}
	else{
		int ans=max(a,b)+c/2;
		if(cnt & 1) cout << max(ans,min(a,b)+(c+1)/2) << endl;
		else cout << ans << endl;
	}
	return ;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MVC架构的JSP快速学习(一)

目录 服务相关配置 模型介绍 基础依赖 模型图(抽象) 项目结构 控制器编写 服务相关配置 1. Tomcat配置 http://t.csdnimg.cn/9rILV 2. Maven配置 http://t.csdnimg.cn/REKu9 3. Idea配置 tomcat maven 模型介绍 虽然JSP本身不强制使用MVC&#xff0c;但它通常与Serv…

【MySQL】敏感数据加密后如何模糊查询?

往期文章&#xff1a; 【MySQL】索引 【MySQL】索引底层的数据结构 BTree 【MySQL】SQL语句执行流程 【MySQL】order by 的排序策略 【MySQL】explain 执行计划各字段解析 一、前言 在日常开发中&#xff0c;我们通常需要对敏感数据进行加密存储&#xff0c;如&#xff1a…

封装一个 Vue 3 流程线可视化组件

这个组件展示了一系列带有节点和箭头连接的流程线&#xff0c;并具备不同风险等级的样式和动画效果&#xff0c;非常适合大屏展示项目。 功能概述 这个流程线组件具备以下功能&#xff1a; 动态渲染&#xff1a;根据传入的数据&#xff0c;组件可以自动生成节点和箭头。风险…

后端面试经典问题汇总

后端面试经典问题汇总 后端开发在现代互联网应用中扮演着关键角色&#xff0c;涉及的数据处理、业务逻辑和系统性能等方面在面试中常常会被深入考察。本文将总结一些后端面试中常见的经典问题&#xff0c;并给出简单的解答思路。 1. HTTP 协议 问题&#xff1a;请解释 HTTP …

Linux:五种IO模型

1&#xff1a;五种IO模型 1&#xff1a;阻塞IO 阻塞IO: 在内核将数据准备好之前,系统调用会一直等待.所有的套接字,默认 都是阻塞方式。 2&#xff1a;非阻塞 IO 非阻塞 IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK 错误码。 非阻塞 IO 往往需…

Centos7.9部署Gitlab-ce-16.9

一、环境信息 软件/系统名称版本下载地址备注Centos77.9.2009https://mirrors.nju.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.isogitlab-cegitlab-ce-16.9.1https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.9.1-ce.0.el7.x86_64.rpm…

4款免费录屏工具,哪款更实用?

作为一个经常需要录制教程和游戏视频的UP主&#xff0c;我尝试过市面上不少录屏工具。今天&#xff0c;我就来分享一下我使用过的四款软件录制全屏时的体验感受&#xff0c;看看哪款软件的表现更胜一筹。 一、福昕录屏大师 网址&#xff1a;https://www.foxitsoftware.cn/REC/…

配置 MinGW 以及使用 g++ 编译 C++ 程序

如何在 Windows 上安装和配置 MinGW 以及使用 g 编译 C 程序 (C语言&#xff08;gcc&#xff09;类似 ) 在Windows环境下&#xff0c;使用C进行编程需要一个编译器&#xff0c;而MinGW (Minimalist GNU for Windows) 是一个常用的C/C编译器工具集。对于编程新手来说&#xff0c…

SAP与赛美特MES系统集成案例

一、项目环境 上海某通信有限公司主要产品应用于图像传感器、 图像信号处理芯片、 低功耗芯片、 射频芯片。 为实现生产流程的自动化调度&#xff0c;减少人为干预的错误&#xff0c;保证流程的一致性和合规性&#xff0c;同时也简化操作流程&#xff0c;降低培训成本。&am…

护眼台灯对眼睛好吗?眼科医生推荐的台灯告诉你答案

作为一名家长&#xff0c;我深刻体会到保护孩子眼部健康的重要性。随着科技的迅猛发展&#xff0c;孩子们越来越多地接触并依赖电子设备&#xff0c;如平板电脑、手机和电视&#xff0c;长时间盯着屏幕已成为他们日常生活的一部分。然而&#xff0c;这些屏幕发出的蓝光及闪烁的…

等保测评前的准备工作:企业必知的五大步骤

信息安全等级保护&#xff08;等保&#xff09;测评是企业信息安全合规的重要环节&#xff0c;对于确保企业信息系统的安全性、稳定性和合规性具有重大意义。为了顺利通过等保测评&#xff0c;企业需要提前做好充分的准备。本文将从实战角度出发&#xff0c;详细介绍等保测评前…

2024年10款好用的图纸加密软件推荐|有效的图纸加密方法分享

在数字化时代&#xff0c;保护CAD图纸等设计文件的安全性是企业不可忽视的重要任务。随着技术的不断进步&#xff0c;各类图纸加密软件应运而生&#xff0c;为企业提供了强大的数据保护能力。本文将为您推荐2024年十款好用的图纸加密软件&#xff0c;并分享一些有效的图纸加密方…

GD32F4开发 -- FATFS文件系统

一、FATFS源码下载 FatFs - Generic FAT Filesystem Module (elm-chan.org) 二、移植 打开ffconf.h文件&#xff0c;找到对应宏并按照需求修改 FF_CODE_PAGE: #define FF_CODE_PAGE 936 //改为936以支持简体中文 /* This option specifies the OEM code page to be used on…

Find My资讯|国外外设品牌发布新型素皮护照套,支持苹果Find My功能

外设品牌 Satechi 发布一款采用苹果Find My技术的新型素皮护照套&#xff0c;售价为 59.99 美元。这款新型护照套除了可以存放护照外&#xff0c;还可存放银行卡、信用卡、身份证、登机牌等物品&#xff0c;其最大特性是采用了与苹果 AirTags 相同的技术&#xff0c;内置了可充…

YOLOv9改进策略【Neck】| 有效且轻量的动态上采样算子:DySample

一、本文介绍 本文记录的是利用DySample上采样对YOLOv9的颈部网络进行改进的方法研究。YOLOv9采用传统的最近邻插值的方法进行上采样可能无法有效地捕捉特征的细节和语义信息&#xff0c;从而影响模型在密集预测任务中的性能。DySample通过动态采样的方式进行上采样&#xff0…

Brave编译指南2024 Windows篇:安装depot_tools(三)

1.引言 在编译Brave浏览器的过程中&#xff0c;depot_tools是不可或缺的一部分。这是一组由Chromium项目提供的脚本和工具&#xff0c;用于获取、管理和更新Chromium及其衍生项目的源码。通过depot_tools&#xff0c;开发者可以方便地同步最新的源码版本&#xff0c;并进行项目…

NVD系列语音芯片在报警器中通常应用在哪些场景中

语音芯片在各类场景中应用的最大作用就是进行语音提示和警报提示。本文将对NVD系列语音芯片应用在报警器中的场景。 1.提升电动车的安全性 当电动车遭受震动或异常移动时&#xff0c;报警器会感应到并触发报警装置&#xff0c;通常是通过发出高分贝的声音警报来吸引人们的注意…

基于HTML+JS+CSS+Echarts实现的设备环境监测可视化平台前端整套模板

效果图 基于HTMLJSCSSEcharts实现的设备环境监测可视化平台前端整套模板。可用过修改源码快速完成需求。 源码结构 下载地址

Shell实用功能及文件权限

1、使用命令“cat /etc/named.conf”设置为别名named&#xff0c;然后再取消别名。 设置别名&#xff1a;alias namedcat /etc/named.conf 取消别名&#xff1a;unalias named 2、使用echo命令和输出重定向创建文本文件/root/nn&#xff0c;内容是hello&#xff0c;然后再使用…

C++笔记---list

1. list的介绍 list其实就是就是我们所熟知的链表&#xff08;双向循环带头结点&#xff09;&#xff0c;但其是作为STL中的一个类模板而存在。 也就是说&#xff0c;list是可以用来存储任意类型数据的顺序表&#xff0c;既可以是内置类型&#xff0c;也可以是自定义类型&…