裸Splay区间操作: 内存池+区间加减+区间翻转+插入+删除+维护最值SuperMemoTime Limit:5000MSMemory Limit:65536KTotal Submissions:8552Accepted:2801Case Time Limit:2000MSDescriptionY...
分类:
其他好文 时间:
2014-07-16 23:25:06
阅读次数:
195
字典树水题。 1 #include 2 #include 3 #include 4 5 typedef struct Trie { 6 bool v; 7 Trie *next[2]; 8 } Trie; 9 10 Trie *root;11 12 bool create(c...
分类:
其他好文 时间:
2014-07-10 14:20:40
阅读次数:
199
以sample为例子[2,12]区间的RoundNumbers(简称RN)个数:Rn[2,12]=Rn[0,12]-Rn[0,1]即:Rn[start,finish]=Rn[0,finish]-Rn[0,start-1]所以关键是给定一个X,求出Rn[0,X]现在假设X=10100100这个X的二进...
分类:
其他好文 时间:
2014-07-10 13:56:12
阅读次数:
179
简单字典树。 1 #include 2 #include 3 #include 4 5 #define MAXN 128 6 7 typedef struct Trie { 8 int count; 9 Trie *next[MAXN];10 Trie() {11 ...
分类:
其他好文 时间:
2014-07-10 13:43:34
阅读次数:
239
http://poj.org/problem?id=3709 给定一个长度为n的非严格单调递增数列a1,...,an.每一次操作可以使数列中的任何一项的值减小1。现在要使数列中的每一项都满足其他项中至少有k-1项和它相等。求最少要对这个数列操作的次数。输入:第一行为测试数据的组数T(1 ≤ T ≤ ...
分类:
其他好文 时间:
2014-07-10 10:43:41
阅读次数:
201
字典树。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 typedef struct Trie { 10 int in;...
分类:
其他好文 时间:
2014-07-10 00:25:58
阅读次数:
378
题目链接:http://poj.org/problem?id=2288
题意:每个点有一个权值Vi,找一条哈密顿路径,路径的权值来自三条:1 路径上的Vi之和 2 所有相邻点对ij的Vi*Vj之和 3 相邻连续三点i,j,k(并且三点要构成三角形)Vi*Vj*Vk之和。
解法:dp[st][i][j]表示从j走到i并且剩下集合st没有走的最大权值。关于路径书,在转移的时候顺便计算即可;...
分类:
其他好文 时间:
2014-06-28 09:07:03
阅读次数:
213
hdu 1081 & poj 1050 To The Max(和最大的子矩阵)...
分类:
其他好文 时间:
2014-06-28 08:16:30
阅读次数:
223
本题解法很多,因为给出的数据特殊性故此可以使用DFS和BFS,也可以使用01背包DP思想来解。
这里使用BFS,缺点是比DFS更加耗内存,不过优点是速度比DFS快。
当然也比DFS难写点:
int N, B;
int Height[21];
inline int mMin(int a, int b) { return a > b? b : a; }
inline int mMax(int a...
分类:
其他好文 时间:
2014-06-28 08:11:26
阅读次数:
238
2-sat经典建图,注意AND为1的时候,a=0要和a=1连边,b同理,因为此时a,b都不能为0。
OR为0时候,a=1要和a=0连边,b同理,因为此时a,b都不能为1。
#include
#include
#include
#include
#include
#include
using namespace std;
#define maxn 1005
vector g[maxn*2];
b...
分类:
其他好文 时间:
2014-06-28 07:52:39
阅读次数:
197