- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 codeforces 1046_problem_A AI robots (cdq分治)
传送门题意:给n个机器人,机器人都有自己的位置x,可见范围r,智商q,问两个机器人互相可见,并且智商相差不多于k的对数有多少。思路:运用分治思想,第一维对于r非递减排序,分治,考虑对于左半部分的每一个机器人,右半部分有多少个和它配对的,因为r及从小到大排序,所以只要左能看见右,右就一定能看到左,第二维对q排序,然后用树状数组维护x,对于q要保证是和枚举的左边的那个机器人智商保持在k的范...
2018-09-25 14:08:54 336
原创 HDU 4408 最小生成树计数
传送门思路:首先需要了解Matrix_Tree定理1.设 G是无向图的邻接表,D是无向图各个点的度数2.令M=D-G,则M的任意n-1阶余子式的行列式值的 绝对值, 就是无向图生成树的个数应注意的是邻接表的值不只是0,1值,也就是说,当图出现重边的话,邻接表该位置累加。这道题思路,对于最小生成树,克鲁斯卡尔算法是将边从小到大排序,对于同一大小的边,在最小生成树中用到的数量是...
2018-09-21 13:05:35 230
原创 HDU6212 区间dp 好题
传送门思路:要是对原串区间dp感觉无从下手,需要重要的一步就是转化,转化成连续的01数量串,比如10010=1211这样的话每隔一个就是同一类的。对于单个数字,需要的就是3-a[i],对于一个区间,可以由三类转移1. 把区间分成 两份 例如 11 00 ans=22.中间消去两头相遇消去 例如11 00 1 ans=13.三块相遇消去 例如 1 00 1 ...
2018-09-13 15:34:46 165
原创 Gym - 101201H
题意:有k个区间,用他们填满1~n,不允许重叠,问留下的空隙最少是多少思路:可以从两方面考虑,第一个是正面考虑,转移方程dp[i]=min(dp[j]+l[i]-r[j]+1) (r[j]<l[i])这样的话将方程移项 dp[i]-l[i]-1=min(dp[j]-r[j]),所以用树状数组维护dp[j]-r[j]的最小值就可以了为了计算方便,添加一个终点区间(n+1,n+1...
2018-09-08 11:02:01 197
原创 CodeForces - 474E dp+离散+线段树优化
这个题跟这个题类似,都是一维dp,n^2复杂度,但是需要优化,感觉这种题数据小点1e4的话优化成nsqrt(n)就可以,1e5的话,要优化成nlog(n),这个题是用线段树维护的最大值。因为一个数只能由前面1~val[i]-d,或者val[i]+d~INF转移过来,所以我只要查询值在这个范围之内dp值得最大值就好,因为值是在1e15得范围,所以需要离散化。因为要输出路径,所以用...
2018-09-07 19:29:04 207
原创 HDU 5009(dp + 双向链表的巧妙运用)
http://acm.hdu.edu.cn/showproblem.php?pid=5009这个题转移好想,时间优化不好想, 看了别人的思路,用双向链表优化,自己想到去链表里查找已经出现的元素也会花很多时间,一直没想出来,看了代码才知道,可以用map存一下前一个的位置,当有重复出现的时候, 只要将那个元素的删掉即可,也就是把他的前驱和后继相连,也就是为什么用双向链表了。因为如果一个一个涂也...
2018-09-07 15:25:39 213
原创 落谷3773 数论+dp递推
https://www.luogu.org/problemnew/show/P3773这个题就用到了上篇博客https://blog.csdn.net/du_lun/article/details/82414086,遍历子集的小技巧,题意是找有多少个长度>=2的下降子序列,满足mod2的lucas,并且值大于0由lucas可以知道C(x,y)=C(a1,b1)*C(a2,b2)…...
2018-09-05 15:30:21 204
原创 计蒜客 宝藏 状压dp (遍历二进制中一的子集的小技巧)
传送门思路是参照着这个博客写的https://blog.csdn.net/a1035719430/article/details/80488083dp的一个状态是点集,这个是很好想的,但是加上路径上宝藏的数量就不好想了,因为所有路径都挖完是一颗树,我们可以用一维表示状态中最大的深度,即dp[i][s]表示深度为i,包含s集合点的时候最小值转移就是dp[i][t]=min(dp[i][t...
2018-09-05 09:14:09 325 3
原创 CF1037E图论思维(set::erase的用法)
传送门#include<bits/stdc++.h>using namespace std;#define fir first#define sec secondconst int N=2e5+10;typedef pair<int, int> pii;pii e[N];set<int> G[N];bool removed[N];int ...
2018-09-04 19:12:30 201
原创 2018南京网络赛 Skr(manacher奇偶模板+hash模板)
传送门题意:给一个只有‘1’~‘9’的串,求不同回文串代表数值的和思路:马拉车找回文串,hash标记不同,hash方法求数值#include<bits/stdc++.h>using namespace std;const int N=2e6+10;const int mo=1e9+7;typedef long long ll;typedef unsigned l...
2018-09-02 18:26:13 240
原创 素数线性筛模板
参考于该博客 int Mark[MAXSIZE]; int prime[MAXSIZE]; //判断是否是一个素数 Mark 标记数组 index 素数个数 int Prime(){ int index = 0; memset(Mark,0,sizeof(Mark)); for(int i = 2; i < MAXSIZE; ...
2018-09-01 20:38:10 166
原创 南京网络赛E题(状压)
传送门dp[i]代表i二进制代表的的题目全做完的最大值。dp[i]=max(dp[i], dp[pre]+a[i]*num[i]+b[i]) pre是去掉一题的前一个状态。重要的是初始化,对于不可能转移到的状态要置为-INF#include<bits/stdc++.h>using namespace std;const int N=1e6+1e5;typed...
2018-09-01 18:24:13 132
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人