上一页 1 2 3 4 5 6 7 8 9 ··· 26 下一页
摘要: 分析:这类问题的一遍描述,把一些对象分成两组,划分有一些代价,问最小代价。一般性的思路是,把这两组看成是S点和T点,把划分的代价和割边的容量对应起来求最小割。把S和可模版tem之间到达关系看作是属于核A,对称地,T对应B。模块tem安装在A上代价Ai,就是割断tem和T,连一条tem到T的容量为Ai... 阅读全文
posted @ 2015-11-08 16:47 陈瑞宇 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 分析:数学模型是三个集合A,B,C,(a,b,c)构成一个匹配。因为图一个点只能匹配一次,把a拆点a',a",在可以匹配的点上连边,s - b - a' - a" - c - t,然后最大流就好了。/**************************************************... 阅读全文
posted @ 2015-11-08 16:24 陈瑞宇 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 分析:这是一个时间和门的二元组(t,d)和人p匹配的问题,当我们固定d0时,(t,d0)匹配的人数和t具有单调性。t增加看成是多增加了边就行了,所以bfs处理出p到每个d的最短时间,然后把(t,d)和p连边,按t从小到大枚举点增广就好了。无解的情况只有一种,某个人无论如何都无法出去。/*******... 阅读全文
posted @ 2015-11-08 16:10 陈瑞宇 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 题目:POJ 3041 Asteroidshttp://poj.org/problem?id=3041分析:把位置下标看出一条边,这显然是一个二分图最小顶点覆盖的问题,Hungary就好。挑战:输出一组可行解。构造,已知二分图的两个点集U和V,s-U-V-t,在最大匹配的残留网络里,选从s出发能到达... 阅读全文
posted @ 2015-11-08 15:58 陈瑞宇 阅读(290) 评论(0) 推荐(0) 编辑
摘要: dp[i = 前i中sorter][j = 将min移动到j位置] = 最短的sorter序列。对于sorteri只会更新它右边端点r的位置,因此可以把数组改成一维的,dp[r] = min(dp[r],dp[j]+1), l≤j#include#include#include#include#in... 阅读全文
posted @ 2015-11-07 16:45 陈瑞宇 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法是可以分块的,而且幂的和也是具有线性的。不难得到Si = Si-1+A*Ai-1,Ai = A*Ai-1。然后矩阵快速幂就可以了。/********************************************************** ----------... 阅读全文
posted @ 2015-11-07 16:34 陈瑞宇 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 定义ai表示红色和绿色方块中方块数为偶数的颜色有i个,i = 0,1,2。aij表示刷到第j个方块时的方案数,这是一个线性递推关系。可以构造递推矩阵A,用矩阵快速幂求解。 1 /********************************************************* 2 *... 阅读全文
posted @ 2015-11-07 16:19 陈瑞宇 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 一道比较经典的数据结构题。可以用多种方式来做。一,分桶法(平方分解)。根据数字x的大小和区间内不大于x的数字数量cnt的单调性,可知第k大数kth对应的cnt应该满足cnt≥k,且kth是满足条件的最小的一个,可以二分下界。关键在于高效找出cnt,对于每个完整的桶,排序以后二分,不完整的桶就直接暴力... 阅读全文
posted @ 2015-11-07 15:30 陈瑞宇 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 今天来学习一下怎么用BIT区间更新的,BIT速度比线段树速度更快,也更好写。我们来看一下当给区间[l,r]整体加上一个常数c会前缀si发生什么变化?i #include#include#include#include#include#include#include#include#include#i... 阅读全文
posted @ 2015-11-07 14:11 陈瑞宇 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 很自然会想到是线段树,需要考虑维护什么信息。我们需要的答案是从原点到末端的坐标,这个信息可以看出是多个向量相加,所以我们在子区间维护左端点到右端点的一个向量。因为角度会发生改变,那么再维护一个左右区间之间的角度。那么父节点的向量就等于左孩子的向量加上右孩子旋转以后的向量。对于修改si和si+1之间的... 阅读全文
posted @ 2015-11-07 13:32 陈瑞宇 阅读(285) 评论(0) 推荐(0) 编辑
摘要: t和可到达具有单调性,二分就不多说了。下面说下O(1)的做法,实际上是等效转换,因为答案一定存在,如果在t0之前,那么分解一下直接按照只有v计算就可以了。反过来如果计算的结果大于t0,那么表示答案在t0之后。因为速度分量是可以独立累加的,因此可以找到一开始就只有w的等效的点。#includeusin... 阅读全文
posted @ 2015-11-03 21:07 陈瑞宇 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 26天以前做过的一道题,之前的做法是分治预处理,树套树在线修改,复杂度为O(nlogn+m*logn*logn),代码量较大。本来想学习一下cdq分治的,看到论文上的凸包、斜率就暂时放一边了,只知道和一般的分治的不同是左子问题可以用来解决右边的子问题。今天下午YY了一个离线的分治做法,也不知道叫不叫... 阅读全文
posted @ 2015-11-03 20:46 陈瑞宇 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 分析:三个01组合只有八种情况:000 s001 s010 0011 s100 s101 1110 s111 s可以看出只有010,101是不稳定的。其他都是稳定的,且连续地出现了1或0,标记为s。考虑连续的不稳定串的,例子:11010100 s s 110100 s ... 阅读全文
posted @ 2015-10-25 23:10 陈瑞宇 阅读(259) 评论(0) 推荐(1) 编辑
摘要: O(1)变换映射,最后一次性替换。#includeusing namespace std;typedef long long ll;const int LEN = 2e5+5;char s[LEN];char mp[26];int pos[26];//#define LOCALint main(){... 阅读全文
posted @ 2015-10-25 22:55 陈瑞宇 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 简单的物理问题,x = pt, y = l - qt。令x == y解出t,然后得出相遇位置。#includeusing namespace std;typedef long long ll;//#define LOCALint main(){#ifdef LOCAL freopen("in.... 阅读全文
posted @ 2015-10-25 22:52 陈瑞宇 阅读(151) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 26 下一页