摘要: 题面 一个线性时间复杂度的做法 找一条直径(两遍dfs),然后从一个端点开始枚举长度不超过s的另一端点(由贪心的性质显然当长度刚好小于s时比较优 ) 然后偏心距的下界大于这个端点到直径两端点的最小值 然后对于一条路径的偏心距我们发现如果去一个点要经过你的路径,这个距离显然是没有用的(因为从路径上到这 阅读全文
posted @ 2019-07-15 14:17 [jackeylove] 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题面 一维数组f[high]=life 循环d~0 如果这个高度的生命值不小于这个垃圾丢下来的时间 如果 高度+这个垃圾的高度不小于d,就输出这个垃圾丢下来的时间 不然 这个高度+这个垃圾的高度 的生命值=max(d~0的生命值),即不吃垃圾用它来堆,此时高度+=这个垃圾的高度 这个高度的生命值+= 阅读全文
posted @ 2019-07-15 14:14 [jackeylove] 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题面 每个点的答案是它所有前驱节点的答案加1,即f[i]=max(f[i],f[j]+1); 考虑空间复杂度用邻接表存图,在拓扑排序同时DP就好了不用再外面再做什么工作 阅读全文
posted @ 2019-07-15 14:12 [jackeylove] 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题面 设dp[i][k]表示前i个字符,使用了k次交换后很获得的最多jz串数。 然后我们枚举最后一次交换的位置,即枚举一个j,然后交换i与j,用dp[j][k-1]+1去更新dp[i][k] 阅读全文
posted @ 2019-07-15 14:10 [jackeylove] 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题面 第i个位置的树与第i+1个位置的树相邻,特别地,第1个位置的树与第n个位置的树相邻。 阅读全文
posted @ 2019-07-15 14:09 [jackeylove] 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题面 总结一下这种类似DP题目的思路和技巧吧。 1、破环成链。没有太多的技巧性,具体而言就是把数据存储两遍,使得环形的数据可以链式展开,便于我们去DP。 但最后一定要记得扫一遍答案,取F[i][i+N-1],i:1->N中的最大/小值。 2、前缀和。这个东西并不是在所有情况下都适用,但使用起来真的很 阅读全文
posted @ 2019-07-15 14:07 [jackeylove] 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题面 最长单调上升子序列 阅读全文
posted @ 2019-07-15 14:05 [jackeylove] 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题面 一通丧心病狂的bfs 阅读全文
posted @ 2019-07-15 13:57 [jackeylove] 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题面 bfs 注意事项 ①鬼畜死循环TLE ②装置不成对 ③本来最优解被传送门的#给盖住了,必须新开一个数组来存 ④步数没有+对,因为遇到传送门是跳着走的 阅读全文
posted @ 2019-07-15 13:54 [jackeylove] 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题面 这一题就是用floyd求一遍最短路,然后找出每一个点联通的距离它最远的点,然后记录下来,最后再枚举任意两个不连通的点,将它们联通,这样就可以根据两点之间的距离公式以及两个点各自的最大距离,就是新连接的两个牧场的直径 阅读全文
posted @ 2019-07-15 13:49 [jackeylove] 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题面 裸的最短路版子 阅读全文
posted @ 2019-07-15 13:47 [jackeylove] 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题面 一个裸的digstra 阅读全文
posted @ 2019-07-15 13:45 [jackeylove] 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题面 先跑一遍最短路,将最短路的路径记录下来, 然后枚举每一条最短路的边,将其断掉,记录此时的1-n的时间 取其中最大的一个时间即为所求 阅读全文
posted @ 2019-07-15 13:43 [jackeylove] 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题面 一道最小生成树的基本题吧,这里要注意两点 1.数组范围要开大,毕竟是生成树,开n平方即可 2.求边上权值算两点之间距离要注意精度的问题,多强制转换几次(double)防止WA 就OK了,剩下是Kruskal模板 阅读全文
posted @ 2019-07-15 13:38 [jackeylove] 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题面 把交叉路口看做图中的点,道路为边,则可以从三个条件: 1.改造的那些道路能够把所有的交叉路口直接或间接的连通起来。 2.在满足要求1的情况下,改造的道路尽量少。 3.在满足要求1、2的情况下,改造的那些道路中分值最大的道路分值尽量小。 可得,本题是一个裸的最小生成树。 阅读全文
posted @ 2019-07-15 13:36 [jackeylove] 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题面 最小生成树版子题 阅读全文
posted @ 2019-07-15 12:29 [jackeylove] 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题面 版子不多讲 阅读全文
posted @ 2019-07-15 12:27 [jackeylove] 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】: 给你无向图的N个点和M条边,保证这M条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍。(一笔画的时候笔不离开纸) 【输入描述】: 多组数据,每组数据用空行隔开。 对于每组数据,第一行两个整数N,M表示点数和边数。接下去M行每行两个整数a,b ,表示a,b之间有 阅读全文
posted @ 2019-07-15 12:24 [jackeylove] 阅读(111) 评论(0) 推荐(0) 编辑