上一页 1 ··· 41 42 43 44 45 46 47 48 49 ··· 68 下一页
摘要: 这道题有负权边,本来考虑可以用spfa,但是这个算法被卡了,因此只能转换思路。 我们发现因为负权边是单向的,且没有环,而正权是有环的,这说明这个图是一块一块的,负权边就是联通块和块的,因此这构成一个DAG 我们考虑在块内部使用迪杰斯特拉算法而在块和块之间使用拓扑排序来做 #include<cstdi 阅读全文
posted @ 2020-05-03 09:08 朝暮不思 阅读(178) 评论(0) 推荐(0)
摘要: 本题是一道分层图的问题,这道题可以抽象出二分解法,因为我们知道,假如我们二分答案,那么就可以根据比答案大的个数来进行check 也就是我们要找的是刚好比答案大k条的最小值,其实这个最小值一定就是题目中的某条,除了两种特殊情况,1是全部都满不足条件,一个是全部满足条件 因此我们的二分区间是0-1e6+ 阅读全文
posted @ 2020-05-02 21:37 朝暮不思 阅读(148) 评论(0) 推荐(0)
摘要: 这题因为排列有很多种,我们最简单的想法是对所有的排列进行最短路,但是这样复杂度不行 因此我们可以先跑6次最短路,之后用一次dfs来求取答案 #include<iostream> #include<cstring> #include<queue> #include<cstdio> #include<a 阅读全文
posted @ 2020-05-02 12:37 朝暮不思 阅读(158) 评论(0) 推荐(0)
摘要: 本题我们可以把物品当作一个点,并且设立一个虚拟原点,然后加上一个限制是不能超过m个等级 因此枚举每个范围求一遍最短路就行,因为我们发现等级差距并不是很大,注意,酋长不一定是最大等级 #include <cstring> #include <iostream> #include <algorithm> 阅读全文
posted @ 2020-05-01 23:08 朝暮不思 阅读(121) 评论(0) 推荐(0)
摘要: 这题建图比较清晰,就是把能走到的权值设为1 #include<iostream> #include<sstream> #include<cstring> #include<queue> using namespace std; const int N=510; int g[N][N]; int d[ 阅读全文
posted @ 2020-05-01 21:05 朝暮不思 阅读(183) 评论(0) 推荐(0)
摘要: 这里我选择了一种在线的树状数组的写法,有三个log,比较好写但是跑的比较慢,吸氧才能过 其实和一维的没有区别,都是整体二分值域的思想 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=4e5+ 阅读全文
posted @ 2020-04-29 22:04 朝暮不思 阅读(156) 评论(0) 推荐(0)
摘要: 动态修改的整体二分模板,整体二分天然支持修改 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=3e5+10; struct node{ int op,x,y,k,id; }q[N],lq[N 阅读全文
posted @ 2020-04-29 20:32 朝暮不思 阅读(145) 评论(0) 推荐(0)
摘要: 这题比较经典,我们想要求比他小的最远的点 因此我们发现,如果一个点比他前面的点大还比他近,说明这个点永远不会作为答案 因此我们就可以维护一个单调队列,之后二分找到第一个大于等于他的位置在哪,之后这个位置的前一个就是答案 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-04-29 16:36 朝暮不思 阅读(218) 评论(0) 推荐(0)
摘要: 暴力想法肯定是遍历一遍x的取值范围看看哪个最小,问题就是如何看哪个最小 一个直观的思路是,首先值的变化分为三种,一个是不变,一个是变一个,一个是变两个 不变就是相加为x,那么我们可以想到,能变一个就成说明,我至多变一个的取值范围要包括x,因此只要求一下取值范围就变成了覆盖问题 这种问题可以用差分解决 阅读全文
posted @ 2020-04-29 14:55 朝暮不思 阅读(219) 评论(0) 推荐(0)
摘要: 根据题意,本题只关心前缀t是否匹配,而其他位置并不在意 因此我们将题目抽象成将s转转化为t串,其中t串的前m个是指定的,后面的是随意的 又因为s串从头往后并且可以插到两边,自然想到了区间dp,看数据范围也感觉很对,因为区间dp就是向两边扩充 #include<bits/stdc++.h> using 阅读全文
posted @ 2020-04-28 22:53 朝暮不思 阅读(184) 评论(0) 推荐(0)
上一页 1 ··· 41 42 43 44 45 46 47 48 49 ··· 68 下一页