题意:求一个动态区间的最大连续和。静态版本的O(n)算法显示不适用了,但是可以用线段树分治,因为一个连续和要在两边的区间,要么跨越两边,对于一个结点维护最大前缀和,后缀和,子区间连续和。题目要求输出区间,所以还要保存连续和最大的区间,以及前缀和,后缀和的位置。为了维护最大前缀和以及后缀和还需要一个区...
分类:
其他好文 时间:
2015-09-08 20:08:24
阅读次数:
296
枚举中间的人,只要知道在这个人前面的技能值比他小的人数和后面技能值比他小的人数就能计算方案数了,技能值大的可有小的推出。因此可以利用树状数组,从左到右往树上插点,每个点询问sum(a[i]-1)就是前面的技能值比它小的人数,然后再从右边往左重复一遍就可以算出答案。#includeusing name...
分类:
其他好文 时间:
2015-09-08 18:18:46
阅读次数:
161
据说这是一道Word Final的题,Orz。。。原题链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3136题意:给你一个联通图,让你...
分类:
其他好文 时间:
2015-09-08 12:17:36
阅读次数:
139
本题最关键的地方在于,对于一个单源的最短路径来说,如果最短路树上的边没有改变的话,那么最短路肯定是不会变的,所以只要枚举删掉最短路树上的边。这样的时间复杂度就能过了。瞎搞真删边,结果T了。。。#includeusing namespace std;const int maxn = 102, maxm...
分类:
其他好文 时间:
2015-09-03 00:28:15
阅读次数:
194
题目的要求一个最小值最大,二分即可,但是怎么判断呢?飞机早或者晚两种状态,可以用一个布尔变量表示,假设当前猜测为m,那么根据题意,如果x和y所对应的时间冲突那么就是¬(xΛy)化成或的形式(¬x)V(¬y),就可以套用twoSAT了。关于2-SAT,个人的简单理解是,把逻辑推导变成一条有向边,然后跑...
分类:
其他好文 时间:
2015-09-02 02:00:37
阅读次数:
117
用tarjan找强连通分量,在一个强连通分量点已经等价缩点以后形成一个DAG,计算入度为0的点数a,出度为0的b,取其中大的一个。特判强连通分量数为1的情况。看懂tarjan算法以后还是比较简单的#includeusing namespace std;const int maxn = 2e4+5;c...
分类:
其他好文 时间:
2015-09-02 00:03:56
阅读次数:
163
题目大意:有n个点,m条边,你的任务是选择其中的一些边,使得每条被选择的边组成一些没有公共边的回路,且每个城市恰好在其中的k个回路上,被选择的边的总权值要求最小解题思路:k个回路,每个城市都有,表示每个城市的入度和出度都是k,所以以此建边
源点连向每个城市,容量为k,费用0
每个城市连向汇点,容量为k,费用0
边连接两个城市,容量为1,费用为权值跑最小费用最大流#include <cstdio...
分类:
其他好文 时间:
2015-08-31 10:14:31
阅读次数:
127
题目大意:有n个点,m条边,每条边的容量为ci,费用为ai* x^2(x为流量,ai为所给系数)
现在问能否将k个单位的货物从点1运输到点n,且费用最小解题思路:拆边,将每条边拆成ci条边,每条边的费用分别为ai * 1, ai * 3, ai * 5…容量都为1,在容量相同的情况下,会选择费用少的流,这样流过的边累加起来的费用刚好为 ai * 流量^2#include
#inc...
分类:
其他好文 时间:
2015-08-31 10:12:49
阅读次数:
162
题目大意:有n个星球,你的任务是用最短的时间把k个超级计算机从S星球运送到T星球。每个超级计算机需要一艘飞船来运输,行星之间有m条双向隧道,每条隧道需要一天时间来通过,且不能有两艘飞船同时使用同一条隧道,隧道不会连接两个相同的行星,且每一对行星之间最多只有一条隧道解题思路:按照大白书上的思路是拆点
比如运送的时间为T,那么就把每个点u拆成T + 1个,分别为u0, u1 … uT,分别对应的是第i...
分类:
其他好文 时间:
2015-08-31 01:12:56
阅读次数:
226
题目大意:有n支队伍进行比赛,每支队伍需要打的比赛次数相同,每场比赛恰好有一支队伍胜,一支队伍败,给出每支队伍目前胜的场数和败的场数,以及每两支队伍还剩下的比赛场数,确定所有可能得冠军的队伍解题思路:枚举每支队伍,然后让该队伍在接下来的所有比赛中都获胜。
建图的话,就比较简单了,源点连向每场比赛,容量为比赛次数
每场比赛连向比赛队伍,容量为比赛次数
接着每支队伍连向汇点,容量为枚举队伍的总胜场...
分类:
其他好文 时间:
2015-08-31 01:11:00
阅读次数:
209