摘要: "传送门" 这什么题啊,乱搞就算了,不知道SPFA已经死了吗 ~~不对那个时候好像还没死~~ 暴力就是删掉边后跑~~Dijkstra~~ SPFA 然后稍微分析一下,可以发现题目中要求的不经过最短路某条边的路径,一定是先在最短路上走,然后走不是最短路的边,然后走回在最短路上的点走完最短路,因为绕两次 阅读全文
posted @ 2019-02-21 22:22 ✡smy✡ 阅读(145) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这题又是我什么时候做的(挠头) 首先是个和SG函数有关的博弈论,SG=0则先手必败.显然一堆石子就是一个游戏,而若干堆石子的SG值就是每堆SG的异或和,所以算出每堆石子SG就能知道答案 然后怎么求SG,根据定义,一个局面SG是后继局面SG的$mex$,我们枚举某堆石子(有x个)分成多少堆 阅读全文
posted @ 2019-02-21 22:12 ✡smy✡ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: "传送门" ~~谢特运输~~ 先要搞懂题目是什么意思,简化版题意就是一棵有根树,要使得每个点都满足任意一个儿子的权值等于这个点权值除以儿子数量,问最少要修改多少个点的点权 就可以一边dfs求出每个点权值是点1的多少倍,显然一个方案至少要有一个点的权值没有被改,所以一个暴力是枚举某个点权值没有被改,然 阅读全文
posted @ 2019-02-21 17:29 ✡smy✡ 阅读(95) 评论(0) 推荐(0) 编辑
摘要: "传送门" 我是什么时候写的这题的qwq 首先,发现关键点的总数被限制了,很自然想到虚树,并且,对于一个关键点,他管理的点显然是一个联通块 然后把虚树先建出来,然后两次dfs,第一次是向祖先更新离每个点最近的关键点是哪个,然后第二次向子树更新,这样就能得到每个虚树上的点属于哪个集合 然后还要考虑不在 阅读全文
posted @ 2019-02-21 15:59 ✡smy✡ 阅读(140) 评论(0) 推荐(0) 编辑
摘要: "传送门" ~~nmdwsm~~ "自己看吧,不想写了qwq" 垃圾代码如下 ~~和题解完全不一样~~ cpp include define LL long long define uLL unsigned long long define il inline define re register 阅读全文
posted @ 2019-02-21 15:42 ✡smy✡ 阅读(244) 评论(0) 推荐(0) 编辑
摘要: "传送门" 考虑只有一个询问,怎么使用暴力枚举最快的得到答案.因为要求最大的,所以可以把链按权值从大往小排序,然后往后扫,找到一个没有交的就是答案,直接退出 一堆询问,可以考虑整体二分,先二分一个值$mid$,然后从前往后扫,如果是加入/删除操作,并且权值$ mid$就把这个操作贡献记上;如果是询问 阅读全文
posted @ 2019-02-21 09:15 ✡smy✡ 阅读(149) 评论(0) 推荐(0) 编辑
摘要: "传送门" 先考虑暴力,显然每次是把一个位置集合和另一个集合合并,同时维护答案,合并的过程中如果两个集合每有一对元素相邻,答案就减1 优化暴力的话,说到合并,怎么能不想起启发式合并呢?每次把一个大小小的集合并到大的上面,如果一个元素合并一次是$O(1)$,总复杂度就是$O(nlogn)$.实现的化可 阅读全文
posted @ 2019-02-21 09:02 ✡smy✡ 阅读(115) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这题真简单,~~直接把$CDQ$给ban掉了~~ 其实数据范围比较小可以直接二维树状数组,我们看数据范围,发现点的个数比N还小,可以考虑用一些~~奇怪~~的数据结构 ~~说的就是你,$KD tree$~~ $KD tree$就是一个K维的二叉查找树(是吧),一维的二叉查找树就是我们所熟悉 阅读全文
posted @ 2019-02-21 08:51 ✡smy✡ 阅读(173) 评论(0) 推荐(0) 编辑