![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
problems
文章平均质量分 74
AcrossTheSky
这个作者很懒,什么都没留下…
展开
-
[Usaco2007 Dec]队列变换 贪心+SA
首先,这是一道贪心题。 先来看一个简易版本的题目: 给你两个字符串S1 S2,答案串最开始是空的, 每次都可以从两个字符串开头拿一个字符到答案串末尾。直到两个字符串全部取完。 现在要求一个操作序列。 使得答案串的字典序最小。 这显然是一个贪心的过程。 如果s1串的首字符小于s2串首字符,则取s1的首字符,反之,则取s2串的首字符。。。 到此为止的贪心都是很显然的, 问题在于原创 2014-01-29 17:31:12 · 883 阅读 · 0 评论 -
[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 · 709 阅读 · 0 评论 -
[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 · 1055 阅读 · 0 评论 -
SPOJ QTREE LCT
单旋splay的LCT 刚好卡过。。 #include #include #include #include #include #define MAXN 100000 using namespace std; struct node; node *pt; struct node { node *l,*r,*f; int val,size,mx; no原创 2014-03-03 20:46:34 · 821 阅读 · 0 评论 -
[Tjoi2013]循环格
先mark一下原创 2014-02-21 20:08:38 · 630 阅读 · 0 评论 -
JZPKIL
开始看JZPKIL了。。 先挖个坑原创 2014-02-02 20:47:58 · 1473 阅读 · 0 评论 -
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 · 2466 阅读 · 0 评论 -
[Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
水题。 找出每个基环之后求每个点的深度就好了 #include #include #include #include #include #define next nextt #define MAXN 200000 using namespace std; queue q; int n,m,cnt; bitset incir,vis; int next[MAXN],mak[MAX原创 2014-02-01 21:20:56 · 787 阅读 · 0 评论 -
[Apio2012]dispatching 可合并堆 斜堆
一道简单的贪心题。很显然是维护一个数据结构,从叶子向根逐级合并,并随时更新答案。 我是用斜堆的,代码量会比splay启发式合并要小一些。 斜堆可以参考wiki:http://zh.wikipedia.org/wiki/%E6%96%9C%E5%A0%86 每个节点维护一个大根堆,代表这个点子树的薪水。这里可以用斜堆/左偏树/二项堆/Fibonacci堆…… 从原创 2014-02-02 13:55:46 · 896 阅读 · 0 评论 -
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 · 1121 阅读 · 0 评论 -
[Zjoi2013]K大数查询 整体二分/树套树
这题也算树套树裸题了吧。 网上的做法大都是线段树套平衡树,线段树套线段树,树状数组套线段树…… 但是以上的方法代码量较大。 因为本题没有强制在线。。 所以自然就会想到离线做法。 这题有一个很好的离线做法:整体二分。 关于整体二分,《浅谈数据结构题的几个非经典解法》这个论文很好。 核心思想就是类似快排快速划分的过程。。 这个算法还是很快的,关键是好写。没原创 2014-01-31 17:41:44 · 1571 阅读 · 0 评论 -
BZOJ1458 士兵占领 最大流
这是一道网络流好题。 门外都在放鞭炮,没心思码字了。。 就简单说说思路。 先判断无解的情况: 只要有一行(或列)能放士兵的格子数小于L[i](或C[i])则无解。这很显然对吧。 在有解的情况下,把所有空格子都放上士兵显然是可以满足约束条件的,但是不够优。我们要做的就是填满士兵后,再拿掉尽可能多的士兵,并要满足约束条件。 所以可以如下构图: 源S向每一行连边原创 2014-01-30 15:20:38 · 1671 阅读 · 1 评论 -
[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 · 939 阅读 · 0 评论 -
[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 · 1053 阅读 · 0 评论