传送门

「JOI2019 Final」勇者比太郎

看懂题就很简单了,后缀和随便维护一下就好了,别用树状数组强加一个\(\log\)就行。

「JOI2019 Final」画展

显然可以先把所有的画框按大小排序。
然后把所有的画以美观值为第一关键字从小到大排序,大小为第二关键字也是从小到大排。
然后注意一下,贪心的时候要从后往前枚举,也就是先匹配大的画框,因为大的画框也一定能装下小的画,这个肯定不会更差。

「JOI2019 Final」有趣的家庭菜园

这题过于毒瘤,我不会啊。。。

「JOI2019 Final」硬币收藏

首先要知道硬币都是独立且没有差别的,硬币的移动和空格的移动也是无差别的。
我们对所有需要被放上硬币的位置开一个桶,初始化为 \(-1\) ,表示还需要填 \(1\) 个。
然后我们先让所有的硬币以其最短的路线进入目标矩阵,同时更新答案。
然后从左往右扫,对于两行分别开两个变量记录当前有多少个向右移动的硬币(可以为负数)
然后如果扫到某一列时,上下两行变量的正负性不同,就进行一次该列内部的硬币移动,同时更新答案,实现细节有一点,需要耐心和细心。

「JOI2019 Final」独特的城市

坑填上了。
这道题的理论推导有点复杂,不过实现起来还好。
首先要知道一个事情:对于一个城市 \(u\),对于它的任意一个“独特的城市” \(t\),都一定位于一条 \(u\) 到较远的一个直径端点的路径上。
这应该是显然的,因为只有这条路才不会出现可以覆盖掉 \(t\) 的另一个点。
覆盖指的是和 \(u\) 距离相同的点相互重复。
那么我们就可以先把直径抠出来,分别从两个直径端点跑dfs,然后用一个栈来记录符合条件的答案(根据上一条引理,这些点都一定在它到根的路径上),用类似莫队的方式开一个桶来记录最终答案,不断取 \(\max\) 就好了。
那么我们就要考虑如何更新栈内的点。
考虑长链剖分,对于每一次的dfs,我们先用次长链,也就是最长的轻链来覆盖栈内不合要求的点(需要预处理节点的深度),然后优先dfs重儿子,回溯上来时再以类似的方法用重儿子覆盖站内的点,但是要注意一下:如果此时栈顶元素是当前节点那就先把它弹栈,然后在进入轻儿子时再把当前节点入栈,最后退出时再和上方粗体字所述一样弹出当前节点。

