07 2018 档案

摘要:这是我的网络流第一题,用的是增广路算法即EK算法,算法思想:每次用BFS找一条最短的增广路径,然后沿着这条路径修改流量值(实际修改的是残量网络的边权),顺带修改反图的残余网络的边权。当没有增广路时,算法停止,... 阅读全文
posted @ 2018-07-31 15:05 eason99 阅读(100) 评论(0) 推荐(0) 编辑
摘要:这是我的网络流第一题,用的是增广路算法即EK算法,算法思想:每次用BFS找一条最短的增广路径,然后沿着这条路径修改流量值(实际修改的是残量网络的边权),顺带修改反图的残余网络的边权。当没有增广路时,算法停止,... 阅读全文
posted @ 2018-07-31 15:05 eason99 阅读(79) 评论(0) 推荐(0) 编辑
摘要:这题和poj3041有点类似,但是建图方式却不是一样的,因为这题要求放的板子不能覆盖了草。样例是这样的,下面就讲讲怎么建图4 4*.*..******...*.把行里面连在一起的坑连起来视为一个点,即一块横木... 阅读全文
posted @ 2018-07-29 11:35 eason99 阅读(89) 评论(0) 推荐(0) 编辑
摘要:这题和poj3041有点类似,但是建图方式却不是一样的,因为这题要求放的板子不能覆盖了草。样例是这样的,下面就讲讲怎么建图4 4*.*..******...*.把行里面连在一起的坑连起来视为一个点,即一块横木... 阅读全文
posted @ 2018-07-29 11:35 eason99 阅读(77) 评论(0) 推荐(0) 编辑
摘要:题目问的是使用武器一次可以摧毁一行或一列的陨石,最少使用多少次?这个是求最小点覆盖的问题,也就是问最少多少点可以覆盖所有的边。 然后最小点覆盖又可以等于二分图的最大匹配,所以就建图求最大匹配 这题 建图... 阅读全文
posted @ 2018-07-29 08:38 eason99 阅读(82) 评论(0) 推荐(0) 编辑
摘要:题目问的是使用武器一次可以摧毁一行或一列的陨石,最少使用多少次?这个是求最小点覆盖的问题,也就是问最少多少点可以覆盖所有的边。 然后最小点覆盖又可以等于二分图的最大匹配,所以就建图求最大匹配 这题 建图... 阅读全文
posted @ 2018-07-29 08:38 eason99 阅读(51) 评论(0) 推荐(0) 编辑
摘要:有m个订单,然后每个订单都有出发时间,起点,终点,然后问你完成这m个订单至少需要多少个出租车,可以这样想,m个订单,最多是m辆出租车,然后假如有一辆出租车第一个订单完成后,到达第二个订单的起点位置的时间#in... 阅读全文
posted @ 2018-07-28 21:44 eason99 阅读(70) 评论(0) 推荐(0) 编辑
摘要:有m个订单,然后每个订单都有出发时间,起点,终点,然后问你完成这m个订单至少需要多少个出租车,可以这样想,m个订单,最多是m辆出租车,然后假如有一辆出租车第一个订单完成后,到达第二个订单的起点位置的时间#in... 阅读全文
posted @ 2018-07-28 21:44 eason99 阅读(59) 评论(0) 推荐(0) 编辑
摘要:匈牙利算法求二分图最大匹配 #includeusing namespace std;int line[505][505],used[505],nxt[505];int k,m,n;bool ifind(in... 阅读全文
posted @ 2018-07-28 16:37 eason99 阅读(71) 评论(0) 推荐(0) 编辑
摘要:匈牙利算法求二分图最大匹配 #includeusing namespace std;int line[505][505],used[505],nxt[505];int k,m,n;bool ifind(in... 阅读全文
posted @ 2018-07-28 16:37 eason99 阅读(70) 评论(0) 推荐(0) 编辑
摘要:题目意思就是要求s到t的最短路径个数和s到t的次短路径个数。 参考了大佬的博客#include#include#include#includeusing namespace std;#define inf 0... 阅读全文
posted @ 2018-07-28 14:10 eason99 阅读(68) 评论(0) 推荐(0) 编辑
摘要:题目意思就是要求s到t的最短路径个数和s到t的次短路径个数。 参考了大佬的博客#include#include#include#includeusing namespace std;#define inf 0... 阅读全文
posted @ 2018-07-28 14:10 eason99 阅读(78) 评论(0) 推荐(0) 编辑
摘要:模板题#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3fstruct node{ int id,f,g;}... 阅读全文
posted @ 2018-07-28 01:14 eason99 阅读(78) 评论(0) 推荐(0) 编辑
摘要:模板题#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3fstruct node{ int id,f,g;}... 阅读全文
posted @ 2018-07-28 01:14 eason99 阅读(74) 评论(0) 推荐(0) 编辑
摘要:最后推出来,建一个最小生成树的花费就是 所有点到1节点的最小距离*对应的点权之和。所有用spfa跑个最短路,然后求和即可。 然后要判断一些节点是是否为0,为0的话最小花费就是0,还有这里无穷大要设置为0x3... 阅读全文
posted @ 2018-07-27 16:00 eason99 阅读(87) 评论(0) 推荐(0) 编辑
摘要:最后推出来,建一个最小生成树的花费就是 所有点到1节点的最小距离*对应的点权之和。所有用spfa跑个最短路,然后求和即可。 然后要判断一些节点是是否为0,为0的话最小花费就是0,还有这里无穷大要设置为0x3... 阅读全文
posted @ 2018-07-27 16:00 eason99 阅读(70) 评论(0) 推荐(0) 编辑
摘要:#include#include#includeusing namespace std;#define maxn 100010#define ll long long#define lson rt>1; b... 阅读全文
posted @ 2018-07-27 11:59 eason99 阅读(63) 评论(0) 推荐(0) 编辑
摘要:#include#include#includeusing namespace std;#define maxn 100010#define ll long long#define lson rt>1; b... 阅读全文
posted @ 2018-07-27 11:59 eason99 阅读(64) 评论(0) 推荐(0) 编辑
摘要:总共有n个星球,然后每个星球都有一个起飞燃料的使用效率a[i]和降落的燃料使用效率b[i],就拿起飞来说,也就是起飞每消耗1吨燃料可以提升的物品吨数,假如起飞前总重为m+f,那么起飞消耗(m+f)/a[i]吨... 阅读全文
posted @ 2018-07-27 09:57 eason99 阅读(83) 评论(0) 推荐(0) 编辑
摘要:总共有n个星球,然后每个星球都有一个起飞燃料的使用效率a[i]和降落的燃料使用效率b[i],就拿起飞来说,也就是起飞每消耗1吨燃料可以提升的物品吨数,假如起飞前总重为m+f,那么起飞消耗(m+f)/a[i]吨... 阅读全文
posted @ 2018-07-27 09:57 eason99 阅读(136) 评论(0) 推荐(0) 编辑
摘要:枚举天数,从小到大枚举,第一个不符合的就是最大的天数#includeusing namespace std;mapmp;int num[105]={0};int main(){ int n,m; ... 阅读全文
posted @ 2018-07-27 09:38 eason99 阅读(80) 评论(0) 推荐(0) 编辑
摘要:枚举天数,从小到大枚举,第一个不符合的就是最大的天数#includeusing namespace std;mapmp;int num[105]={0};int main(){ int n,m; ... 阅读全文
posted @ 2018-07-27 09:38 eason99 阅读(63) 评论(0) 推荐(0) 编辑
摘要:排序后贪心#includeusing namespace std;int a[100];int main(){ int n,k; cin>>n>>k; for(int i=1;i>ch; ... 阅读全文
posted @ 2018-07-27 09:37 eason99 阅读(64) 评论(0) 推荐(0) 编辑
摘要:排序后贪心#includeusing namespace std;int a[100];int main(){ int n,k; cin>>n>>k; for(int i=1;i>ch; ... 阅读全文
posted @ 2018-07-27 09:37 eason99 阅读(87) 评论(0) 推荐(0) 编辑
摘要:题意就是贴海报,然后新贴的海报之间可以覆盖以前贴的,问最后可以看见多少张海报? 海报端点坐标很范围很大,但是对我们来说有用的也就是端点的坐标,例如[1000,2000],[1990,2012]我们用不到[-... 阅读全文
posted @ 2018-07-26 09:51 eason99 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题意就是贴海报,然后新贴的海报之间可以覆盖以前贴的,问最后可以看见多少张海报? 海报端点坐标很范围很大,但是对我们来说有用的也就是端点的坐标,例如[1000,2000],[1990,2012]我们用不到[-... 阅读全文
posted @ 2018-07-26 09:51 eason99 阅读(70) 评论(0) 推荐(0) 编辑
摘要:#include#include#include using namespace std; int rem[15],state[1000],dp[15][1000];int m,n,most; int find_... 阅读全文
posted @ 2018-07-25 20:12 eason99 阅读(55) 评论(0) 推荐(0) 编辑
摘要:#include#include#include using namespace std; int rem[15],state[1000],dp[15][1000];int m,n,most; int find_... 阅读全文
posted @ 2018-07-25 20:12 eason99 阅读(96) 评论(0) 推荐(0) 编辑
摘要:题目大意给你一个01串就是求每个点的最长连续值为1的区间的长度,我们可以将村庄抽象成一个点,正常下值为1,被破坏后变成0,即可将题目抽象成一个求目标节点所在的最长连续1序列的区间的长度。 这题用的是线段树区... 阅读全文
posted @ 2018-07-25 19:24 eason99 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题目大意给你一个01串就是求每个点的最长连续值为1的区间的长度,我们可以将村庄抽象成一个点,正常下值为1,被破坏后变成0,即可将题目抽象成一个求目标节点所在的最长连续1序列的区间的长度。 这题用的是线段树区... 阅读全文
posted @ 2018-07-25 19:24 eason99 阅读(73) 评论(0) 推荐(0) 编辑
摘要:在一个数列a中,满足a[ i ]>a[ j ]并且i a[ j ]就会产生mid-i+1个逆序对,因为做归排的时候l~mid和mid+1~r都是已经排好序的,要是a[ i ]>a[ j ]那么a[ i+1 ]... 阅读全文
posted @ 2018-07-25 14:53 eason99 阅读(80) 评论(0) 推荐(0) 编辑
摘要:在一个数列a中,满足a[ i ]>a[ j ]并且i a[ j ]就会产生mid-i+1个逆序对,因为做归排的时候l~mid和mid+1~r都是已经排好序的,要是a[ i ]>a[ j ]那么a[ i+1 ]... 阅读全文
posted @ 2018-07-25 14:53 eason99 阅读(90) 评论(0) 推荐(0) 编辑
摘要:题目大意就是求[l,r]和n互质的数的个数 做法就是反着求,求不和n互质的数的个数,然后相减即可。先把n分解出质因数存在数组里,每个质因数在[l,r]内的倍数组成一个集合该集合里的数就是和n不互质的数,我们... 阅读全文
posted @ 2018-07-25 10:46 eason99 阅读(51) 评论(0) 推荐(0) 编辑
摘要:题目大意就是求[l,r]和n互质的数的个数 做法就是反着求,求不和n互质的数的个数,然后相减即可。先把n分解出质因数存在数组里,每个质因数在[l,r]内的倍数组成一个集合该集合里的数就是和n不互质的数,我们... 阅读全文
posted @ 2018-07-25 10:46 eason99 阅读(53) 评论(0) 推荐(0) 编辑
摘要:这是我第一次写容斥定理的题,题目就是让你求[l,r]区间和集合a无关的数的个数,一个数若与集合a无关,则集合a里任何一个数都不是他的因数,也就是该数不是集合a里任何一个数的倍数,正难则反,所以我们可以先求出反... 阅读全文
posted @ 2018-07-25 10:36 eason99 阅读(87) 评论(0) 推荐(0) 编辑
摘要:这是我第一次写容斥定理的题,题目就是让你求[l,r]区间和集合a无关的数的个数,一个数若与集合a无关,则集合a里任何一个数都不是他的因数,也就是该数不是集合a里任何一个数的倍数,正难则反,所以我们可以先求出反... 阅读全文
posted @ 2018-07-25 10:36 eason99 阅读(65) 评论(0) 推荐(0) 编辑
摘要:题目大意就是给你n个数,然后进行m次操作,区间更新,然后查询区间和。 这题有点特别,因为更新[l,r]时,不是常规的那种更新例如把[l,r]内的每个数换成v或把[l,r]里的每个数都增加v,而是[l,r]内... 阅读全文
posted @ 2018-07-24 21:30 eason99 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题目大意就是给你n个数,然后进行m次操作,区间更新,然后查询区间和。 这题有点特别,因为更新[l,r]时,不是常规的那种更新例如把[l,r]内的每个数换成v或把[l,r]里的每个数都增加v,而是[l,r]内... 阅读全文
posted @ 2018-07-24 21:30 eason99 阅读(55) 评论(0) 推荐(0) 编辑
摘要:模板题,区间更新,把l到r区间的每个数都换成z #includeusing namespace std;const int maxn=100005;struct node{ int l,r; i... 阅读全文
posted @ 2018-07-24 19:19 eason99 阅读(55) 评论(0) 推荐(0) 编辑
摘要:模板题,区间更新,把l到r区间的每个数都换成z #includeusing namespace std;const int maxn=100005;struct node{ int l,r; i... 阅读全文
posted @ 2018-07-24 19:19 eason99 阅读(73) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意就是给你长度为n的区间,然后有m次操作,操作完了再查询区间和。 做法就是用前缀和和差分,这是我第一次用差分,首先设一个change数组用来存每个位置的变化值,先清0,假如是修改[l,r]区间,... 阅读全文
posted @ 2018-07-23 09:20 eason99 阅读(79) 评论(0) 推荐(0) 编辑
摘要:传送门 题目大意就是给你长度为n的区间,然后有m次操作,操作完了再查询区间和。 做法就是用前缀和和差分,这是我第一次用差分,首先设一个change数组用来存每个位置的变化值,先清0,假如是修改[l,r]区间,... 阅读全文
posted @ 2018-07-23 09:20 eason99 阅读(169) 评论(0) 推荐(0) 编辑
摘要:题目大意就是给你个时间让你求,比这个时间大的第一个回文时间,和比这个时间小的第一个回文时间。 一开始傻逼的去模拟时间增加和时间减少,写了半天还是没写对,后来看了题解说打表就行了。不过要注意 23:32的很特殊的... 阅读全文
posted @ 2018-07-22 23:49 eason99 阅读(89) 评论(0) 推荐(0) 编辑
摘要:题目大意就是给你个时间让你求,比这个时间大的第一个回文时间,和比这个时间小的第一个回文时间。 一开始傻逼的去模拟时间增加和时间减少,写了半天还是没写对,后来看了题解说打表就行了。不过要注意 23:32的很特殊的... 阅读全文
posted @ 2018-07-22 23:49 eason99 阅读(72) 评论(0) 推荐(0) 编辑
摘要:传送门 题目要求在一个区间内不含前导零且任意相邻两个数字之差>=2的数个个数。 要注意前导0是无效的不用管,比如说0001含前导0就可以直接视作1,1001就不含前导0,还需要注意的就是虽然0,1,2,3,4... 阅读全文
posted @ 2018-07-21 16:35 eason99 阅读(105) 评论(0) 推荐(0) 编辑
摘要:传送门 题目要求在一个区间内不含前导零且任意相邻两个数字之差>=2的数个个数。 要注意前导0是无效的不用管,比如说0001含前导0就可以直接视作1,1001就不含前导0,还需要注意的就是虽然0,1,2,3,4... 阅读全文
posted @ 2018-07-21 16:35 eason99 阅读(100) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2196 题目大意就是给你n个点,还有这n个点的连接关系,然后分别输出这n个点到其他点的最长距离是多少? 这就是个树上最长距离... 阅读全文
posted @ 2018-07-20 16:16 eason99 阅读(69) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2196 题目大意就是给你n个点,还有这n个点的连接关系,然后分别输出这n个点到其他点的最长距离是多少? 这就是个树上最长距离... 阅读全文
posted @ 2018-07-20 16:16 eason99 阅读(59) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2342题目给你一个n表示总人数,然后又给了n个人的欢乐度,还有n-1个上下级关系。然后要求在n个人里选一些人,并且选的人里任意两人没有直接上下级的关系,问你最... 阅读全文
posted @ 2018-07-20 09:02 eason99 阅读(74) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2342题目给你一个n表示总人数,然后又给了n个人的欢乐度,还有n-1个上下级关系。然后要求在n个人里选一些人,并且选的人里任意两人没有直接上下级的关系,问你最... 阅读全文
posted @ 2018-07-20 09:02 eason99 阅读(109) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/contest/1009/problem/B 题目大意就是给你一个仅由'0','1','2'组成的字符串,然后有2种变换方式,一种是0和1交换位置,另一种是1和2... 阅读全文
posted @ 2018-07-16 11:26 eason99 阅读(61) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/contest/1009/problem/B 题目大意就是给你一个仅由'0','1','2'组成的字符串,然后有2种变换方式,一种是0和1交换位置,另一种是1和2... 阅读全文
posted @ 2018-07-16 11:26 eason99 阅读(120) 评论(0) 推荐(0) 编辑
摘要:https://www.nowcoder.com/acm/contest/134/I 做法,2个人交换位置肯定是男和女交换,枚举全部男生就可以了。 一共就三种情况,第一种是n个人全部是女生,那最长连续... 阅读全文
posted @ 2018-07-15 19:56 eason99 阅读(119) 评论(0) 推荐(0) 编辑
摘要:https://www.nowcoder.com/acm/contest/134/I 做法,2个人交换位置肯定是男和女交换,枚举全部男生就可以了。 一共就三种情况,第一种是n个人全部是女生,那最长连续... 阅读全文
posted @ 2018-07-15 19:56 eason99 阅读(114) 评论(0) 推荐(0) 编辑
摘要:传送门题目大意是,给你n个棍子,然后由q次操作,每次操作都是把编号为x的棍子拿走(每次操作都是针对n个棍子进行操作),然后问你此时这n-1根棍子能不能组成三角形,能的话输出最长的三角形周长,不能的话输出-1。思路... 阅读全文
posted @ 2018-07-15 01:48 eason99 阅读(83) 评论(0) 推荐(0) 编辑
摘要:传送门题目大意是,给你n个棍子,然后由q次操作,每次操作都是把编号为x的棍子拿走(每次操作都是针对n个棍子进行操作),然后问你此时这n-1根棍子能不能组成三角形,能的话输出最长的三角形周长,不能的话输出-1。思路... 阅读全文
posted @ 2018-07-15 01:48 eason99 阅读(92) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接 题目大意就是给你5个数组a,b,c,d,e;然后问你是否存在ai+bj+ck+dn+em=0。 一开始我把5个数组分成了3和2,把后面2个数组合并为一个数组,然后用3个for遍历... 阅读全文
posted @ 2018-07-11 16:28 eason99 阅读(79) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接 题目大意就是给你5个数组a,b,c,d,e;然后问你是否存在ai+bj+ck+dn+em=0。 一开始我把5个数组分成了3和2,把后面2个数组合并为一个数组,然后用3个for遍历... 阅读全文
posted @ 2018-07-11 16:28 eason99 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接 题目大意给你n堆牌,每一堆牌有对应的牌数ai以及惩罚值bi,然后就做个游戏,从第一堆开始拿,把ai张牌都摊开正面朝上,然后要求再把bi张牌翻转,如果你此时手头的正面朝上的牌的数量>=此... 阅读全文
posted @ 2018-07-08 12:17 eason99 阅读(81) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接 题目大意给你n堆牌,每一堆牌有对应的牌数ai以及惩罚值bi,然后就做个游戏,从第一堆开始拿,把ai张牌都摊开正面朝上,然后要求再把bi张牌翻转,如果你此时手头的正面朝上的牌的数量>=此... 阅读全文
posted @ 2018-07-08 12:17 eason99 阅读(70) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接 题目意思是给你一个序列,要从左边数起第一个a的位置要在从右边数起第一个b的位置的前面,让你求(a,b)这样的一对数的种数是多少。 序列里的每个数都可以和他后面的全部数组成(a,b... 阅读全文
posted @ 2018-07-07 13:02 eason99 阅读(70) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接 题目意思是给你一个序列,要从左边数起第一个a的位置要在从右边数起第一个b的位置的前面,让你求(a,b)这样的一对数的种数是多少。 序列里的每个数都可以和他后面的全部数组成(a,b... 阅读全文
posted @ 2018-07-07 13:02 eason99 阅读(63) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接题目大意就是给你一个长度为n的区间放花(玫瑰或百合),然后问你怎么放可以令给定的m个区间的值的和最大,然后打印任意一个放法。区间的值就是该区间玫瑰花数量*百合数量。我一开始是用dfs把每一种放... 阅读全文
posted @ 2018-07-06 18:57 eason99 阅读(86) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接题目大意就是给你一个长度为n的区间放花(玫瑰或百合),然后问你怎么放可以令给定的m个区间的值的和最大,然后打印任意一个放法。区间的值就是该区间玫瑰花数量*百合数量。我一开始是用dfs把每一种放... 阅读全文
posted @ 2018-07-06 18:57 eason99 阅读(81) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接思路:把每个线段的起点终点都放进vector容器,起点标记为1,终点标记为0,然后排序,按坐标从小到大排序,若坐标大小相等,则按标记从大到小排序,即起点排在终点的前面(看别人的博客说这个操作是... 阅读全文
posted @ 2018-07-05 20:42 eason99 阅读(81) 评论(0) 推荐(0) 编辑
摘要:题目网址点击打开链接思路:把每个线段的起点终点都放进vector容器,起点标记为1,终点标记为0,然后排序,按坐标从小到大排序,若坐标大小相等,则按标记从大到小排序,即起点排在终点的前面(看别人的博客说这个操作是... 阅读全文
posted @ 2018-07-05 20:42 eason99 阅读(101) 评论(0) 推荐(0) 编辑