09 2016 档案

摘要:http://codeforces.com/contest/675/problem/E 题目大意:有n个车站,每个车站只能买一张票,这张票能从i+1到a[i]。定义p[i][j]为从i到j所需要买的最小票数。问sigma(p)的和是多少。 思路:感觉我的dp定义能力还是太弱了啊,我刚开始还定义成dp 阅读全文
posted @ 2016-09-30 16:18 知る奇迹に 阅读(154) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/719/problem/E 题目大意:给你一串数组a,a[i]表示第i个斐波那契数列,有如下操作 ①对[l,r]区间+一个val ②求出[l,r]区间的和。 定义区间的和为该区间内每个a[i]所对应的斐波那契数列的和。 思路:线段树保存区间 阅读全文
posted @ 2016-09-30 11:55 知る奇迹に 阅读(162) 评论(0) 推荐(0)
摘要:struct mat{ LL a,b; mat(LL A=0,LL B=0):a(A),b(B){} bool isIdentity()const{ return a==1 && b==0; } mat operator+(const mat &rhs)const{ return mat( (a+r 阅读全文
posted @ 2016-09-29 21:10 知る奇迹に 阅读(136) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/qq_21110267/article/details/43540483 阅读全文
posted @ 2016-09-28 11:24 知る奇迹に 阅读(625) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/716/problem/D 题目大意:给你一些边,有权值,权值为0的表示目前该边不存在,但是可以把0修改成另外一个权值。现在,我们重新建路,问让s-t的最短路能否刚好是L? 思路:暴力修改即可。。。 //看看会不会爆int!数组会不会少了一 阅读全文
posted @ 2016-09-27 22:47 知る奇迹に 阅读(221) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-27 22:38 知る奇迹に 阅读(1) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/716/problem/C 题目大意:感觉这道题还是好懂得吧。 思路:不断的通过列式子的出来了。首先我们定义level=i, uplevel = i + 1,目前的uplevel,然后我们可以知道,之前求出来的restgrade%level 阅读全文
posted @ 2016-09-26 16:31 知る奇迹に 阅读(149) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-25 11:35 知る奇迹に 阅读(7) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-23 13:40 知る奇迹に 阅读(0) 评论(0) 推荐(0)
摘要:struct KM{ bool S[maxn], T[maxn]; int Lx[maxn], Ly[maxn]; int W[maxn][maxn]; int slack[maxn]; int myleft[maxn]; vector G[maxn]; int n; void init(int n){ this ... 阅读全文
posted @ 2016-09-23 13:39 知る奇迹に 阅读(132) 评论(0) 推荐(0)
摘要:点双 边双 阅读全文
posted @ 2016-09-23 13:38 知る奇迹に 阅读(348) 评论(0) 推荐(0)
摘要:vector G[maxn]; int pre[maxn], low[maxn], c[maxn]; int n, m; stack s; int dfstime, scc_cnt; void dfs(int u, int fa){ pre[u] = low[u] = ++dfstime; int len = G[u].size(); s.push(u); fo... 阅读全文
posted @ 2016-09-23 13:36 知る奇迹に 阅读(301) 评论(0) 推荐(0)
摘要:二维: 定义dp(i, j, k, L)表示以(i,j)为左上角,宽度为(2^k, 2^L)的区间内的某个数值 阅读全文
posted @ 2016-09-23 13:35 知る奇迹に 阅读(124) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/713 题目大意:给你一个长度为n的数组,每次有+1和-1操作,在该操作下把该数组变成严格递增所需要的最小修改值是多少 思路:遇到这类题型,最普遍的方法就是把严格递增给变为递增就好了,所以我们对所有的a进行处理,a[i]-=i,然后再dp。 阅读全文
posted @ 2016-09-23 11:12 知る奇迹に 阅读(273) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/714/problem/C 题目大意:有t个询问,每个询问有三种操作 ①加入一个数值为a[i]的数字 ②消除一个数值为a[i]的数字 ③给一个字符串s,s中分别表示0和1,0表示目前该位为偶数,1表示目前该位为奇数。然后询问目前数组中和s每 阅读全文
posted @ 2016-09-22 22:42 知る奇迹に 阅读(258) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/362 题目大意:给你一个序列,用冒泡排序法让他变为非递减的序列最少需要几次。在冒泡交换之间,你有一个swap操作,该swap操作是交换任意两个数组元素的位置,问在该操作后,所再需要的冒泡交换次数是多少,并输出方案数 思路:树状数组维护一下 阅读全文
posted @ 2016-09-21 21:55 知る奇迹に 阅读(556) 评论(0) 推荐(0)
摘要:题目大意:有n个人,两个人之间有相互的关系,问最大的关系数目。 思路:n-(最大匹配数/2)。因为这里给出的是n个人之间的两两关系 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> using namespace s 阅读全文
posted @ 2016-09-20 20:30 知る奇迹に 阅读(199) 评论(0) 推荐(0)
摘要:中文题,题目大意不说了。 思路:就是寻找最大匹配,最大匹配就是每次找增广路,如果存在增广,那就把增广路上面的边全部都翻转即可。这样说明能多匹配一个,+1即可。 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> usi 阅读全文
posted @ 2016-09-19 23:27 知る奇迹に 阅读(165) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/dxp498688071/archive/2011/01/18/1938303.html 阅读全文
posted @ 2016-09-19 23:02 知る奇迹に 阅读(86) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-17 23:39 知る奇迹に 阅读(4) 评论(0) 推荐(0)
摘要:紫书365 题目大意:给你n个全都是bug的东西,然后每次可以修复,给你修复前后的状态,问最后如果能把bug全都修复,最少需要多少时间。 思路:从最初状态开始,然后枚举bug即可。 表示priority里面的bool operator和单纯的sort的定义的大小于号是不一样的啊,如果你想用sort来 阅读全文
posted @ 2016-09-17 10:58 知る奇迹に 阅读(238) 评论(0) 推荐(0)
摘要:题目大意:给你n个点的图,求苗条度(最大边减最小编)尽量小的生成树 思路:sort以后暴力枚举区间即可 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> using namespace std; #define LL 阅读全文
posted @ 2016-09-16 21:25 知る奇迹に 阅读(206) 评论(0) 推荐(0)
摘要:题目大意:你在迷宫里,有n扇门,每个门有一个val,这个val可正可负,每次通过一扇门需要abs(x)分钟,如果这个门的val是正的,那么就直接出了迷宫,否则回到原地,问出去迷宫的期望是多少? 思路:设d表示出去的概率,然后我们可以按照第三个样例来举例d = 1/3 * 3 + 1/3( 6 + d 阅读全文
posted @ 2016-09-15 16:33 知る奇迹に 阅读(150) 评论(0) 推荐(0)
摘要:题目大意:给一个字符串,有插入和询问操作,每次往一个位置插入一个字符或者询问第p个位置的字符是什么。 思路:我们离线询问,逆向把所有的字符都插入给线段树,然后再查询就好了,每次都要记得插入线段树的最后的位置,然后要把这个位置给保存下来在O(1)查询即可。 //看看会不会爆int!数组会不会少了一维! 阅读全文
posted @ 2016-09-15 11:16 知る奇迹に 阅读(268) 评论(0) 推荐(0)
摘要:题目大意:给你n个人,每个人都有一个id,有m个询问,每次询问一个区间[l,r],问该区间内部有多少的id是连续的(单独的也算是一个) 思路:做了那么多离线+树状数组的题目,感觉这种东西就是一个模板了,23333,反正都是定义右区间的。 这题的关键难度就是如何定义id是连续的呢。我们每次往区间里面放 阅读全文
posted @ 2016-09-14 22:56 知る奇迹に 阅读(173) 评论(0) 推荐(0)
摘要:HDU 3938 题目大意:给你一个长度为n的数组a,定义区间[l,r]的val为区间内所有不同的数值之和。现在有m个询问,每次询问一个区间,问区间的val是多少。 思路:将所有的询问按照右端点排序。然后暴力枚举右区间,然后对之前出现过的val做一个标记即可,每次都更新这个标记就好了。 具体的和HD 阅读全文
posted @ 2016-09-14 20:59 知る奇迹に 阅读(178) 评论(0) 推荐(0)
摘要:题目大意:给你n个点,m条边,q个询问,每条边有一个val,每次询问也询问一个val,定义:这样条件的两个点(u,v),使得u->v的的价值就是所有的通路中的的最长的边最短。问满足这样的点对有几个。 思路:我们先将询问和边全部都按照val排序,然后我们知道,并查集是可以用来划分集合的,所以我们就用并 阅读全文
posted @ 2016-09-14 20:25 知る奇迹に 阅读(164) 评论(0) 推荐(0)
摘要:题目大意:给你一个长度为n的数组,问[L,R]之间<=val的个数 思路:就像标题说的那样就行了。树状数组不一定是离散化以后的区间,而可以是id //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> using name 阅读全文
posted @ 2016-09-13 22:39 知る奇迹に 阅读(181) 评论(0) 推荐(0)
摘要:题目大意:给一个数组a,他的顺序是严格的单调增,然后有如下三个操作 ①加入一个val到a数组里面去,加入的位置就是a[i-1]<val<a[i+1] ②删除一个a[i]=val的值 ③查询所有下标i%5=3的值 思路:线段树+离线 首先因为线段树中不支持添加、删除操作的,所以只能离线把所有的val离 阅读全文
posted @ 2016-09-13 21:08 知る奇迹に 阅读(197) 评论(0) 推荐(0)
摘要:①Landau's Theorem 比赛得分问题 ②a%b <= a/2(a >= b) ③某个数值a和任意数值的gcd不超过loga种 ④线段树中不支持添加、删除操作 一:Landau's Theorem https://en.wikipedia.org/wiki/Tournament_%28gr 阅读全文
posted @ 2016-09-13 19:12 知る奇迹に 阅读(169) 评论(0) 推荐(0)
摘要:题目大意:有K个工人,有n个墙,现在要给墙涂色。然后每个工人坐在Si上,他能刷的最大范围是Li,且必须是一个连续子区间,而且必须过Si,他刷完后能获得Pi钱 思路:定义dp[i][j]表示前i个人,涂色到j的最大的val是多少。 转移就是dp[i][j] = max(dp[i][j - 1], dp 阅读全文
posted @ 2016-09-12 22:21 知る奇迹に 阅读(328) 评论(0) 推荐(0)
摘要:题目大意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种. 子段就是表示是要连续的a[] 思路:固定右端点,预处理出所有的gcd,每次都和i-1的gcd比较,然后不断放入gcd即可。 然后就是树状数组的更新,枚举右端点即可。然后我们知道,大区间不如小区间来的实惠 阅读全文
posted @ 2016-09-12 15:45 知る奇迹に 阅读(538) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,有n-1条边,每条边都有方向,每个顶点有权值,给出weak pair的定义是val[u]*val[v] <=k,u是v的祖先,问有多少对这样的顶点 思路:创建线段树,通过dfs动态创建,每次都不断更新。因为我们只能是根节点开始往下的,所以我们遍历到兄弟节点的之前要把其他的兄弟节 阅读全文
posted @ 2016-09-11 23:03 知る奇迹に 阅读(520) 评论(0) 推荐(0)
摘要:题目大意:给你n个数,q次询问,每次询问区间[l, r],问a[i]%a[i + 1] % a[i + 2]...%a[j](j <= r)的值 思路:st预处理维护,再二分区间,复杂度n*(logn)*logn //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 # 阅读全文
posted @ 2016-09-11 21:26 知る奇迹に 阅读(226) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/703/problem/D 题目大意:给你一个长度为n数组,有q个询问,每次询问一个区间[l,r],这个区间的val就是所有数值为偶数个的数的亦或值。 思路:先求出所有区间的亦或和的val,然后利用树状数组离线维护,然后用所有区间^树状数组 阅读全文
posted @ 2016-09-09 21:23 知る奇迹に 阅读(242) 评论(0) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1196 题目大意:n个城市,m-1条路,每条路有一级公路和二级公路之分,你要造n-1条路,一级公路至少要造k条,求出所造路的最大所需的val的最小值. 思路:首先我们一定要明确这个不是一题求所有花费的最 阅读全文
posted @ 2016-09-09 16:21 知る奇迹に 阅读(192) 评论(0) 推荐(0)
摘要:int scan() { int res=0,ch; while(!((ch= getchar())>='0'&&ch='0'&&ch<='9') res=res*10+(ch-'0'); return res; } 阅读全文
posted @ 2016-09-08 15:28 知る奇迹に 阅读(156) 评论(0) 推荐(0)
摘要:首先看一下这个人的blog吧,讲的精炼 http://blog.sina.com.cn/s/blog_4a0c4e5d0101c8fr.html 然后再推荐一下这个人的blog:http://www.cnblogs.com/zinthos/p/3899565.html 这两个博客看了就差不多了。 自 阅读全文
posted @ 2016-09-08 15:12 知る奇迹に 阅读(151) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/588/problem/D 感觉吧,这道题让我做,我应该是不会做的。。。 题目大意:给出n,L,K。表示数组的长度为n,数组b的长度为L,定义数组b[i]=a[i%n]。然后数组b的最长的lis为k,问能有几组<=k的lis 条件如下: ① 阅读全文
posted @ 2016-09-07 22:22 知る奇迹に 阅读(244) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-05 19:01 知る奇迹に 阅读(4) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-05 18:58 知る奇迹に 阅读(1) 评论(0) 推荐(0)
摘要:状压dp的典型的例子就是其中某个数值较小。 但是某个数值较小也不一定是状压dp,需要另外区分的一种题目就是用暴力解决的题目,例如UVA818 紫书215 题目列表: ①校长的烦恼 UVA10817 紫书286 ②20个问题 UVA 1252 紫书287 ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 一:校长的烦恼 阅读全文
posted @ 2016-09-05 10:50 知る奇迹に 阅读(204) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-03 11:01 知る奇迹に 阅读(0) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/709 题目大意:给一个一维的坐标轴,上面有n个点,我们刚开始在位置a,问,从a点开始走,走n-1个点所需要的最小路程。 思路:我们知道,如果你一会儿走左一会儿左右,最后访问n-1个点一定只会让距离更长的,所以我们的策略是刚开始全都往一端走 阅读全文
posted @ 2016-09-02 19:23 知る奇迹に 阅读(113) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-02 11:10 知る奇迹に 阅读(2) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-01 20:27 知る奇迹に 阅读(0) 评论(0) 推荐(0)