Bessie‘s Birthday Cake (Hard Version)

news2024/11/25 7:16:08

题目链接

CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!)

C2. Bessie’s Birthday Cake (Hard Version)


思路:

其实可以先做一下easy version。

先不选点,已有的点我们肯定能加多少边就加多少,而且手玩后发现一个规律,就是不管我们怎么加边,总的加边数量和产生的三角形个数是固定的,只和点的个数有关。点的个数-2=三角形个数。

我们把已有的点的外围边画出来,这就相当于一个多边形,多边形内部已经拆出了足够多的三角形,我们不需要管了,看外部剩下的边角料。
在这里插入图片描述
手玩几个发现一个规律,那就是剩下的这个 n + 2 n+2 n+2 边形,两个点我们已有,剩下的点每隔一个点选一个点,一下可以拆出两个三角形(大概如下图,绿色点已有,黄色点是选择的点),剩下的部分同理接着向下拆。不过最后收尾的时候,如果 n = 1 n=1 n=1,就不需要切了,剩下的直接就是一个三角形,如果 n = 2 n=2 n=2,还需要选一个点。
在这里插入图片描述
这样,一个 n + 2 n+2 n+2 边形选择 ⌊ n 2 ⌋ \left\lfloor\dfrac n2\right\rfloor 2n 个点,可以切成 n n n 个三角形。

这样,我们选一个点至少可以得到两个三角形,而且当 n n n 为奇数时,我们收尾的时候还可以白嫖一个三角形。因此我们优先贪心地去切边数较小奇数边多边形,这样得到三角形的个数就是最多的。反正切一刀固定得到两个三角形,在这个基础上尽可能多的白嫖即可。

code:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;

int T,n,x,y,a[maxn];
ll ans=0;

