Evanyou Blog 彩带
摘要: "传送门啦" 看起来是一个最短路问题,但是引入了速度限制,就要写一下二维最短路了。 $ dis[i][j] $ :表示到i这个点,速度为j的最短时间。 include include include include include using namespace std; const int max 阅读全文
posted @ 2018-11-05 20:31 Stephen_F 阅读(106) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 重要城市有三个性质如下: 1.重要城市能对其他两个不同城市的最短路径做出贡献 2.重要城市具有唯一性,如果两不同城市之间的最短路径有两种中间城市情况,那么这两个中间城市可以彼此代替,就都不能成为重要城市 3.重要城市具有替代性,对于两不同城市间的一种最短路径情况,该路径上所有中间城市皆 阅读全文
posted @ 2018-11-05 19:23 Stephen_F 阅读(100) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 这个题说白了就是求一个次短路。 方法是我们先跑一遍最短路,记录下最短路上每一个点的前驱。然后我们将最短路上每一条边都标记一次,分别跑一边最短路,求出最短路径即可。 在这我们不用特殊判断是否是第二条次短路还是最短路。因为我们求出的 $ ans $ 是一个最小值。 include incl 阅读全文
posted @ 2018-11-05 18:17 Stephen_F 阅读(145) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 核心思想:两遍最短路. 1号点去各地的时间直接套最短路模板,各地到1号点时间用逆向思维,视为求1号点沿反边到各地的时间即可. 阅读全文
posted @ 2018-11-05 14:12 Stephen_F 阅读(81) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 一个裸的最小生成树,输出 $ No Answer $ 的情况只有 $ k include include include using namespace std; const int maxn = 1005; const int maxm = 10005; inline int rea 阅读全文
posted @ 2018-11-05 10:59 Stephen_F 阅读(127) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 先跑一遍最短路,将最短路的路径记录下来,然后枚举每一条最短路的边,将其断掉,记录此时的1 n的时间,取其中最大的一个时间即为所求。 (通过 $ cut[][] $ 和 $ f[] $ 进行操作) 注意这个题是个稠密图,可能会卡 $ spfa $ ,所以我用了堆优化 $ dijk $ 。 阅读全文
posted @ 2018-11-05 10:32 Stephen_F 阅读(125) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 一个拓扑排序的题,感觉题目好难懂。。。 include include include include using namespace std; const int maxn = 105; inline int read(){char ch = getchar();int f = 1 阅读全文
posted @ 2018-11-05 09:00 Stephen_F 阅读(147) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 一个很摸不清头脑的树形dp 状态: $ dp[i][0] $ :选自己 $ dp[i][1] $ :选了至少一个儿子 $ dp[i][2] $ :选了至少一个孙子 覆盖了自己的 $ dp[i][3] $ : 儿子孙子全部覆盖 $ dp[i][4] $ :孙子全部覆盖 并没有覆盖自己 初 阅读全文
posted @ 2018-11-04 20:04 Stephen_F 阅读(264) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-11-04 18:22 Stephen_F 阅读(3) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 基本思想就是二分寻找答案,然后用树状数组去维护有几个比这个二分出来的值大,然后就没有了; 数据要离散,这个好像用map也可以,但是不会; 那怎么离散呢? 我们先把a数组读入并复制给s数组,然后排序a; 这个时候a数组就有序了,我们就可以把s数组里的值通过二分找到其在a数组里的下标,这样 阅读全文
posted @ 2018-11-02 15:53 Stephen_F 阅读(126) 评论(0) 推荐(0) 编辑