上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 89 下一页
摘要: "传送门" 完全看不出这思路是怎么来的…… 首先对于两个亲戚,他们监视范围的边界是他们连线的中垂线。那么对于一个亲戚来说它能监视的范围就是所有的中垂线形成的半平面交 然后如果某两个亲戚的监视范围有公共边,那么就在这两个亲戚之间连一条边,如果某个亲戚的监视范围和矩阵边界有公共边,那么就把这个亲戚和终点 阅读全文
posted @ 2018-11-29 16:22 bztMinamoto 阅读(144) 评论(0) 推荐(0) 编辑
摘要: "洛谷题面" 圆方树还真是个神奇的玩意儿…… 我们先考虑询问,对一个点双来说,经过这个点双的时候能走到的最小值肯定是这个点双内的最小值,那么只要对于每个点双把它的权值设成它里面所有点的最小值,那么就可以在建出广义圆方树之后用树链剖分求出路径最小值了 然而这里有询问,一个想法是对每个点双开一个mult 阅读全文
posted @ 2018-11-29 15:08 bztMinamoto 阅读(216) 评论(0) 推荐(0) 编辑
摘要: "传送门" 总算知道圆方树是个什么玩意儿了…… 首先我们构造出这个仙人掌的圆方树(不知道圆方树是什么玩意儿的可以看看yyb巨佬的 "博客" ) 先tarjan缩点,把每一个环都给建出一个方点,然后圆点和方点之间的边的权值为这个圆点到环上深度最小的点的最短距离(因为这是个环所以两边走的距离不一样的), 阅读全文
posted @ 2018-11-29 13:54 bztMinamoto 阅读(157) 评论(0) 推荐(0) 编辑
摘要: "传送门" 仙人掌直径,以前好像模拟赛的时候做到过一道基环树的直径,打了个很麻烦的然而还错了……今天才发现那就是这个的弱化版啊…… 如果是树的话用普通的dp即可,记$f[u]$表示$u$往下最长能伸多少。我们用一个类似tarjan的做法,在dfs的过程中记录dfn和low,如果某条边不在环内,那么这 阅读全文
posted @ 2018-11-29 12:54 bztMinamoto 阅读(200) 评论(0) 推荐(0) 编辑
摘要: "传送门" 好迷的思路…… 首先,如果只有第一问就是个贪心,排个序就行了 对于第二问,我们考虑这样的一种构造方式,每一次都判断加入一个区间是否会使答案变差,如果不会的话就将他加入~~别问我正确性我不会证~~ 我们先把所有的区间按左端点排个序顺便把互相包含的区间去掉(毕竟互相包含的时候短的肯定比长的优 阅读全文
posted @ 2018-11-28 12:46 bztMinamoto 阅读(159) 评论(0) 推荐(0) 编辑
摘要: "传送门" 首先这是个仙人掌,设$f[i][0/1]$表示当前节点$i$,选或不选的最大独立集 如果某条边是树边,那么直接树形dp的转移即可 考虑如果它的某棵子树恰好是一个环该怎么办 我们枚举这个环的顶端选或者不选,然后从这个环的底部开始遍历一遍即可 //minamoto include defin 阅读全文
posted @ 2018-11-27 22:24 bztMinamoto 阅读(178) 评论(0) 推荐(0) 编辑
摘要: "传送门" 暴力也行,退火也行,不是很明白为啥还要用半平面交…… 总之就是把原来的所有限制看成一堆半平面 ~~根据黄学长的博客~~塔肯定建在转折处最优 //minamoto include define fp(i,a,b) for(register int i=a,I=b+1;iI; i) temp 阅读全文
posted @ 2018-11-27 19:14 bztMinamoto 阅读(208) 评论(0) 推荐(0) 编辑
摘要: "传送门" 黄学长的代码好清楚啊……大概搞明白半平面交是个什么玩意儿了…… 设抛物线 $$y=ax^2+bx$$ 则 $$y1=y1$$ $$bx1 =y1 ax1^2$$ $$b =y1/x1 ax1$$ 然后就可以转化为一个关于$a,b$的不等式了……那么就二分答案,用半平面交判断又没有解就行了 阅读全文
posted @ 2018-11-27 16:08 bztMinamoto 阅读(124) 评论(0) 推荐(0) 编辑
摘要: "传送门" 半平面交的 "讲解" 然而这个代码真的是非常的迷……并不怎么看得懂…… //minamoto include define fp(i,a,b) for(register int i=a,I=b+1;iI; i) using namespace std; const int N=1e5+5 阅读全文
posted @ 2018-11-27 15:15 bztMinamoto 阅读(240) 评论(0) 推荐(0) 编辑
摘要: "传送门" 一道线段树合并 首先不难看出树上差分 我们把每一次修改拆成四个,在$u,v$分别放上一个,在$lca$和$fa[lca]$各减去一个,那么只要统计一下子树里的总数即可 然而问题就在于怎么统计。直接暴力肯定是要咕咕的,那么线段树合并就派上用场了 总之就是每个点开一个动态开点线段树,然后一遍 阅读全文
posted @ 2018-11-26 22:34 bztMinamoto 阅读(165) 评论(0) 推荐(0) 编辑
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 89 下一页
Live2D