OI - IceCab

about oi

【并查集】LA3027 合作网络(记录离根结点距离)

题目 LA3027 思路 刘汝佳蓝书,并查集第二道例题 代码 #include <cstdio> #include <cstdlib> #include <cstring&...

2018-10-11 00:06:47

阅读数:13

评论数:0

【图论】洛谷P1265 公路修建(最小生成树kruskal模板题)

题目 LP1265 思路 稍微有一点需要想的。本题实际求的就是最小生成树,但是可以去掉(s-1)个最小生成树里面的最长边。 代码 #include <cstdio> #include <cstdlib> #in...

2018-09-28 23:34:59

阅读数:28

评论数:0

【图论】洛谷P2921 在农场万圣节 (纯思维难度图论题)

题目 LP2921 思路 本题基本的思路是这样的,对于一个点,要么在环上要么在链上(链的另一头接着一个环)。对于环上点,求环大小。对于链上点,求链长度+环大小。 显然本题没有固定的算法,纯靠想,思维难度比较大。这里参考洛谷题解高票。 代码 ```#include <cstdi...

2018-09-28 00:09:06

阅读数:24

评论数:0

【图论】洛谷P1330 封锁阳光大学 (黑白染色问题)

题目 LP1330 思路 本题思维难度比较大,实际写起代码来很容易(直接一遍过),所以注意这个分析过程。 首先,满足possible的条件大概是这样的:每条边的两端,有且只有一端有河蟹。 这样的话就考虑一个图的黑白染色过程,对于一个图,如果存在合理的黑白染色(即没有黑白相邻),就possible,...

2018-09-27 00:05:13

阅读数:22

评论数:0

【图论】洛谷P2661 信息传递(拓扑思想求有向图最小环)

题目 LP2661 思路 题目看似很复杂,但实际就是要求这个有向图的最小环。 dfs效率太低,这里考虑拓扑思想求最小环。 先复习一下拓扑排序: 将有向图输出成一个序列,使得对于每个有向边u->v,在这个序列中u在v的前面。 求法:(1)选择一个没有直接前驱的顶点,并输出; ...

2018-09-26 00:14:30

阅读数:16

评论数:0

【图论】洛谷P1462 通往奥格瑞玛的道路(二分答案+SPFA)

###题目 LP1462 ###思路 本题使用二分答案。原因是本题的解,最大值最小是一类典型的可以二分答案的类型,其解是有连续性的,所以可以这样二分。每次二分完以后,用spfa或者其它最短路算法进行可行性判断即可。 ###代码 #include <cstdio&amp...

2018-09-18 00:29:36

阅读数:16

评论数:0

[图论] Vijos1446 最短路统计 (floyd)

题目 Vijos1446。统计两点之前所有最短路经过的点的个数。 思路 这道题一直受之前最短路计数的影响,一直想着再搞个cc数组表示两点之间所有最短路经过点的个数,在松弛的时候更新。后来想不出来。 看了正解,只需要想做一次floyd(其实看到数据范围就应该想到用floyd),然后枚举点k,若点k满...

2018-09-17 23:33:32

阅读数:26

评论数:0

【最短路】SPFA模板:最短路和判断负环

题目 LP3371 LP3385 思路 对于判断负环,当从起点到当前结点经过结点数大于n-1,跳出即可。 代码 单源最短路 #include <cstdio> #include <cstdlib&a...

2018-09-12 01:06:03

阅读数:29

评论数:0

【最短路】洛谷1119 灾后重建(floyd的DP本质分析)

题目 洛谷P1119 思路 暴力算法即每次询问情况做一次dijktra。 AC算法,本题考虑floyd的DP本质。 首先谈谈Floyed算法:Floyd算法的本质是动态规划,其转移方程 为:f[k][i][j] = min( f[k-1][i][j], f([k-1][i] [k]...

2018-09-11 23:48:15

阅读数:12

评论数:0

【最短路】洛谷P1144 最短路计数(注意过程取模问题)

题目 LP1144 思路 正常最短路,检测到可以松弛覆盖最短路个数,检测到路径相等最短路个数加上即可。 本题注意过程取模问题,程序过程中就要及时取模,不要到了输出的时候再,不然鬼知道会不会爆。 代码 #include <cstdio> #...

2018-09-06 18:30:34

阅读数:18

评论数:0

【最短路】UVa10048 噪音 (floyd求min/max问题)

题目 从a点到b点, 找到一条路径,使得这条路径上的所有噪音中最大的值是所有路径中最小的, 这个噪音值便是要求的。 思路 首先询问次数较多,考虑多源。这个路径结点最大值最小问题,其实类似于最短路,floyd改一下即可。 代码 #include <cstd...

2018-09-05 00:38:16

阅读数:20

评论数:0

【多源最短路】 UVa247 电话圈 (求传递闭包)

题目 如果两个人互相打电话(直接或间接),则说他们在同一个电话圈里。例如,a打给b,b打给c,c打给d,d打给a,则这四个人在同一个电话圈里;如果e打给f但f不打给e,则不能推出e和f在同一个电话圈里。输入n(n≤25)个人的m次电话,找出所有的电话圈。人名只包含字母,不超过25个字符,且不重复...

2018-09-04 23:58:52

阅读数:13

评论数:0

【图论】单源最短路的三种算法

题目 例题可以用洛谷P3371和P4779 思路 1.dijstra 完美做出,但条件是不能有负权边,堆优化以后复杂度是O(mlogn)。 2.bellman-ford 主要用于有负权边的情况,理论复杂度是O(nm),但队列优化以后往往远小于这个复杂度。 3.floyd 多源最短路...

2018-09-04 00:00:17

阅读数:57

评论数:0

codevs1081 树状数组的区间修改和单点查询

题目 给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? codevs1081 思路 代码 #include <cstdio> #include <cstdlib&...

2018-08-09 19:01:49

阅读数:15

评论数:0

codevs1080 树状数组模板题

题目 codevs1080 思路 一、树状数组 1.单点修改,区间查询: < O(logn)。 2.代码量小于线段树,但功能不如线段树多。 3.查询只支持1~i的和,所以求区间和要用前缀和的形式。 (具体树状数组的代码实现是固定的,看代码) 代码 ...

2018-08-09 08:59:26

阅读数:23

评论数:0

[并查集] codevs1073 家族(并查集的一般写法和两种优化)

题目 codevs1073 思路 即给一个无向图,判断两个结点是否连通。 并查集 路径优化的内容上面讲了,对于另一个优化:按秩合并: 在合并两个子树的时候,分别设两个子树的结点个数为tot[i],tot[j]。若tot[i]>tot[j],那么理想的方法是把j...

2018-08-08 19:58:07

阅读数:23

评论数:0

[二叉堆] 洛谷P1090 合并果子

题目 LP1090 思路 本题需要画一下图 可以观察到: 每个果子的代价:重量*在树中深度 考虑如果构造一个深度越深的结点权值越小,就能达到最小权值。那么本题的做法就变成了每次选最小的两堆果子合并。这个可以用二叉堆来做。 代码 #include <c...

2018-08-08 19:02:28

阅读数:33

评论数:0

[堆] 洛谷P3378 二叉堆模板

题目 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 二叉堆 支持两种操作 1.往一个集合加一个数。 2.从集合中删去一个优先值最大的元素。 规则 每...

2018-08-08 11:17:44

阅读数:55

评论数:0

[二分] 洛谷P1083 借教室 (二分答案+差分)

题目 LP1083 思路 二分答案 首先可以看出,最后答案ans存在明显的单调性,这个单调性是1或0的单调性,有点特殊,大概是这样的: 所以就可以二分答案,二分出来的答案应该满足这样的规律:对于ans个订单,教室够借。对于ans+1个订单,教室不够借。 这里给出二分的模板:(来自W...

2018-08-07 18:36:33

阅读数:24

评论数:0

[二分] WYF快速幂魔改版

题目出处 qbxt夏北京二期,提高组精英版,WYF出题。 题目 给一个n个数的序列a,需要进行m次询问,每次询问需要计算a[a[a[x…]]]的值,其中括号有t对。 输入第一行有n,m,t三个数,第二行有n个数表示序列a,第三行有m个数分别表示每次询问。 输出m个数,分别表示每次询问所得...

2018-08-06 21:51:21

阅读数:53

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