
NOI
文章平均质量分 80
huanghongxun
这个作者很懒,什么都没留下…
展开
-
BZOJ 1063 NOI 2008 设计路线 树形DP
求树的路径覆盖方案数使各点到根经过非覆盖边总次数(不便利值)最小。 OI题题面真是麻烦。。 令f[i][j][k]f[i][j][k]表示第i个点,向子树连了k条边后的不便利值。显然0≤k≤20\leq k\leq 2。 如果令gig_i表示子树向本点连一条边,不便利值相同的方案数,hih_i表示子树向本点不连边,不便利值+1的方案数。 那么 gi=f[i][j][0]+f[i][j][1原创 2016-03-10 23:04:20 · 652 阅读 · 0 评论 -
UOJ 147|NOIP 2015|斗地主|搜索|贪心
你有一些扑克牌,有一些出牌方式,问最少出多少张牌才能全部打光。 分别有:王炸、炸弹、单张、对子、三张、三带一、三带二、四带两张、四带两对、单顺子、双顺子、三顺子。 顺子不包含大小王和2。题目:http://uoj.ac/problem/147没有飞机真是可惜 UOJ中途加强数据QwQ。嘛,考虑搜索。 (还记得考场上的程序写的很丑)显然对于一个出牌的方案,顺序是无关的,因此考虑优先出顺子,顺子原创 2016-05-22 13:22:01 · 1973 阅读 · 0 评论 -
BZOJ 1415|NOI 2005|聪聪和可可|概率期望|动态规划
由于聪聪总会向可可靠近,而且移动是固定的,因此考虑预处理出所有情况下聪聪的移动方向e[i,j]。 这个可以通过枚举可可跑SPFA解决。 由于聪聪和可可的位置即可描述当前状态,因此设dp[i,j] 当e[i][j]=j或e[e[i][j]][j]=je[i][j] = j或e[e[i][j]][j]=j时,聪聪可以一步到位吃掉可可,显然此时dp[i,j]=1dp[i,j]=1。 否则可可有1|原创 2016-04-20 20:31:43 · 445 阅读 · 0 评论 -
UOJ 150|NOIP 2015 Day 2|运输计划|LCA
给出N点树和M条树上简单路径,求将一条边的边权改为0后使M条路径中最长的最短,求修改后最长路径的长度。题目描述来看容易想到二分答案,当我们二分长度时,显然不需要考虑比二分的答案要短的路径,对于长的路径,我们只能修改一条边的长度,因此这条边必须在较长路径中都出现,即这些路径的路径交上的边。 考虑序列上的区间交的求法,即在两端点打标记,那么将某个区间归属于其左端点,求前缀和后若某端点的前缀和=区间数量原创 2016-07-21 12:05:03 · 1472 阅读 · 0 评论 -
NOIP 2015 简记
Day 0感觉NOIP 2014那么水15嘛。。Day 1T1 10分钟水完了,效率略低。T2 时间戳判环,然而只写了从入度0的点开始,幸好数据是随机没卡我程序T3 实力暴力水分。。Day 2T1 大概30分写完,一开始卡在纯贪心真是逗。。。T2 一个水dp,“前缀和”维护一下就O(nmk)了,还得上滚动数组真是麻烦→_→T3 一开始写了个nmlogn的暴力。。原创 2015-11-21 13:36:31 · 553 阅读 · 0 评论 -
BZOJ 2006|NOI 2010|超级钢琴|堆|RMQ
对于所有的子序列,如果我们固定右端点,那么左端点就有一个区间了(这种想法和4268有点像?),那么如果我们取了一个左端点j能让区间值最大,那么就取了,左区间从[l,r][l,r]分裂为[l,j−1][l,j-1]和[j+1,r][j+1,r]。 那么取最大的k个就是答案了。至于怎么确定最大的左端点,显然通过后缀和+RMQ就可以实现了。 [r+1,n]对于所有的左端点都是一样的,所以有没有对于我们原创 2016-04-29 11:49:43 · 787 阅读 · 1 评论 -
BZOJ 2535|BZOJ 2109|BZOJ 2008|NOI 2010|航空管制|拓扑排序
求图的拓扑序,使各点v在序列中位置编号不大于给定的k[v]。 并求在拓扑序的最早出现的位置。最早出现和最晚出现相反,如果反序拓扑图,那么就变成最晚出现的位置,然后问题就简单了。。只要拓扑排序时不断地推迟对应节点的出现时间直到不能再推迟就可以了。至于不大于,由于至少出现的位置,因此只要是后面的就可以了,只要能放就放。BZOJ 2535和2109都卡\n和空格啊。。 BZOJ 2008好像不可做的样原创 2016-04-29 12:18:45 · 1086 阅读 · 0 评论 -
NOIP 2012 Vijos 1787 普及组 寻宝 模拟
在Vijos上测试成功。测试数据 #0: Accepted, time = 0 ms, mem = 25284 KiB, score = 10测试数据 #1: Accepted, time = 0 ms, mem = 25284 KiB, score = 10测试数据 #2: Accepted, time = 0 ms, mem = 25280 KiB, score =原创 2013-07-22 13:05:39 · 1261 阅读 · 0 评论 -
NOIP 2008 Vijos 1497 立体图 模拟
在Vijos上编译成功测试数据 #0: Accepted, time = 0 ms, mem = 1340 KiB, score = 10测试数据 #1: Accepted, time = 0 ms, mem = 1336 KiB, score = 10测试数据 #2: Accepted, time = 0 ms, mem = 1336 KiB, score = 10原创 2013-07-22 20:56:32 · 1403 阅读 · 0 评论 -
BZOJ 1565 NOI 2009 植物大战僵尸 最小割 拓扑排序
#include <cstdio>#include <cstring>#include <algorithm>#define FOR(i,j,k) for(i=j;i<=k;++i)using namespace std;const int inf = 0x3f3f3f3f, N = 660, M = 800005;int level[N], cnt = 1, cur[N], v[M],原创 2016-04-09 22:58:47 · 573 阅读 · 0 评论 -
BZOJ 1500|NOI 2005|维修数列|Splay
这题没啥好说的。。主要是用来贴模板 3.6s 尝试了抽象Splay这个类,不过卡在了内存池怎么写的问题上。。。感觉对C++理解还不够深刻。#include <cstdio>#include <stdexcept>#include <algorithm>using namespace std;#define inf 1000000000#define N 1000005int read()原创 2017-12-21 20:46:34 · 293 阅读 · 0 评论