奇了怪了我上次发的题解怎么不见了?

题意自己戳链接……

Day 1

id=4008">HNOI2015 Arthur

思路:期望DP

直接DP是死也D不出的

转化一下

令f[i][j]——第i张卡在第j回合发动的概率

得到状态转移方程:

f[i][j]——f[i−1][j]∗(1−pi−1)j+f[i−1][j+1]∗(1−(1−pi−1)j+1)

这样下来,答案就为:

∑ni=1∑rj=1f[i][j]∗(1−(1−pi)j)∗di

时间复杂度:O(Tnr)

id=4009">HNOI2015 Fruit

思路:DFS序+总体二分+线段树

设pos[x]——x在DFS序中的位置

我们将水果转化为二维平面上的点(x,y),则有:

每一个盘子能够接到的水果为二维平面上的若干矩形:

对于盘子(x,y),最好还是设deep[x]< deep[y]

若x为y的祖先,则该盘子能够接到的水果满足:一个端点在y的子树内。还有一个端点在x的子树外

否则能够接到的水果满足:一个端点在x的子树内,还有一个端点在y的子树内

假设在这里套上树分治,能够将矩形规模缩小到P*logN

(Orz考场上N*log3N水过的matthew99爷)

只是我们直接使用DFS序(pos[x],pos[y])。能够将矩形规模缩小到2

于是问题变成,二维平面上若干矩形和若干询问点,对于每一个询问点求覆盖它的矩形的第k大。可离线

在线算法挺麻烦的……

总体二分就可以解决这个问题

对于区间[l,r]内的矩形。我们考虑[l,mid]对每一个询问点的覆盖次数

若覆盖次数超过相应的询问k,则说明答案在[mid+1,r]中

否则说明答案在[l,r]中

将询问点分成两份后。递归处理就可以

时间复杂度:O(Nlog2N)

HNOI2015 Dishes

思路:优先队列+字典序

首先排除无解情况

若给定优先顺序出现环状,则说明无解

否则我们考虑整个序列

在1最优先的情况下,使2最优先

将整个序列倒过来,则有:

在1最后的情况下,使2尽量靠后

显然:字典序最大

将整个图倒过来建

每次取可行的最大解增加答案

最后将答案倒序输出就可以

时间复杂度:O(NlogN)

Day 2

HNOI2015 Maple

思路:DAG上DP

设di为i点的入度

对于一个DAG,我们会发现答案为ans=Πni=2di

麻烦的就是多了一条边

这时我们会发现答案增大了

这些增大的方案为那个新边构成的环数

设新边为(x,y),我们能够DP求得增大的方案数

f[i]——y->i对答案的增大的数目

显然:f[i]=∑j−>if[j]∗d−1i

初始状态:f[y]=ans∗d−1y

答案:ans−f[x]

在模质数下可将除法转化为乘法逆元

时间复杂度:O(N+M)

id=4012">HNOI2015 Shop

思路:可持久化树分治结构

事实上没有思路上说的那么复杂……

假设是离线的话,直接一个树分治就搞定

然而题目强制在线。只是每一个点度数不超过3

假设Q=1,我们仅仅需一次树分治

若Q=100。我们能够进行100次树分治

然而Q=200000……

不怂。我们考虑每次树分治

我们会发现,每次分治选出的重心都是一样的

我们将这些重心拎出来,又一次构成一棵树

我们称之为分支结构树

显然,这棵树的深度不超过logN

对于每一个询问,我们发现。仅仅有在分治结构树这个点和它的祖先的答案对这个询问有答案贡献

假设度数>3,我们就须要一个可持久化数据结构来维护每一个重心在分支结构树中的答案

只是这个题度数小,我们能够开3个vector,然后直接合并答案

这样我们仅仅需在分治结构树中计算这个点和它的祖先的答案就可以

时间复杂度:O(QlogN)

id=4013">HNOI2015 Pairwise

思路:树形DP

首先将相等的缩成一个点

然后考虑无解状况,相似Day1 T3

设:一个序列的长度为’<’个数+1

对整个森林进行DP

f[i][j]——以i为根的子树产生的长度为j的序列个数

状态转移方程:f[i][j]=合并f[son[i]][k]

这个合并能够利用背包解决

问题转化为,对于一个长度为x的序列和一个长度为y的序列,将其转化为长度为z的序列共同拥有多少种方案

依据基本组合知识能够知道:(xz)×(x+y−z     x)

时间复杂度:O(N^4)