int main(){
	cin>>T;
	while(T--){
		cin>>n>>x>>y;
		ans=max(0,x-2);
		for(int i=1;i<=x;i++)cin>>a[i];
		sort(a+1,a+x+1);
		a[x+1]=a[1]+n;
		multiset<int> S1,S2;
		for(int i=2,t;i<=x+1;i++){
			t=a[i]-a[i-1]-1;
			if(t&1)S1.insert(t);
			else S2.insert(t);
		}
		
		for(auto t1:S1){
			if(y>=t1/2){
				y-=t1/2;
				ans+=t1;
			}
			else {
				ans+=2*y;
				y-=y;
				break;
			}
		}
		for(auto t2:S2){
			if(y>=t2/2){
				y-=t2/2;
				ans+=t2;
			}
			else {
				ans+=2*y;
				y-=y;
				break;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}

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

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

相关文章

Lua环境下载与配置

这里介绍如何下载已经编译好的Lua环境&#xff0c;如何配置Lua环境。 如希望自己从源码编译Lua环境&#xff0c;请自行搜索资料。 第一步&#xff1a;下载编译好的lua环境 打开下面链接&#xff0c;然后根据指引下载。 The Programming Language Luahttps://www.lua.org/hom…

基于卷积神经网络的苹果等级分类系统(pytorch框架)【python源码+UI界面+前端界面+功能源码详解】

功能演示&#xff1a; 苹果等级分类系统&#xff0c;基于vgg16&#xff0c;resnet50卷积神经网络&#xff08;pytorch框架&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的苹果等级分类系统是在pytorch框架下实现的&#xff0c;系统中有两…

神经网络与深度学习(二)

一、深度学习平台 张量&#xff08;Tensor&#xff09; 是一个物理量&#xff0c;对高维(维数 ≥ 2) 的物理量进行“量纲分析” 的一种工具。简单的可以理解为&#xff1a;一维数组称为矢量&#xff0c;二维数组为二阶张量&#xff0c;三维数组为三阶张量 计算图 用“结点”…

03-Linear Regression

什么是回归算法 回归算法是一种有监督算法回归算法是一种比较常用的机器学习算法&#xff0c;用来建立“解释”变量(自变量X)和观测值 (因变量Y)之间的关系; 从机器学习的角度来讲&#xff0c;用于构建一个**算法模型(函数)**来做属性 ( X ) (X) (X) 与标签 ( Y ) (Y) (Y) 之…

Docker in Docker原理与实战探索

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

在 Windows 中安装部署并启动连接 MongoDB 7.x(命令行方式启动、配置文件方式启动、将启动命令安装为系统服务实现开机自启)

MongoDB 的下载 下载地址&#xff1a;https://www.mongodb.com/try/download/community 这里需要对 MongoDB 的版本号说明一下&#xff1a; MongoDB 版本号的命名规则是 x.y.z&#xff0c;当其中的 y 是奇数时表示当前的版本为开发版&#xff0c;当其中的 y 是偶数时表示当前的…

OpenHarmony实战开发-使用一次开发多端部署实现一多设置典型页面

介绍 本示例展示了设置应用的典型页面&#xff0c;其在小窗口和大窗口有不同的显示效果&#xff0c;体现一次开发、多端部署的能力。 1.本示例使用一次开发多端部署中介绍的自适应布局能力和响应式布局能力进行多设备&#xff08;或多窗口尺寸&#xff09;适配&#xff0c;保…

IDEA一键备份MySQL数据库(mysqldump版)

问题 又到了搬MySQL数据库的时刻&#xff0c;这次我不想使用命令行备份&#xff0c;这次我想使用IDEA一键备份MySQL数据库。 解决 假设安装好mysqldump命令后&#xff0c;让IDEA使用mysqldump一键备份指定的数据库。具体IDEA配置如下&#xff1a; 这是IDEA上面的数据库到处…

语音芯片 SOP8、SOP16、SOP24脚在性能上有哪些不同呢?

随着语音识别技术的不断发展&#xff0c;人们对语音芯片的需求也越来越高。 其中&#xff0c;SOP8、SOP16和SOP24脚语音芯片是目前市面上应用比较广泛的芯片类型。这些芯片在性能上有什么区别&#xff1f;下面我们来具体分析一下。 首先&#xff0c;SOP8、SOP16、SOP24脚语音芯…

基于单片机20v数字电压表仿真系统设计

**单片机设计介绍&#xff0c;基于单片机20v数字电压表仿真系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机20V数字电压表仿真系统设计的主要目标是实现一个能够准确测量和显示20V直流电压的仿真系统。以下是该设计的主…

Oracle数据库常见 问题 或 报错 集合

【报错】字段长度不足 一般字段长度不够时报错&#xff1a; Cause: java.sql.SQLException: ORA-12899: value too large for colum “列名” 【报错】修改字段长度&#xff0c;提示资源正忙 以pl/sql为例&#xff1a; ctrl选中表&#xff0c;在列选项卡下修改字段长度&#x…

Mac反编译APK

文章目录 第一种方式: brew installapktool 使用说明dex2jar 使用说明 第二种方式: 下载安装包apktool 使用说明 (根据官方介绍没有操作成功,后续成功再更新这里)dex2jar 使用说明 安装 JD-GUI 查看jar包中的class文件JD-GUI 使用说明 第一种方式: brew install 安装过程可能很…

【测试篇】测试分类

文章目录 测试分类的框架按照测试对象划分(一) 可靠性测试(二) 容错性测试(三) 安装卸载测试(四) 内存泄露测试(五) 弱网测试(六) 文档测试 按是否查看代码(一) 黑盒测试(二) 白盒测试(三) 灰盒测试 按开发阶段划分(一) 单元测试(二) 集成测试(三) 系统测试(四) 回归测试(五) 冒…

IoT数采平台1:开篇

IoT数采平台1&#xff1a;开篇IoT数采平台2&#xff1a;文档IoT数采平台3&#xff1a;功能IoT数采平台4&#xff1a;测试 【功能概述】 开箱即用; 向下接入不同设备(PLC / 采集网关 / OPC / TCP设备 / UDP设备 / HTTP接入),向上通过MQTT发布消息; 数采底层基于NET CORE,既支持P…

3.恒定乘积自动做市商算法及代码

中心化交易所的安全风险 在中心化交易所中注册账户时&#xff0c;是由交易所生成一个地址&#xff0c;用户可以向地址充币&#xff0c;充到地址之后交易所就会根据用户充币的数量显示在管理界面中。但是充币的地址是掌管在交易所之中的&#xff0c;资产的控制权还是在交易所。…

乐观锁解决超卖问题

3.6 乐观锁解决超卖问题 修改代码方案一、 VoucherOrderServiceImpl 在扣减库存时&#xff0c;改为&#xff1a; boolean success seckillVoucherService.update().setSql("stock stock -1") //set stock stock -1.eq("voucher_id", voucherId).eq(&q…

【计算机考研】哪些学校性价比特别高

今年性价比高的学校&#xff0c;明年大批人卷进去&#xff0c;分数能低到哪里去&#xff1f; 我不会算命&#xff0c;我只说我看到的趋势&#xff1a; 1 去年爆冷的学校&#xff0c;今年一定不会爆冷&#xff0c;因为大多数人在第一层。就像底层的股民们&#xff0c;股票涨了就…

【面试经典150 | 动态规划】最小路径和

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;动态规划方法二&#xff1a;空间优化 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题…

vue-quill-editor 富文本编辑器(可上传视频图片),组件挂载的方式实现

1.安装 npm install vue-quill-editor --save npm install quill-image-drop-module --save npm install quill-image-resize-module --save2.在组件下面新增组件 QlEditor (1)index.vue <template><div><div idquillEditorQiniu><!-- 基于element…

邀请函 | 第89届CMEF即将开幕,我们上海见!

2024年4月11日~14日&#xff0c;第89届中国国际医疗器械&#xff08;春季&#xff09;博览会&#xff08;简称&#xff1a;CMEF&#xff09;将在上海国家会展中心举行&#xff0c;届时飞凌嵌入式将隆重亮相&#xff0c;展出适用于IVD、医疗影像、生命体征监测等医疗设备的嵌入式…