博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NOIp2018解题报告
阅读量:5303 次
发布时间:2019-06-14

本文共 630 字,大约阅读时间需要 2 分钟。

D1:

T1

\(Ans = \sum_{i=2}^{n} |a_{i}-a_{i-1}|\),正确性可由贪心证得

T2

考虑贪心,选出一个属于A的集合,容易证明其是最优的

然后考虑一个数如果不被选,则他需要满足那些条件,发现是他可以被已选出的一些数表示

那么这就是一个要求不断加点的完全背包,和普通完全背包无异

T3

看到最大值最小直接二分

直接考虑二分lim为最小的最大权

考虑一个点u和连接到他的一条“赛道”s

\(lim \leq s+dis(s,u)\)则直接连接他们

否则,把他放入一个multiset中,然后二分其中最小的q(但是\(lim \leq q+s\)),把他们连接

主要可用贪心证明(贪心大赛……各种贪心)

D2:

T1

先做树上情况,如果是在树上的话我们可以对于每个节点找最小的与之相连的节点,有字典序的定义易得这是成立的

在做基环树的情况,考虑对于环上的每一条边依次删去即可

或者考虑回到父节点的充要条件,此做法可在仙人掌上使用

贪心+1

T2

考虑公式:

Ans(n,m) = 3*Ans(n,m-1)

打表Ans(n,n),Ans(n,n+1),根据递推公式即可

T3

考虑修改点(a,b)之间的链即可,因为其他的部分没有被修改影响,预处理出来即可

预处理和倍增都是dp例题 没有上司的舞会

考虑倍增即可,O(nlogn)

转载于:https://www.cnblogs.com/tyqtyq/p/11273111.html

你可能感兴趣的文章
Java抽象类和接口的比较
查看>>
开发进度一
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
程序集的混淆及签名
查看>>
判断9X9数组是否是数独的java代码
查看>>
00-自测1. 打印沙漏
查看>>
UNITY在VS中调试
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
如何改善下面的代码 领导说了很耗资源
查看>>
Quartus II 中常见Warning 原因及解决方法
查看>>
php中的isset和empty的用法区别
查看>>
Android ViewPager 动画效果
查看>>
pip和easy_install使用方式
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>