首页 > 其他分享 >构造交互题汇总

构造交互题汇总

时间:2024-11-23 19:23:27浏览次数:6  
标签:柱子 cnt 颜色 可以 汇总 mid 构造 交互

构造

给定直径个数构造树

一听到构造题,被吓怕了。就写了个单个菊花的。k 这么大一眼多个菊花。还有剩余打个表发现 2 或 3 个菊花满了,这就是正解。

KTSC 2024 R2 岛屿

简述题意:给定一个 \(n\) 多边形以及其三角划分,对于以这张图为基础进行如下构造:取出一个三角形 \((a,b,c)\),在其中心位置新建一个点 \(w\),连上 \((a,w),(b,w),(c,w)\)。进行若干次构造后使得整张图的边可以划分为两棵树,其中每棵树都包含所有节点。要求构造次数尽量少,且给出最后的两棵树。

分析:一开始是没有头绪的。但是构造题是给了层次的,我们完全可以构造一种方案。题目的硬性要求是在 \(n\) 次构造以内。那么 $A = $ 外围一圈少一条边,$B = $ 内部边和外围一条边,开始构造可以拿到部分分。思考为什么我们需要构造才可以划分出两棵树?对于三角划分,有多个个度数为 \(2\) 的点存在,手模发现不可能得到合法的划分。然而在所有情况下,最后只有一个度数为 \(2\) 的点不满足。所以只需要在那个地方进行一次构造。如何求方案?类似我们尝试去划分时,每次找到一个度数为 \(2\) 的点,对三角形染色,然后将这个三角形“删去”,变成子问题,即可求解。具体用队列实现。

交互

KTSC 2024 R2 回文判定

题意简述:半交互题。给定序列的长度为 \(n\)。询问1(A):可以进行询问 \((s_x,s_y,s_z)\) 得到其中相等的对数;询问2(B):也可以询问 \((x,vector V)\) 即是否存在 \(j \in V,s_j = s_x\)。要求第一个询问个数 \(\le \frac{n}{2} + 1\),第二个个数 \(\le 1\)。

分析:首先可以用第二个询问扫过来判断。然后考虑优化判断相等的过程。考虑从中间开始扩展,对已经完成的 \(a\),要判断是否 \(c = d\),具体过程为: 若 \(A(c,d,a) = 3\),成立;若 \(A(c,d,a) = 0\),直接退出;否则只有 \(A(c,d,a) = 1\),那么有两种可能:\(c = d \not= a,c = a \not= d\)。那么再利用 \(B\) 进行判断即可。发现对于确定的 \(a\),最后统一用 \(B\) 一次处理即可。但是第一次判断 \(a\) 难道还要用 \(B\) 吗?其实最后再判断 \(a\) 与其对应的 \(b\),由于其他数是否与 \(a\) 相等的关系已知,可以用 \(A\) 判断。

赛时没有深入地想,其实部分分的引导和不受定式的约束,自然的思考,都会给解题带来帮助。

NOIP2020 移球游戏

构造题

10pts:首先就是只有 \((2+1)\) 个柱子的情况(我模拟赛时没想到qwq)。

我们的目的是构造出两根上面都是颜色 \(1\) 和都是颜色 \(2\) 的柱子,然后将 \(2\) 号柱子上的 \(m\) 个分到这两根柱子上去。

这种情况两根上的东西一定就是原来 \(1\) 号的,那么第一步就是要将其分开。分开要腾出两个柱子,而 \(2\) 号柱子是满的,所以我们就可以把 \(2\) 号柱子当作垫脚的先放一部分到 \(3\) 号里去,这样 \(2\) 号就腾出位置来了。

具体的:若 1 中有 cnt 个颜色为 1 的,把 2 顶端的 cnt 个放到 3 号上去。再对 1 号进行出栈,颜色是 1 的全放到 2 号,颜色是 2 的全都放到 3 号。再将 2 号顶端的 cnt 个放回 1,3 号顶端的 m-cnt 个放回 1,3 号剩下垫脚的放回 2。再将 1 号顶端的 m-cnt 个颜色为 2 的放到 3。最后将 2 号的 m 个按颜色分到 1,3 上去。

tips:上面的都是废话,不如自己手模一下。

40pts:

策略就是对于每个规模为 \(n\) 的问题,将所有颜色为 \(n\) 的放到一个柱子上,缩小问题规模为 \(n-1\)。

一个想法:类似于两根柱子一样对于 \(i\) 和 \(n\) 两两在那边搞?不太行,因为颜色为 \(n\) 的个数不足 \(m\) 个,若放在那就会使得没有空的柱子可用。所以我们就要把所有颜色为 \(n\) 的球移到所有柱子上方。发现 10pts 中的转移中就有那么一种状态,即颜色为 \(n\) 的都在上面,颜色不为 \(n\) 的都在下面。但是我们拿来垫脚的那根柱子上是不能有颜色 \(n\) 的,那么一开始优先处理出这个用来垫脚的柱子即可。记录 \(id\),将柱子的角色转化用 swap id 解决,这样就避免了将球从一个柱子全都移到另一个空柱子上的浪费。复杂度为 \(O(t \times n^2m)\),\(t\) 为常数。

其实这种方法是可以过的,因为每次问题规模都在减小,奈何人傻常数大(其实可以加上一些策略的化简可以通过,由于我这里的每个步骤都是照搬 10pts 中的,所以有 5~6 的大常数)。