「JOI2019 Final」解题报告的更多相关文章

  1. 「ZJOI2016」解题报告

    「ZJOI2016」解题报告 我大浙的省选题真是超级神仙--这套已经算是比较可做的了. 「ZJOI2016」旅行者 神仙分治题. 对于一个矩形,每次我们从最长边切开,最短边不会超过 \(\sqrt{n ...

  2. 「雅礼集训 2017 Day2」解题报告

    「雅礼集训 2017 Day2」水箱 我怎么知道这种题目都能构造树形结构. 根据高度构造一棵树,在树上倍增找到最大的小于约束条件高度的隔板,开一个 \(vector\) 记录一下,然后对于每个 \(v ...

  3. 「雅礼集训 2017 Day1」 解题报告

    「雅礼集训 2017 Day1」市场 挺神仙的一题.涉及区间加.区间除.区间最小值和区间和.虽然标算就是暴力,但是复杂度是有保证的. 我们知道如果线段树上的一个结点,\(max=min\) 或者 \( ...

  4. 「THP3考前信心赛」解题报告

    目录 写在前面&总结: T1 T2 T3 T4 写在前面&总结: \(LuckyBlock\) 良心出题人!暴力分给了 \(120pts\) \(T1\) 貌似是个结论题,最后知道怎么 ...

  5. 「THUSCH 2017」大魔法师 解题报告

    「THUSCH 2017」大魔法师 狗体面太长,帖链接了 思路,维护一个\(1\times 4\)的答案向量表示\(A,B,C,len\),最后一个表示线段树上区间长度,然后每次的操作都有一个转移矩阵 ...

  6. 「AHOI / HNOI2018」转盘 解题报告

    「AHOI / HNOI2018」转盘 可能是我语文水平不太行... 首先可以猜到一些事实,这个策略一定可以被一个式子表示出来,不然带修修改个锤子. 然后我们发现,可以枚举起点,然后直接往前走,如果要 ...

  7. 「CTS2019 | CTSC2019」氪金手游 解题报告

    「CTS2019 | CTSC2019」氪金手游 降 智 好 题 ... 考场上签到失败了,没想容斥就只打了20分暴力... 考虑一个事情,你抽中一个度为0的点,相当于把这个点删掉了(当然你也只能抽中 ...

  8. 「CTS2019 | CTSC2019」随机立方体 解题报告

    「CTS2019 | CTSC2019」随机立方体 据说这是签到题,但是我计数学的实在有点差,这里认真说一说. 我们先考虑一些事实 如果我们在位置\((x_0,y_0,z_0)\)钦定了一个极大数\( ...

  9. LOJ#2351. 「JOI 2018 Final」毒蛇越狱

    LOJ#2351. 「JOI 2018 Final」毒蛇越狱 https://loj.ac/problem/2351 分析: 首先有\(2^{|?|}\)的暴力非常好做. 观察到\(min(|1|,| ...

随机推荐

  1. JAVA(4)之关于项目部署在tomcat

    关于项目部署的报错问题一直是找不到项目 在重装几次tomcat9和tomcat7后找到了原因,关键原因是访问路径不正确,项目名拼写错误. 排除问题的思路如下(控制变量法) 工作方法和思路 列出步骤,从 ...

  2. 使用PIE.htc 进行IE兼容CSS3

    步骤: 1.引入文件.注意PIE.htc文件和css文件要放在同一个目录下: 2.在css元素中加上  behavior:url(pie.htc); 3.可以愉快的写css hack啦 ,这时需要的圆 ...

  3. win10中,vscode安装go插件排雷指南

    最近学习go,想着使用强大的vscode编写go,在安装go插件过程中,遇到了很多问题.下面记录解决方案. 1)win10环境,安装go,vscode,git 配置GOPATH环境变量,在我的电脑-& ...

  4. Json日期格式化,出去返回的T

    第一种办法:前端JS转换: //格式化显示json日期格式 function showDate(jsonDate) { var date = new Date(jsonDate); var forma ...

  5. 如何使用 Workman 做一个聊天室

    一:首先,得简单说说 thinkphp+workerman 的安装. 安装 thinkphp5.1 composer create-project topthink/think=5.1.x-dev t ...

  6. 16 Z变换

    Z变换 由于\(DTFT\)变换是有收敛条件的,并且其收敛条件比较严格,很多信号不能够满足条件,为了有效的分析信号,需要放宽收敛的条件,引入\(Z\)变换. 定义 已知序列的\(DTFT\)为 \[ ...

  7. laravel qq邮件配置

  8. 语义化标签&唯一性标签

    语义化标签 em\i表示倾斜,b\strong表示加粗,但其中只有strong和em具有着重的语义 img:alt属性当图片无法显示,显示alt的文字,根本需求是为了SEO,是必须属性,alt属性长度 ...

  9. 二分(求l-r中的平方数)

    题目描述 多次查询[l,r]范围内的完全平方数个数 定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x 输入描述:第一行一个数n表示查询次数之后n行每行两个数l,r输出描述:对于每个查询,输出 ...

  10. [C++基本语法:从菜鸟变成大佬系列,就像1,2,3那么简单](七):C++的修饰符

    修饰符是什么? C++允许char,int和double数据类型在它们之前有修饰符.修饰符用于改变基本类型的含义,以便更精确地满足各种情况的需要. 这里列出了数据类型修饰符: signed unsig ...