区域赛题目
beihai2013
这个作者很懒,什么都没留下…
展开
-
11年福州 E
/* 这题卡内存实在是太狗了…… 思路很明确,就是几个算法杂糅在一起刚开始粗糙的思路是建一个二叉搜索树,再按照中序遍历把树的点存一遍,最后跑一遍KMP然而 二叉搜索树用的set和数组revg,revg[i]存储对于值为i的节点下标 中序遍历用dfs做本题卡内存,正确的做法应该是 二叉搜索树用的map,因为map是有序且按照第一维升序排列,故可以直接替换原创 2016-06-12 09:02:11 · 264 阅读 · 0 评论 -
11年福州 B 单调栈 HDU 4122
/* 除去数组开小RE了一发,基本1A了 眼泪都流出来了首先转换一下日期成小时,然后用单调栈做找到T时间内合法的最小代价做月饼时间有人说,这个每次往后走一个日期,价值都会变啊所以稍微做这么一个处理,就是单调栈里存的是(cost[i] - 当前小时数 * S)这样就保证了单调栈里的大小不变且可以还原还原的方法取出来的时候,加上(当前小时数*S)失分点: 无学习地方原创 2016-06-12 10:05:52 · 263 阅读 · 0 评论 -
11年福州 F 次小生成树变形 树形DP
单独练习的时候,做到最小生成树处理出来后,就不知道怎么处理了。关键是两个子树间的距离,不能在有效的时间复杂度内解决。实际上,对于一个最小生成树,两个子树间距离可以用dp来做。假设从root开始向下搜索,那么dp[root][u]表示root到u和以u为根节点的子树的最小距离,此处距离即是取的不在最小生成树中的原图的边。那么很容易发现是一个简单的树形DP过程。然后,如果对于两个子树呢?两个子树是原创 2016-06-13 09:04:11 · 242 阅读 · 0 评论 -
11年福州 G 迭代加深+强剪枝 HDU 4127
刚开始想了一种奇怪的方法去贪心,因为不是正确的就不贴了,然后T了……题解写的是IDA*,其实是迭代加深和剪枝。剪枝的地方有几处:1.估价函数剪枝,还剩几种颜色估计几步2.无效剪枝,如果当前这个颜色已经没有就不用走这一步了整体的思路是这样的把原图按照颜色做一个连通块,然后原图可以分为三个部分:和(1,1)连通的点、和(1,1)连通的点相邻的点、其他点那么,每次只在这些和(1,1)连通点相邻原创 2016-06-13 15:32:02 · 285 阅读 · 0 评论 -
11年成都 A 博弈论+记忆化搜索 HDU 4111
博弈 赛中的时候第一反应是结论题,但是跑了几个样例没跑出来 于是试着从算法方面入手。 大概猜测和堆数与石子数的总和有关,但是第一个和第三个样例告诉我应该不是简单的求和关系。 可能是记忆化搜索,但是状态过多实在不知道如何存储,然后就弃疗了……题解是这样的 发现如果当前没有石子是一个,且(石子堆数 + 石子总数 - 1)为偶数,则是必胜状态。 这是整个算法的基础。 但是现在有一些石子堆只有原创 2016-06-14 18:54:20 · 306 阅读 · 0 评论 -
12年杭州 D 二维树状数组+离散化 HDU 4456
12年杭州 D赛中的时候感觉数组开不下,并没有什么很好的思路 实际上,离散化每个需要操作的点之后,这就变成了一个简单的二维树状数组题目。 关于离散化的操作,由于服务器内存卡的比较死,试了几种姿势后都不行,还是采用网上的线性膜的方法。按理说这种方法可以构造出极端数据卡掉的,但是过了失分点: 1. 没有想到二维线树状数组离散化 2. 离散化的离散方法,离散化的数组大小。 学习点原创 2016-06-18 18:09:43 · 874 阅读 · 0 评论 -
12年成都 E 贪心+KMP HDU 4468
12年成都 E 贪心+KMP HDU 4468赛中的时候过的人不多,也没有什么具体的思路。发现问题可以转化为最短后缀,使得前面的字符串都是它的子串。甚至想着能不能枚举后缀,O(1)或者log的查询。然后就走入死角了。实际上还是字符串的题目做的不够多。如果是倒序遍历的话,那查询的字符串操作也应该是倒序的,不存在一个倒序一个正序之说。再者,要检测之前是否为其子串,最坏情况下需要把整个字符串都遍历一遍,原创 2016-06-22 10:56:05 · 450 阅读 · 0 评论