起床困难综合症(BZOJ 3668)

送分题,直接从高位向低位贪心。

魔法森林(BZOJ 3669)

一个容易想到的办法就是枚举A的最大值,以B作为权值求最小生成树。暴力的话要T的。如果从小到大枚举A的最大值,每次仅会添加一些新的边,所以自然想到用LCT维护。本来还可以考一下LCT的,结果考场上A此题的人多半都写的各式各样的黑暗算法。真不知道出题人是怎么出的数据。

动物园(BZOJ 3670)

题目里面就把题解都说明白了,要用KMP。求了next数组后,以next为边建成一棵树,然后就很好做了,只需要知道到根的链上有多少标号不超过当前点标号一半的点。由于是单调的,直接二分就好了。注意不能暴力移动父节点一半的位置来得到新的位置,这样最坏不是O(n)的,虽然随机数据跑得飞快(随机数据随便怎么暴力都跑得飞快)。很容易构造数据卡成O(n^2),像这样就行了:前面一串a,中间一串b,末尾又一串a。不过官方数据似乎过弱,有人这么写当场就A了。

随机数生成器(BZOJ 3671)

很逗的题。只要不被随机忽悠,这题就成了大水题。贪心从小到大填,能填就填。每一行可填的位置一定时刻有个上下界,开两个数组暴力维护就行了。判断能否填是O(1)的,填入是O(n)的,而填入的次数是O(n)的,所以总复杂度是O(n^2)了。整个考的就是数组和for循环,5分钟之内就能写出来。卡内存?能用short的用short就行了。不过考场上的我更逗,写了个线段树维护上下界,判断和填入都是O(lgn)的,而且当时居然还开了n^2级别的线段树节点,我都不知道自己当时怎么想的!

购票(BZOJ 3672)

这题应当是本次NOI中最有价值的一道题了。考场上只搞出了t=0或1的数据,拿了70分。当时想的是用可持久化Treap维护每个节点到根节点的下凸壳,但是只要有距离限制就直接跪了,没法将凸壳拆一段下来。后来研究了半天,才发现分治大法好。

考虑链上带距离限制该怎么做(t=2)。cdq分治就行了。下面想怎么转换到树上。

点分治的时候,我们抓个重心出来,将重心去掉后树就变成了几棵树。其中有包含重心父节点的那棵。这棵树中的节点显然不会从其他树中的节点转移过来,所以可以先处理这棵树。然后我们处理这棵树对另外的树的贡献,这和cdq分治就很像了。类似地做就是了。需要注意的是树中所有以重心为“端点”的转移都应该被处理,被打上标记后重心就不会被考虑了。

NOI2014题解的更多相关文章

  1. NOI2014 部分题解

    感觉NOI2014的一些题目也是比较好做的... 但是笔者往往有思路却没有想清楚就开始搞了...这样还是不太好.. Day1 T1 起床困难综合征  (我感觉这题应该叫综合征不是综合症...)   a ...

  2. NOI2014魔法森林题解报告

    题目描述 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士.魔法森林可以被看成一个包含 n 个节点 m 条边的无向图,节点标号为 1,2,3,-,n,边标号为 1,2,3,-, ...

  3. 【题解】洛谷P2375 [NOI2014] 动物园(KMP)

    洛谷P2375:https://www.luogu.org/problemnew/show/P2375 思路 这道题可以说是完全刷新了本蒟蒻对KMP的理解 感觉对next数组的理解上升到一个新的高度 ...

  4. BZOJ3669:[NOI2014]魔法森林——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3669 https://www.luogu.org/problemnew/show/P2387 为了得 ...

  5. 【KMP】洛谷P2375 [NOI2014]动物园 题解

        一开始的方向应该对了,但是没有想到合理的优化还是没写出来…… 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己 ...

  6. 【题解】 UOJ #2. 【NOI2014】起床困难综合症

    传送门 不是很简单? 考虑一下这个数的二进制位是什么,要么是1,要么是0. 然后怎么做? 因为一开始可以选0~m的数,那么二进制为中全是0的肯定是可以选的. 接着考虑全是1的怎么选? 如果全都是1的而 ...

  7. BZOJ3670 & 洛谷2375 & UOJ5:[NOI2014]动物园——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3670 https://www.luogu.org/problemnew/show/P2375#su ...

  8. BZOJ3668:[NOI2014]起床困难综合症——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3668 https://www.luogu.org/problemnew/show/P2114 21世 ...

  9. 【题解】NOI2014购票

    实际上是一个不完美算法……cogs上面A不掉(爆栈啦).感谢机房大佬PPY的指点,现在也写出来供大家参考参考,理解起来应该是比较简单的一种. 我们首先get出斜率优化方程: \(dp[v] = dis ...

随机推荐

  1. 指针-->字符串

    1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符. 如在代码中写"abc",那么编译器帮你存储的是"abc\0". 2. "ab ...

  2. Linux 下安装包制作

    一 Linux安装文件 Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类, 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文 ...

  3. Android中使用ListView绘制自定义表格(2)

    上回再写了<Android中使用ListView绘制自定义表格>后,很多人留言代码不全和没有数据样例.但因为项目原因,没法把源码全部贴上来.近两天,抽空简化了一下,做了一个例子. 效果图如 ...

  4. linux配置时间同步

    目标环境,5台linux centos 6.3, 一台作为NTPD服务与外部公共NTP服务同步时间,同时作为内网的NTPD服务器,其他机器与这台服务做时间同步.  服务器IP 角色   说明 同步方式 ...

  5. 深搜最基础题---全排列And组合数

    这个是理解标记和取消标记,用一个vis数组来标记 全排列代码: #include <stdio.h> ]; ]; int n; void dfs(int step)//step是当前已经进 ...

  6. 接入淘宝SDK(OneSDK)和支付宝SDK(AlipaySDK)出现 duplicate symbols for architecture i386

    起初我在我的项目中先接入了AlipaySDK,没有出现什么问题,之后想要接入淘宝SDK之后,就出现了duplicate symbols for architecture i386的错误 经过一段时间排 ...

  7. php魔法常量

    有七个魔术常量它们的值随着它们在代码中的位置改变而改变.例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定.这些特殊的常量不区分大小写,如下: 名称 说明 __LINE__ 文件中的当前行号 ...

  8. 持续集成环境(Gitlab+jenkins+shell)

    一.搭建gitlab ps:不是这方面的专家,主要还是一键式安装为主. 1.进入官网:https://about.gitlab.com/gitlab-com/ 2.选择自己的操作系统:我这边选择的ub ...

  9. Caused by: java.lang.NullPointerException, java.lang.reflect.InvocationTargetExc

    java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M ...

  10. HDU 4606 Occupy Cities (计算几何+最短路+最小路径覆盖)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题目:给出n个城市需要去占领,有m条线段是障碍物, ...