- 博客(16)
- 收藏
- 关注
原创 [Violet 1]木偶 SRM308 DIV1 1000pt
dp好题 #line 2 "Wardrobe.cpp"#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-03-07 22:05:17
1136
原创 [Violet 2]After 17 dp 背包
开始做Violet系列了 After 17需要一点简单的数学推导 首先,x和y显然可以分开来计算。 然后,在最优解中向量(x,y)一定是在矩形的角上。 剩下的就是把要求的式子表示出来。 以x为例 设S=x1+x2+x3+……+xn 然后有 ans=[x1(S-x1)+x2(S-x2)+……+xn(S-xn)]/2 = [S^2-(x1^2+x2^2+……+xn^2)]
2014-03-07 20:36:10
789
原创 [JLOI2011]飞行路线 分层图最短路
裸的分层图最短路,SPFA+SLF解决 bitset数组下标开反 RE了半天。。。。 #include #include #include #include #include #include #define MAXN 210000#define FR first#define SC second#define MP make_pair#define INF 1
2014-03-05 21:10:23
1120
原创 SPOJ QTREE LCT
单旋splay的LCT 刚好卡过。。 #include #include #include #include #include #define MAXN 100000using namespace std;struct node;node *pt;struct node{ node *l,*r,*f; int val,size,mx; no
2014-03-03 20:46:34
895
转载 BZOJ1042: [HAOI2008]硬币购物
转自 http://www.cnblogs.com/zhuohan123/p/3284272.html这个相当神奇,用容斥原理做背包。首先,我们要先处理出四种钞票都不限的方案数。对于每一个询问,我们利用容斥原理,答案为:得到S所有超过数量限制的方案数-硬币1超过限制的方案数-硬币2超过限制的方案数-硬币3超过限制的方案数-硬币4超过限制的方案数+硬币1、2超过限制的方案数+
2014-02-02 15:42:33
959
原创 [Apio2012]dispatching 可合并堆 斜堆
一道简单的贪心题。很显然是维护一个数据结构,从叶子向根逐级合并,并随时更新答案。 我是用斜堆的,代码量会比splay启发式合并要小一些。 斜堆可以参考wiki:http://zh.wikipedia.org/wiki/%E6%96%9C%E5%A0%86 每个节点维护一个大根堆,代表这个点子树的薪水。这里可以用斜堆/左偏树/二项堆/Fibonacci堆…… 从
2014-02-02 13:55:46
981
原创 BZOJ1180 [CROATIAN2009]OTOCI
裸LCT。。 不知为何单旋splay比双旋快。。。。 #include #include #include using namespace std;struct node{ node *l,*r,*f; int val,sum,flip; node(){l=r=f=NULL;flip=0;sum=val=0;} node(int _val) {l
2014-02-02 11:48:51
1197
原创 [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
水题。 找出每个基环之后求每个点的深度就好了#include #include #include #include #include #define next nextt#define MAXN 200000using namespace std;queue q;int n,m,cnt;bitset incir,vis;int next[MAXN],mak[MAX
2014-02-01 21:20:56
852
原创 BZOJ2738 矩阵乘法(梁 盾) 整体二分
这道题还是整体二分。。 在二维树状数组外面套一个二分 但对于这道题来说,整体二分的复杂度是 Q*log(Q)^3 不如分块优(Q*sqrt(Q))#include #include #include #include #define INF 1000000000#define MAXN 350000#define lowbit(x) ((x)&(-(x)))using
2014-02-01 20:06:49
2554
原创 [Zjoi2013]K大数查询 整体二分/树套树
这题也算树套树裸题了吧。 网上的做法大都是线段树套平衡树,线段树套线段树,树状数组套线段树…… 但是以上的方法代码量较大。 因为本题没有强制在线。。 所以自然就会想到离线做法。 这题有一个很好的离线做法:整体二分。 关于整体二分,《浅谈数据结构题的几个非经典解法》这个论文很好。 核心思想就是类似快排快速划分的过程。。 这个算法还是很快的,关键是好写。没
2014-01-31 17:41:44
1640
原创 BZOJ1458 士兵占领 最大流
这是一道网络流好题。 门外都在放鞭炮,没心思码字了。。 就简单说说思路。 先判断无解的情况: 只要有一行(或列)能放士兵的格子数小于L[i](或C[i])则无解。这很显然对吧。 在有解的情况下,把所有空格子都放上士兵显然是可以满足约束条件的,但是不够优。我们要做的就是填满士兵后,再拿掉尽可能多的士兵,并要满足约束条件。 所以可以如下构图: 源S向每一行连边
2014-01-30 15:20:38
1763
原创 [Usaco2007 Dec]队列变换 贪心+SA
首先,这是一道贪心题。 先来看一个简易版本的题目: 给你两个字符串S1 S2,答案串最开始是空的, 每次都可以从两个字符串开头拿一个字符到答案串末尾。直到两个字符串全部取完。 现在要求一个操作序列。 使得答案串的字典序最小。 这显然是一个贪心的过程。 如果s1串的首字符小于s2串首字符,则取s1的首字符,反之,则取s2串的首字符。。。 到此为止的贪心都是很显然的, 问题在于
2014-01-29 17:31:12
950
原创 [Usaco2008 Dec]Hay For Sale 购买干草
先从silver的题开始吧 裸背包#include #include #include using namespace std;bitset f;int v,n;int a[100000];int main(){ cin>>v>>n; f.reset(); f[0]=true; for (int i=1;i<=n;++i) scanf
2014-01-27 22:14:39
1020
原创 Codeforces 336A【 Vasily the Bear and Triangle 】
开始做CF了,第一篇解题报告。Problems:http://codeforces.com/problemset/problem/336/ARound #195 Div.2的A题, 按照四个象限讨论一下即可tag:数学 空间复杂度:O(1)时间复杂度:O(1)code:#include#includeusing namespace std;in
2013-08-14 12:06:10
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