裸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
题目链接: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
题目大意:
16*16的数独。
思路分析:
多说无益.
想说的就是dancing links 的行是按照
第一行第一列填 1
第一行第二列填 2
……
第一行第十五列填15
第一行第二列填 1
……
第二行。。。。
列的纺织则是
第一行放1,第一行放2,。。第十六行放16.。。第一列放1.。第一列放2.。。第十六列放16.。第一块区域放1 。。。。...
分类:
其他好文 时间:
2014-06-28 08:14:30
阅读次数:
303
本题解法很多,因为给出的数据特殊性故此可以使用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