Solution Set - NOI级别真题选做
[NOI2007] 社交网络
key:Floyd
Floyd求出任意两点间最短路,以及最短路的条数。求点 \(k\) 的答案时枚举所有点对 \(i,j\),若 \(dis_{i,k}+dis_{k,j}==dis_{i,j}\),则以 \(\frac{cnt_{i,k} \times cnt_{k,j}}{cnt_{i,j}}\) 加入答案。
[NOI2009] 管道取珠
key:DP
状态设计有点意思。想象有两个管道,每次两个管道各出一个球,则所求即为两个管道每次出球都相同的方案数。状态设计为三维,然后把第一维压掉。
[NOI2009] 变换序列
key:基环树
首先根据 \(d_i\) 求出可能的 \(t_i\)(至多两个取值),然后建二分图。建图时允许重边,这样每个左部点的度都为2。只用求该图字典序最小的完美匹配。分出这个图上的连通块,必须每个连通块都是基环树才有解。是基环树时,找到环上编号最小左部点,让它的匹配点取较小的一个即可。
[NOI2009] 诗人小G
key:四边形不等式优化
模板题。
[NOI2010] 海拔
key:平面图最小割
显然所有点的海拔只可能是0或1。然后转对偶图最短路。模板题。
[CTSC2010] 星际旅行
这是黑?这是黑?这是黑?
key:思维题
注意到最后那个条件,可以先遍历整棵树,然后选择一些边重复走,使其两端点的 \(h_i\) 值都减一。这个步骤贪心地完成:以 \(0\) 为根,先让叶子结点尽可能用光(同时耗费父亲结点)。遍历整棵树,到达点 \(u\) 时相当于 \(u\) 到 \(0\) 的路径少走了一遍,这样可以把路径上(不含 \(0\))的所有点的 \(h_i\) 值加一。可以在DFS进入一个点时加一,离开时减一。考虑这样操作的影响。加一时优先与儿子匹配,如果不行就再与父亲匹配,再不行就不管了。减一时如果能减直接减,否则优先与父亲匹配(少重复一次),不行就再与儿子匹配。只要在儿子上记录它与父亲结点的匹配次数即可。
[NOI2009] 植物大战僵尸
key:拓扑排序,最小割
依照题意建有向图,\(x\) 向 \(y\) 连边表示要攻击 \(y\) 必须先攻击 \(x\)。从源点向最右侧的点连边,跑拓扑排序求出所有可能攻击的位置。然后对原图所有边(与源点无关)建反向边,流量INF(防止割断);源点向所有点连流量为 \(D\) 的边,所有点向汇点连流量为 \(D-\) 点权 的边,跑最小割即可。这里 \(D\) 是一个合适的常数,使得所有流量为正。
[WC2009] 最短路问题
key:线段树
难。情况多到离谱。建议摆烂。
[CTSC2010] 产品销售
这是紫?这是紫?这是紫?
key:模拟费用流
费用流模型是好建的,然后完全不会。看题解叭。
Solution Set - NOI级别真题选做的更多相关文章
- [NOIP2017(TG/PJ)] 真题选做
[NOIPTG2017] 小凯的疑惑 题意 小凯有两种面值的金币,每种金币有无数个,求在无法准确支付的物品中,最贵的价值是多少金币. 分析 设两种金币面值分别为 $a$ 和 $b \; (a<b ...
- Atcoder 水题选做
为什么是水题选做呢?因为我只会水题啊 ( 为什么是$Atcoder$呢?因为暑假学长来讲课的时候讲了三件事:不要用洛谷,不要用dev-c++,不要用单步调试.$bzoj$太难了,$Topcoder$整 ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- 贪心/构造/DP 杂题选做Ⅱ
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...
- Ynoi 数据结构题选做
Ynoi 数据结构题选做 前言 我将成为数据结构之神!坚持 lxl 党的领导,紧随 nzhtl1477(女装灰太狼1477)的脚步.无论过去.现在还是未来,分块始终是实现 data structure ...
- [SDOI2016]部分题选做
听说SDOI蛮简单的,但是SD蛮强的.. 之所以是选做,是因为自己某些知识水平还不到位,而且目前联赛在即,不好花时间去学sa啊之类的.. bzoj4513储能表&bzoj4514数字配对 已写 ...
- 贪心/构造/DP 杂题选做
本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...
- NOIP 真题选讲
推荐生要凉辽 这可能是我更新的最后一篇博客 代码什么的有时间再说吧,先讲思路.(已搞定前三题代码) 首先先看一下线段覆盖题.我们有一个区间,要用线段覆盖整个区间. 这个是线段的覆盖简图.我们如何选取最 ...
- JOI 简单题选做
就是把洛谷上评分为紫的题做了一下(汗) 前两道题没做出来,暴露了自己在 dp 上的短板. イベント巡り 2 一开始想到贪心,但发现我们只要选 \(k\) 个即可,所以可以尝试一些更劣但是编号更小的做法 ...
- 【SPOJ GSS】数据结构题选做
SPOJ GSS1 题意:给一个序列以及一些询问,每个是问\([l,r]\)中最大连续子序列和是多少. 思路:这个问题是以下问题的基础. 我们考虑用线段树来解决这个问题. 首先我们来想想如果要求出最大 ...
随机推荐
- mysql mysqldump 命令导出
1.导出指定表的数据 mysqldump -t database -u user -p --table_name1 table_name2 table_name3 >C:\db_script. ...
- C# 获取QQ会话聊天信息
利用UIAutomation获取QQ会话聊天信息 AutomationElement window = AutomationElement.FromHandle(get.WindowHwnd); Au ...
- Python - inspect 模块的简单使用
Python中的inspect模块解析 Python的inspect模块是一个强大的内省工具,允许开发者检查(inspect)活动对象和源代码.它提供了一系列函数,用于获取信息关于正在运行的程序和调用 ...
- verilog基本语法之always和assign
always和assign的作用 一.语法定义 assign,连续赋值.always,敏感赋值.连续赋值,就是无条件全等.敏感赋值,就是有条件相等.assign的对象是wire,always的对象是r ...
- KingbaseES 控制文件损坏的恢复
sys_ control文件损坏: 需要手工指定一些参数完成sys_resetwal相关操作 当前数据库信息 test=# \d 关联列表 架构模式 | 名称 | 类型 | 拥有者 --------- ...
- ET介绍——C#更好的协程
更好的协程 上文讲了一串回调就是协程,显然这样写代码,增加逻辑,插入逻辑非常容易出错.我们需要利用异步语法把这个异步回调的形式改成同步的形式,幸好C#已经帮我们设计好了,看代码 // example2 ...
- Tomcat内存马分析
前言 自己简单搭建一个Tomcat项目,IDEA里选择JavaEE,勾上web就行了 加个依赖(这样就能找到三个Context了: <dependency> <groupId> ...
- LeetCode 416. 分割等和子集(bitset优化)
LeetCode 416. 分割等和子集 1 题目描述 给你一个只包含正整数的非空数组nums.请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 1.1 输入测试 示例 1: 输入 ...
- #dp#nssl 1478 题
分析 设\(f[i]\)表示第\(i\)个是否幸存,\(dp[i][j]\)表示若第\(i\)个幸存,第\(j\)个是否必死 倒序枚举人,如果存在\(dp[i][a[x]],dp[i][b[x]]\) ...
- #二分,负环#JZOJ 3852 单词接龙
题目 只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来.给出\(n\)个单词组成单词环,求所有环的环中单词平均长度最大值. 分析 二分答案,判断是否存在正环( ...