100pts:

其实也是构造题的套路:分治。40pts 中我们每次处理一个颜色的问题,瓶颈在于要把每根柱子的目标颜色移到该柱子上方。这是由于个数不足不能独立操作造成的。但是如果对颜色进行区分,设当前处理区间为 \([l,r]\),颜色编号为 \([l,mid]\) 的类比为 \(1\),编号为 \([mid+1,r]\) 的类比为 \(2\)。同样对于柱子的编号 \([l,mid]\) 的为左边柱子,\([mid+1,r]\) 的为右边柱子。对于一个左边柱子和一个右边柱子,无论如何我们都可以弄出一个都是颜色 \(1\) 的柱子或者一个都是颜色 \(2\) 的柱子出来。每一次操作都会完成一个柱子,那么对于规模为 \(n\) 的问题我们就可以在 \(n\) 次操作内使得左边柱子上的颜色编号都为 \(1\),右边都为 \(2\),递归解决即可。复杂度 \(O(t \times n m \log n)\)。

标签:柱子,cnt,颜色,可以,汇总,mid,构造,交互
From: https://www.cnblogs.com/fight-for-humanity/p/18564948

相关文章

  • Mathtype 常用功能技巧汇总
    注:本文为“Mathtype常用功能/公式使用技巧”系列文章合辑。未整理去重。Mathtype使用技巧汇总发布时间:2021-03-1019:15:12在使用Word,PPT等制作文档时,很多时候会需要用特殊符号,特别是理工科的学生在写论文时会用到大量的公式。市面上有很多这样的软件都需要......
  • vue.js学习知识点(汇总)
     Vue是什么?Vue是一个用于构建用户界面的渐进式框架1.构建用户界面:基于数据动态渲染页面2.渐进式:循序渐进的学习3.框架:一套完整的项目解决方案,提升开发效率↑(理解记忆规则)   规则→官网创建Vue实例,初始化渲染的核心步骤1.准备容器2.引包(......
  • 【JAVA】第十节:再谈super关键字,代码块,修饰符protected,编译器自动打印构造方法,get set
    上篇讲了静态,静态变量初始化,还有继承的概念,这篇主要是补充之前一些内容的细节,还有一些零散知识;比如super,以及在有了继承以后,代码块的执行,protect关键字等等;目录一、再谈Super关键字1.1Super调用父类变量:1.2Super调用父类方法:1.3Super在子类构造方法中调用父类构造方法:......
  • WPF异步UI交互功能的实现方法
    前面的文章我们提及过,异步UI的基础实现。基本思路主要是开启新的UI线程,并通过VisualTarget将UI线程上的Visual(即RootVisual)连接到主线程上的UI上即可渲染显示。但是,之前的实现访问是没有交互能力的,视觉树上的UI并不能实现鼠标事件。那么今天我们就把交互的工作也给完成了。......
  • 我开发了许多智能家居设备,支持通过MQTT接入home Assitant ,我想用php开发一个网站,通过
    您好,您想开发一个PHP网站,通过OpenAI的API和FunctionCalling功能,实现智能家居的控制。这是一个非常有趣的项目,下面我将为您提供实现思路和步骤。1.整体架构思路用户界面(PHP网站):用户可以在网站上与AI进行聊天。OpenAIAPI交互:将用户的输入发送给OpenAI的API,使用Functio......
  • 华为技术岗位笔试&面试题汇总-第一篇
    说在前面本篇文章是华为技术笔试&面试题,第一篇。后续将持续推出互联网大厂,如阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。欢迎大家点赞关注转发。题目一:static有什么用途?(请至少说明两种)参考答案:在函数体,一个被声明为静态的变量在这一函数被调用过程中......
  • 【汇总】图的存储方法
    本篇博客汇总了多种储存图的方法,为了帮自己梳理知识qwq(封面抽象)一.邻接矩阵空间复杂度O(n^2)。适用于点少、边多的稠密图,不适用于点多、边少的稀疏图。代码框架:(均已储存无向图为例)constintN=10;intg[N][N];cin>>n>>m;while(m--){ intu,v,w; cin>>......
  • 堪称2024最强Java八股文面试题汇总
    1.Java的基本数据类型有哪些?答:Java的基本数据类型包括:整型:byte, short, int, long浮点型:float, double字符型:char布尔型:boolean2.Java中的变量作用域有哪些?答:Java中的变量作用域主要有:类变量(静态变量):作用域为整个类,可以在类的任何地方访问。实例变量:作用域为类的非......
  • 【信奥赛·算法基础】CSP-J C++ 贪心算法示例汇总
    序言为了更清晰的了解贪心算法,我把常见的贪心算法示例做了一个总结,把问题和策略,以及代码示例放到了一起,方便学习和分析,这里示例仅以C++为例,其他语言可根据示例调整即可一、钱币找零问题问题描述:给定不同面额的钱币以及每种面额的数量,用最少的钱币张数凑齐给定的总金额。......
  • AI Weekly2:过去一周重要的AI资讯汇总
    本周(10月14日-10月20日),AI行业继续以惊人的速度发展,从自动驾驶到AI模型的创新,再到AI在金融科技领域的应用,每一项进展都预示着人工智能技术正逐渐渗透到我们生活的方方面面。......