HNOI2015题解的更多相关文章

  1. # HNOI2012 ~ HNOI2018 题解

    HNOI2012 题解 [HNOI2012]永无乡 Tag:线段树合并.启发式合并 联通块合并问题. 属于\(easy\)题,直接线段树合并 或 启发式合并即可. [HNOI2012]排队 Tag:组 ...

  2. [HNOI2015]部分题解

    Day1 T2 [HNOI2015]接水果 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black,  她觉得这个游戏太简单了, ...

  3. [HNOI2015]菜肴制作 题解(自带口胡证明)

    [HNOI2015]菜肴制作 时间限制: 1 Sec  内存限制: 512 MB 题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为 ...

  4. 【题解】[HNOI2015]菜肴制作(贪心+topo序)

    [题解][HNOI2015]菜肴制作(贪心+topo序) 题意:请你构造一个排列\(p[i]\)使得对于数组\(arc[i]=p[i]\)的字典序最小,并且对于给定的有序数对\((u,v)\)保证你给 ...

  5. HNOI2015 Day 2题解

    昨天做了HNOI day 2,感觉好像还是可做的,想当年什么splay还是高级算法,现在点剖什么就老考了简直丧病,虽然第二题还没写那就先当下嘴巴选手吧= = T1:[HNOI2015]落忆枫音 描述: ...

  6. 【题解】 [HNOI2015]菜肴制作 (拓扑排序)

    题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴 ...

  7. 洛谷 P3244 / loj 2115 [HNOI2015] 落忆枫音 题解【拓扑排序】【组合】【逆元】

    组合计数的一道好题.什么非主流题目 题目背景 (背景冗长请到题目页面查看) 题目描述 不妨假设枫叶上有 \(n​\) 个穴位,穴位的编号为 \(1\sim n​\).有若干条有向的脉络连接着这些穴位. ...

  8. 洛谷 P3239 / loj 2112 [HNOI2015] 亚瑟王 题解【期望】【DP】

    ???看不懂的期望DP 题目描述 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚 ...

  9. 【题解】 [HNOI2015]落忆枫音 (拓扑排序+dp+容斥原理)

    原题戳我 Solution: (部分复制Navi_Aswon博客) 解释博客中的两个小地方: \[\sum_{\left(S是G中y→x的一条路径的点集\right))}\prod_{2≤j≤n,(j ...

随机推荐

  1. kafka生产消费原理笔记

    一.什么是kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性 ...

  2. Android设计 - 图标设计概述(Iconography)

    2014-10-30 张云飞VIR 翻译自:https://developer.android.com/design/style/iconography.html Iconography 图标设计概述 ...

  3. 安装redis出现cc adlist.o /bin/sh:1:cc:not found

    安装redis时 提示执行make命令时, 提示 CC adlist.o /bin/sh: cc: 未找到命令 问题原因:这是由于系统没有安装gcc环境,因此在进行编译时才会出现上面提示,当安装好gc ...

  4. C51寄存器

    EA   全局中断允许位 ET2 定时器/计时器2中断允许位 ES 串行口中断允许位 ET1 定时器/计时器1中断允许位 EX1 外部中断1中断允许位 ET0 定时器/计时器0中断允许位 EX0 外部 ...

  5. 史上最全 Css Hack汇总

    前言 每次要找个东西都得慢慢去翻自己收集的一些东西,每次都是那么花时间,再加上有时存放时间久远就忘了当时是存在哪了,为了方便查询及阅读,决定把一些Css Hack 收集起来... 1.区别不同浏览器, ...

  6. 给初学者的20个CSS实用建议

    英文原文:20-useful-css-tips-for-beginners,编译:杨礼鑫 过去就连一个镜像站点,我们都依靠大量的开发人员和程序员进行维护.得益于CSS和它的灵活性使得样式能够从代码中被 ...

  7. Netty 介绍

    本指南对Netty 进行了介绍并指出其意义所在. 1. 问题 现在,我们使用适合一般用途的应用或组件来和彼此通信.例如,我们常常使用一个HTTP客户端从远程服务器获取信息或者通过web service ...

  8. Android hide Navigation bar

    最近一个app需要隐藏Navigation bar导航栏. 参考文档 http://blog.csdn.net/zwlove5280/article/details/52823128 http://j ...

  9. Unity导入3D模型的过程与方法

    一.介绍 资源是游戏开发中的原材料,也就是组成游戏的模块. Unity只是一个游戏开发引擎,而并不是一个资源开发软件.这就意味着在游戏中需要的资源通常是由一些设计者使用其他软件开发出来的,然后设计者会 ...

  10. unity---------------------关于BuildAssetBundles的使用(打包)

    using UnityEditor;using UnityEngine; public class BuildAssetBundle{ /// <summary> /// 点击后,所有设置 ...