splay. 就是splay,没别的了。 #include #include #include using namespace std; const int maxn = 600000 + 10; const int inf = 0x3f3f3f3f; struct Splay { int v[ma... ...
分类:
其他好文 时间:
2016-06-25 09:36:12
阅读次数:
208
dp. 首先我们可以看到每个时间段只能往一个方向转移最多t步(t为时间段的长度),所以我们可以按时间段dp。因为这个前后值互不影响,也不用占用这一维空间就可以省去。 然后每个时间段内是一列一列(行) 进行递推。 如果朴素枚举是O(n^2)时间无法承受。所以每列(行)用一个单调队列维护dp,队首放着移... ...
分类:
其他好文 时间:
2016-06-10 19:05:57
阅读次数:
112
设dp[t][x][y]表示处理完前t个时间段,钢琴停留在(x,y)处,最多可以走多少个格子 转移时只需逆着当前倾斜的方向统计len个格子(len为时间区间的长度,len=t-s+1),如果遇到障碍就中断 转移过程可以用单调非递增的双端队列优化 ...
分类:
其他好文 时间:
2016-06-09 21:01:23
阅读次数:
279
简单题,结果因为理解错题意懵逼了好久…… moveTo[x][y]表示聪聪在节点x,可可在节点y时,聪聪下一步应到达哪一个节点 dp[x][y]表示聪聪在节点x,可可在节点y,且轮到可可行动时,所需时间的数学期望(可可第一次行动不计入其内) ...
分类:
其他好文 时间:
2016-06-09 19:47:59
阅读次数:
214
精确覆盖问题,用dancing links求解。 打常量表比较麻烦。 ...
分类:
其他好文 时间:
2016-05-15 22:52:49
阅读次数:
304
Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有500 000个数,数列中任何一个数字均在[ ...
分类:
其他好文 时间:
2016-04-23 22:48:40
阅读次数:
210
其实题不难,不知提交了几次。。。不能代码MD。。。注意一些基本问题。。。SB概率题 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #define N 1001 5 using namespace std; 6 dou ...
分类:
其他好文 时间:
2016-04-03 19:00:44
阅读次数:
155
339. [NOI2005] 维护数列</form> 339. [NOI2005] 维护数列</form> 339. [NOI2005] 维护数列</form> ★★★★☆ 输入文件:seq2005.in 输出文件:seq2005.out 简单对比 时间限制:3 s 内存限制:256 MB 【问题描 ...
分类:
其他好文 时间:
2016-04-03 14:26:35
阅读次数:
249
直接上记忆化搜索 #include<queue> #include<cstdio> #include<algorithm> using namespace std; int read_p,read_ca; inline int read(){ read_p=0;read_ca=getchar(); ...
分类:
其他好文 时间:
2016-04-01 21:56:25
阅读次数:
191