1. 题目描述有个#字型的条带,可以从横线或竖线进行循环移动,求通过各种移动最终使中心的8个字符全等的长度最短并相同长度字典序最小的操作序列。2. 基本思路24个数据,8种移动方式,数据量很小了,所以基本怎么玩儿都可以。需要注意的是因为横线竖线间有交点,所以每个条带的数据可能都是变化的。采用IDA*
分类:
其他好文 时间:
2016-02-20 13:08:03
阅读次数:
158
线性DP,使用单调队列优化。 1 /* 4374 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <map> 6 #include <queue> 7 #include <set> 8 #inc
分类:
其他好文 时间:
2016-02-20 00:26:36
阅读次数:
176
基本思路是将树形结构转换为线性结构。然后,所求即为一个区间内大于abi的最大的loy指向的ID。将结点按照abi降序排序,注意abi可能相等。然后,使用线段树单点更新,区间查询可解。 1 /* 4366 */ 2 #include <iostream> 3 #include <sstream> 4
分类:
其他好文 时间:
2016-02-19 12:36:27
阅读次数:
195
其实是求树上的路径间的数据第K大的题目。果断主席树 + LCA。初始流量是这条路径上的最小值。若a<=b,显然直接为s->t建立pipe可以使流量最优;否则,对【0, 10**4】二分得到boundry,使得boundry * n_edge - sum_edge <= k/b, 或者建立s->t,然
分类:
其他好文 时间:
2016-02-15 16:25:54
阅读次数:
215
划分树模板题目,主席树也可解。划分树。 1 /* 4251 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <map> 6 #include <queue> 7 #include <set> 8
分类:
其他好文 时间:
2016-02-15 00:53:59
阅读次数:
344
思路1:树状数组+离线处理,对所有的w离散化处理,边dfs边使用树状数组更新左右w的情况。思路2:主席树,边bfs边建树。结点信息存储cnt,然后在线查询。树状数组。 1 /* 4605 */ 2 #include <iostream> 3 #include <sstream> 4 #include
分类:
其他好文 时间:
2016-02-15 00:49:43
阅读次数:
228
划分树解。主席树解MLE。 1 /* 3473 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <map> 6 #include <queue> 7 #include <set> 8 #incl
分类:
其他好文 时间:
2016-02-14 18:32:10
阅读次数:
138
即求P1^n1+P2^n2 + ... + Pk^nk <= n,其中Pk为素数的所有可能组合。思路是DP。1~1000的素数就不到200个。dp[i][j]表示上式和不超过且当前最小素数为P[j]的所有可能情况。注意dp[i][0]+1即为所求。 1 /* 4345 */ 2 #include <
分类:
其他好文 时间:
2016-02-13 23:11:29
阅读次数:
233
主席树区间更新,延迟标记。 1 /* 4348 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <map> 6 #include <queue> 7 #include <set> 8 #incl
分类:
其他好文 时间:
2016-02-13 18:21:09
阅读次数:
223
最大不相交集合的数量。思路是dp[i][j]表示已经有i个不相交集合下一个不相交集合的最右边界。离散化后,通过贪心解。 1 /* 4343 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <ma
分类:
其他好文 时间:
2016-02-13 00:27:30
阅读次数:
276