题解:CF2107E Ain and Apple Tree
首先考虑无解的情况。
当这棵树为一条链时,答案取到最大值。证明很简单,假设存在一个节点 u u u 至少有 2 2 2 个孩子节点,任取两个 v 1 , v 2 v_1,v_2 v1,v2,则 dep ( LCA ( v 1 , v 2 ) ) = dep ( u ) \text{dep}(\operatorname{LCA}(v_1,v_2)) = \text{dep}(u) dep(LCA(v1,v2))=dep(u),此时进行调整,将 v 1 v_1 v1 与 v 2 v_2 v2 改为直接相连,能够增大答案。即断开 ( u , v 2 ) (u,v_2) (u,v2),连接 ( v 1 , v 2 ) (v_1,v_2) (v1,v2),则有 dep ( LCA ( v 1 , v 2 ) ) = dep ( v 1 ) > dep ( u ) \text{dep}(\operatorname{LCA}(v_1,v_2)) = \text{dep}(v_1) > \text{dep}(u) dep(LCA(v1,v2))=dep(v1)>dep(u)。因此假设不成立,命题得证。
令 f i f_i fi 表示 n = i n = i n=i 时的形成链的答案,则有:
f n = ∑ i = 0 n − 1 i × ( n − i − 1 ) = ( n − 1 ) ∑ i = 0 n − 1 i − ∑ i = 0 n − 1 i 2 = n ( n − 1 ) 2 2 − n ( n − 1 ) ( 2 n − 1 ) 6 = n ( n − 1 ) ( n − 2 ) 6 f_n = \sum _{i = 0}^{n - 1} i \times (n - i - 1) = (n - 1)\sum_{i = 0}^{n - 1}i - \sum_{i = 0}^{n - 1} i^2\\ =\frac{n(n - 1)^2}{2} - \frac{n(n - 1)(2n - 1)}{6} = \frac{n(n - 1)(n - 2)}{6} fn=i=0∑n−1i×(n−i−1)=(n−1)i=0∑n−1i−i=0∑n−1i2=2n(n−1)2−6n(n−1)(2n−1)=6n(n−1)(n−2)
因此 k > a n s + 1 k > ans + 1 k>ans+1 时无解。
首先构造出 i i i 与 i + 1 i + 1 i+1 连边所形成的链,之后考虑进行调整。初始时 l = 1 , r = n l = 1,r = n l=1,r=n, [ l , r ] [l,r] [l,r] 形成主链。每次考虑将 r − 1 r - 1 r−1 与 r r r 断边并将 r r r 连至 l l l 上。分析可知,对答案的减少量为 ( f r − f r − 1 ) − ( f l + 1 − f l ) − ( l − 1 ) ( r − l − 1 ) (f_r - f_{r - 1}) - (f_{l + 1} - f_l) - (l - 1) (r - l - 1) (fr−fr−1)−(fl+1−fl)−(l−1)(r−l−1),化简可得 ( r − 1 ) ( r − 2 ) − l ( l − 1 ) 2 − ( l − 1 ) ( r − l − 1 ) \dfrac{(r - 1)(r - 2) - l(l - 1)}{2} - (l - 1)(r - l - 1) 2(r−1)(r−2)−l(l−1)−(l−1)(r−l−1)。若可以操作,则完成后 r ← r − 1 r \gets r - 1 r←r−1,否则 l ← l + 1 l \gets l + 1 l←l+1。重复调整操作直至符合条件。
接下去证明该调整操作的可行性。显然,在不断操作后, l l l 与 r r r 会不断趋近。当 r − l = 2 r - l = 2 r−l=2 时,消去 r r r 并代入得,该操作对答案的减少量为 ( l + 1 ) l − l ( l − 1 ) 2 − ( l − 1 ) ( l + 2 − l − 1 ) = 1 \frac{(l + 1)l - l(l - 1)}{2} - (l - 1)(l + 2 - l - 1) = 1 2(l+1)l−l(l−1)−(l−1)(l+2−l−1)=1,而 r − l = 1 r - l = 1 r−l=1 时不会改变答案。能够改变答案的减少量为 1 1 1,因此当有解时,总是存在一种调整方案。
代码如下:
#include <bits/stdc++.h>
#define init(x) memset (x,0,sizeof (x))
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define pii pair <int,int>
using namespace std;
const int MAX = 1e5 + 5;
const int MOD = 1e9 + 7;
inline ll read ();
int t,n;ll k;
int main ()
{t = read ();while (t--){n = read ();k = read ();vector <vector <int>> ve (n + 1);ll res = 1ll * n * (n - 1) * (n - 2) / 6;if (res + 1 < k) {puts ("No");continue;}puts ("Yes");ll l = 1,r = n;res -= k;while (abs (res) > 1) {ll del = (1ll * (r - 1) * (r - 2) - 1ll * l * (l - 1)) / 2 - 1ll * (r - l - 1) * (l - 1);if (del <= res) res -= del,ve[l].push_back (r--);else ++l;}for (int u = 1;u <= n;++u)for (auto v : ve[u]) printf ("%d %d\n",u,v);for (int i = 1;i < r;++i) printf ("%d %d\n",i,i + 1);}return 0;
}
inline ll read ()
{ll s = 0;int f = 1;char ch = getchar ();while ((ch < '0' || ch > '9') && ch != EOF){if (ch == '-') f = -1;ch = getchar ();}while (ch >= '0' && ch <= '9'){s = s * 10 + ch - '0';ch = getchar ();}return s * f;
}
相关文章:
题解:CF2107E Ain and Apple Tree
首先考虑无解的情况。 当这棵树为一条链时,答案取到最大值。证明很简单,假设存在一个节点 u u u 至少有 2 2 2 个孩子节点,任取两个 v 1 , v 2 v_1,v_2 v1,v2,则 dep ( LCA ( v 1 , v 2 ) ) dep ( u ) \text{dep}(\o…...
STM32的看门狗
独立看门狗(IWDG) IWDG简介 独立看门狗(Independent Watchdog,通常缩写为IWDG)主要作用是主要用于检测外界电磁干扰,或硬件异常导致的程序跑飞问题。 WDG本质上是一个12位的递减计数器(滴答定…...
小王包子铺的融资过程以及IPO上市过程
用包子铺来打个通俗易懂的比喻,一步步讲清楚从创业到融资上市的全过程。 🥟 故事背景:老王的包子铺 老王做的包子特别好吃,于是他决定不再只是摆摊,而是创办一家叫 “老王包子铺” 的连锁店。我们就以老王创业为线索&…...
WPF 触发器 Trigger
触发器 Trigger 触发器(Trigger)是 WPF 中的一种机制: 当某个条件满足时,自动改变控件的某些属性,比如颜色、大小、透明度等。 换句话说,就是"如果……那么就……" 的一种规则。 常见触发器类…...
CentOS算法部署
CentOS服务部署 第一章 启动两个算法服务第一步:上传算法文件第二步:安装 tmux第三步:启动服务(1) 启动第一个算法服务(2) 启动第二个算法服务 第四步:关闭防火墙 第一章 启动两个算…...
极狐GitLab 命名空间的类型有哪些?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 命名空间 命名空间在极狐GitLab 中组织项目。因为每一个命名空间都是单独的,您可以在多个命名空间中使用相同的项…...
使用 Apache POI 生成包含文本和图片的 Word 文档
一、概述 在实际开发场景中,我们经常需要自动生成包含文本和图片的 Word 文档。本示例借助 Apache POI 库,实现了向 Word 文档中插入文本和图片的功能。代码会循环插入多次文本和同一张图片,并且对图片进行等比缩放处理,以保证图片…...
Eclipse通过Tomcat启动web项目报错
错误内容:Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext。 本来运行的好好的,执行了Maven->Update Porject后就报上面的错。 通过检查发现,执行上面的命令后会将下面截图中的maven depen…...
5.7线性动态规划1
P2285 [HNOI2004] 打鼹鼠 #include<bits/stdc.h> using namespace std; struct node{int x, y, t; }a[100010]; int dp[100010]; void solve(){int n, m; cin >> n >> m;for(int i 1; i < m; i){cin >> a[i].t >> a[i].x >> a[i].y;}…...
Word如何制作三线表格
1.需求 将像这样的表格整理成论文中需要的三线表格。 2.直观流程 选中表格 --> 表格属性中的边框与底纹B --> 在设置中选择无(重置表格)–> 确定 --> 选择第一行(其实是将第一行看成独立表格了,为了设置中线&…...
【Mybatis-plus常用语法】
MyBatis-Plus 是 MyBatis 的增强工具,提供了很多便捷的功能来简化开发。以下是一些 MyBatis-Plus 的常见语法: 实体类注解:使用 TableName 注解来指定实体类和数据库表的映射关系。 TableName("user") public class User {privat…...
16.Excel:数据收集
一 使用在线协作工具 简道云。 excel的在线表格协作在国内无法使用,而数据采集最需要在线协作。 二 使用 excel 1.制作表格 在使用excel进行数据采集的时候,会制作表头给填写人,最好还制作一个示例。 1.输入提示 当点击某个单元格的时候&am…...
基于Django框架开发的企业级IT资产管理系统
CMDB 资产管理系统 资产管理系统是一个基于Django框架开发的企业级IT资产管理平台,专注于数据中心和IT设备的全生命周期管理。该系统提供了完整的资产管理功能,包括设备管理、数据中心管理、用户权限管理等核心功能。 项目截图 技术栈 后端 Python 3…...
Redis 集群版本升级指南:从 Redis 7 升级到 Redis 8
Redis 集群升级主要有两种方案: 1、在线滚动升级(无需停机) 2、停机升级(需停止服务) 一、准备工作 1. 下载 Redis 8 安装包 # Redis 8.0.0 示例(请替换为实际版本) http://download.redis.io…...
使用 Couchbase Analytics Service 的典型步骤
下面是使用 Couchbase Analytics Service 的典型步骤,包括部署、配置、创建数据集、运行查询以及监控优化等环节。 首先,您需要安装并启用 Analytics 服务;然后将节点加入集群并重平衡;接着在 Analytics 中映射数据服务的集合&am…...
C++ stl中的vector的相关用法 迭代器失效问题
文章目录 vector的介绍及使用vector的定义 vector的空间相关问题vector的迭代器的使用vector的增删查改vector迭代器失效问题 vector的介绍及使用 1、vector是用于表示可变大小数组的序列容器。 2、vector就像数组一样,采用的是连续的空间来存储元素,也…...
【Redis】哨兵机制和集群
🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 一、哨兵机制 Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工的进行主从切换,同时需要大量的客户端需要被通知切换到…...
uni-app 引入vconsole web端正常,安卓端报错 Cannot read property ‘sendBeacon‘ of undefined
reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught TypeError: Cannot read property sendBeacon of undefined vconsole 只支持 web 端,…...
数据管道的解耦艺术:Dagster I/O管理器实现存储与逻辑分离
在现代数据工程中,高效管理数据的读写逻辑是构建可维护管道的关键。Dagster的**I/O管理器(I/O Managers)**通过分离数据处理与数据存储逻辑,显著提升了代码的可复用性和灵活性。本文将深入解析其核心概念、应用场景及实战示例。 一…...
shell脚本--2
1、实时监控cpu、内存的shell脚本 #!/bin/bash# 获取当前时间 DATE$(date "%Y-%m-%d %H:%M:%S")# 获取CPU使用情况 CPU_USAGE$(top -b -n1 | grep "Cpu(s)" | awk {print $2 $4})# 获取内存使用情况 MEMORY_USAGE$(free | grep Mem | awk {print $3/$2 *…...
jenkins配置多nexus仓库多maven版本
jenkins多环境多nexus仓库,多maven版本 使用优化,jenkins多环境多nexus仓库,多maven版本 1、多settings.xml设置构建 背景:jenkins本地安装一个maven版本,默认只有一个settings.xml文件指定本地和远端nexus仓库&#x…...
Linux理解文件fd
先来段代码回顾C文件接口 myfile.c写文件 #include <stdio.h>int main() {FILE *fp fopen("log.txt","a");if(NULL fp){perror("fopen");return 1;}fprintf(fp,"helloWorld,%d,%s,%lf\n",10,"lsf",3.14);fclose(fp)…...
【Python】os模块
os 模块是 Python 标准库中用于与操作系统交互的核心模块,提供了许多操作文件和目 录的函数。 1. 基本介绍 os 模块提供了以下主要功能: 文件和目录操作路径操作进程管理环境变量访问 import os2. 常用功能分类 2.1 文件和目录操作 函数/方法描述o…...
2025 Mac常用软件安装配置
1、homebrew 2、jdk 使用brew安装jdk: 配置环境变量: 3、maven 使用brew安装maven: 配置环境变量: 4、光标平滑移动 5、鼠标滚轮调整 mos 6、常用的终端工具 tabby 7、软件卸载 腾讯柠檬:https://lemon.qq.com/ 8、…...
PyQt5 实现自定义滑块,效果还不错
最近,黄老师闲来无事,需要做一个 播放器的滑块,但是Qt官方的长这个样子,不太好看 于是我自己写了一个,效果还不错,请看下面的效果图: 功能可以点击,可以拖拽改变进度,和播放器的进度条一样 源码如下: 需要的自取 import sys from PyQt5.QtWidgets import QApplicat…...
如何在ENVI Classic 和 ENVI中进行波段合成
示例使用Landsat的三个波段进行合成为示例,合成后展示为假彩色。 对应关系为: Red -- b4(近红外 near-infrared)NIR Green -- b3 (红光 Red) Blue -- b2 (绿光 Green) 一、ENVI…...
协方差与皮尔逊相关系数:从定义到应用的全面解析
目录 一、协方差与皮尔逊相关系数的定义1.1 协方差(Covariance)1.2 皮尔逊相关系数(Pearson Correlation Coefficient) 二、协方差的定义与推导逻辑2.1 核心目标:衡量变量的“协同变化”2.2 数学表达的直观性2.3 从线性…...
ICML 2025录取率公布,spotlight posters仅占2.6%
近日,ICML 2025公布了论文录用结果。本次大会共收到 12,107篇有效论文投稿,比去年增加了28%,今年录取论文3,260篇,录取率为 26.9%。其中仅有313篇被列为“焦点海报”(即所有投稿中排名前2.6%的论文)&#x…...
kotlin一个函数返回多个值
一、主要实现方式 1. Pair/Triple 元组 用途:临时快速返回 2 或 3 个简单值,适用于简单场景语法: fun getStatus(): Pair<Int, String> {return Pair(200, "Success") // 等价于 200 to "Success" }// 解构接收 …...
Clojure 学习笔记
Clojure哲学 1.又一种Lisp? 优美、灵活、代码即数据。 实现一门程序设计语言,代码同数据一般对待,这需要语言本身具有非常强的可塑性。当语言就是以这种本质的数据结构表现时,语言本身就可以操作自己的结构和行为了。 2.函数式编…...
5.7 react 路由
react 状态管理库 14:20 react 路由(补充) 数据路由 路由hooks 路由跳转 (方法 标签/内置方法) 获取路由地址栏信息 动态路由实现(多角色权限路由) redux redux-toolkit 状态管理 antd 组件使用 1.…...
8. HTML 表单基础
表单是网页开发中与用户交互的核心组件,用于收集、验证和提交用户输入的数据。本文将基于提供的代码素材,系统讲解 HTML 表单的核心概念、常用控件及最佳实践。 一、表单的基本结构 一个完整的 HTML 表单由以下部分组成: <form action&q…...
遥感数据处理、机器学习建模与空间预测的全流程指南——涵盖R语言(随机森林、XGBoost、SVM等)、特征提取、模型优化及生态学案例分析
随机森林是一种强大的集成学习方法,特别适用于复杂的遥感数据分析。它通过构建多棵决策树并引入随机性,有效降低模型的方差和过拟合风险。在训练过程中,随机森林利用Bootstrap抽样生成多样化的训练集,并在节点分裂时随机选择特征子…...
Android 数据持久化之数据库存储 Room 框架
一、简介 Room 是 Google 推出的 Android 持久层框架,建立在 SQLite 之上,提供了一个抽象层,简化了数据库操作。它通过注解和编译时检查来确保数据操作的正确性。 Room 主要由以下三个组件组成: Entity(实体&#x…...
空间数据分析新趋势:AI 与 ArcGIS Pro 的协同创新
技术点目录 AI(DeepSeek、ChatGPT)大模型介绍及应用AI(DeepSeek、ChatGPT)支持下空间数据处理及分析功能基础AI(DeepSeek、ChatGPT)支持下空间数据选择及读取AI(DeepSeek、ChatGPT)支…...
Oracle OCP认证考试考点详解083系列10
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 46. 第46题: 题目 解析及答案: 查看以下配置: CDB1 和 CDB2 是两个容器数据库。 PDB1 是 CDB1 中的一…...
【linux常用指令】du命令
今天收到通知需要将服务器上的容量大的文件移动到大容量数据盘中。 du -sh */ | sort -h如果你想按大小排序显示文件夹,可以结合 sort 命令。这会按大小从小到大排序显示文件夹。如果想按大小从大到小排序,可以加上 -r 选项。 du -sh */ | sort -h -r...
统一返回JsonResult踩坑
定义了一个统一返回类,但是没有给Data 导致没有get/set方法,请求一直报错 public class JsonResult<T> {private int code;private String message;private T data;public JsonResult() {}public JsonResult(int code, String message, T data) {…...
MCP Client适配DeepSeek
本文是通过MCP官方的client例子进行修改,适配DeepSeek API. MCP client 先解析一下什么是MCP client。 MCP Client 是 Model Context Protocol(模型上下文协议)架构中的客户端组件,主要负责与 MCP 服务器建立和管理连接。它是一…...
物业设备管理的“多系统协同”模式:ERP、IoT与工单系统如何联动?
在智慧物业快速发展的今天,设备管理已从“被动维修”转向“主动预防”,但许多企业仍面临系统割裂、数据孤岛的困境。ERP系统记录设备台账却难实时监控,IoT设备采集数据却无法联动响应,工单系统处理流程却依赖人工流转——这些痛点…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】6.4 时间序列分析(窗口函数处理时间数据)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL时间序列分析:窗口函数处理时间数据实战一、时间序列分析核心场景与窗口函数优势1.1 业务场景需求1.2 窗口函数核心优势 二、窗口函数基础:…...
数据可视化:艺术与科学的交汇点,如何让数据“开口说话”?
数据可视化:艺术与科学的交汇点,如何让数据“开口说话”? 数据可视化,是科技与艺术的结合,是让冰冷的数字变得生动有趣的桥梁。它既是科学——讲究准确性、逻辑性、数据处理的严谨性;又是艺术——强调美感…...
IP 风险画像如何实现对恶意 IP 的有效拦截?
IP 风险画像作为一种强大的技术手段,在识别和拦截恶意 IP 方面发挥着至关重要的作用。 IP风险画像技术简介 IP 风险画像技术通过收集和分析 IP 地址的多维度信息,为每个 IP 构建详细的风险评估模型。 这些维度包括但不限于 IP 的地理位置、历史访问行…...
B树如何用于磁盘 ,B+树为如何用于数据库
B树 M阶B树:每个节点最多M个子节点,每个节点最多存M-1个Key-Value值,key以升序排序。 构建五阶B树。 那么value是干什么的呢。 先让我们介绍一下cpu 内存 磁盘的关系 我们知道了页的概念。B树用于磁盘的读取。Key是对文件进行编号ÿ…...
image-classifier开源程序Elixir是使用电脑学习对图像进行分类并从中提取数据或描述其内容,非常不错的图片整理工具
一、软件介绍 文末提供程序和源码下载 Elixir 机器学习功能构建一个应用程序,该应用程序执行图像字幕和语义搜索,以使用您的语音查找上传的图像! 二、为什么做这个程序 在构建我们的应用程序时,我们认为 images 这是一种必不…...
HarmonyOS 鸿蒙操作物联网设备蓝牙模块、扫描蓝牙、连接蓝牙和蓝牙通信
01【HarmonyOS 蓝牙】 物联网无线传输方案、HarmonyOS蓝牙数据通信之前的准备工作 02【HarmonyOS 蓝牙】配置蓝牙权限 检测 打开 关闭蓝牙 扫描蓝牙 显示蓝牙设备 03【HarmonyOS 蓝牙】连接蓝牙 发现服务 获取特征值 读取信息 写入信息 和蓝牙模块交互 04【物联网 Wifi模块…...
STM32开发GPIO
1、什么是GPIO General Purpose lnput Output,即通用输入输出端口,简称GPIO 作用:负责采集外部器件的信息或者控制外部器件工作,即输入输出 2、GPIO特点 1,不同芯片型号,IO口数量可能不一样,可通过选型…...
【机器学习】Logistic 回归
Logistic 回归虽然名字中带有“回归”,但它实际上是一种广泛应用于 二分类问题 的线性分类算法。 Logistic 回归的核心任务是预测一个样本属于正类的概率,而概率必须在 [ 0 , 1 ] 范围内。 Logistic回归 通过将输入特征的线性组合映射到概率空间&…...
ClimateCatcher专用CDS配置教程
文章目录 API获取官网账号注册CDSAPI本地化配置 API获取官网 首先需要访问CDS官方网站,点我蓝色字直接到官网how-to-api点我蓝色字直接到官网 目前API的网页是这样的 账号注册 如果有账号的小伙伴可以直接登录自己的账号并跳转到CDSAPI本地化配置,如…...
拆解 Prompt 工程:五大场景驱动 DeepSeek 超越 ChatGPT
同样的模型、不一样的答案,差距往往发生在一行 Prompt 里。本文围绕五大高频实战场景,给出可直接复制的 DeepSeek 提问框架,并穿插《DeepSeek 行业应用大全》中 64 个行业模板精华,帮助读者迅速跑赢 ChatGPT。🌟 剧透…...