上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 70 下一页
摘要: #include #define LL long long #define fi first #define se second #define mk make_pair #define pii pair using namespace std; const int N = 300 + 7; const int M = 2e5 + 7; const int inf = 0x3f3f3f3... 阅读全文
posted @ 2018-07-07 20:22 NotNight 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 思路:一个篱笆的作用就是堵死一条路,我们将S与狼建边,权值为inf, 将羊与T建边,权值为inf, 每个点与其可以到的路建边,权值为1, 然后跑最小割,因为如果S到T有通路说明狼肯定可以到羊,每一个割代表一个篱笆。 阅读全文
posted @ 2018-07-07 10:04 NotNight 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 思路:最小割好难想啊,根本想不到。。 S -> 用户群 = c[ i ] 基站 -> T = p[ i ] 用户群 -> a[ i ] = inf 用户群 -> b[ i ] = inf 然后求最小割,答案就是全部收益的和 - 最小割。 为什么可以这样呢,对于每个用户群,我们可以不选他,就是把(S 阅读全文
posted @ 2018-07-07 08:52 NotNight 阅读(125) 评论(0) 推荐(0) 编辑
摘要: A - Codehorses T-shirts 思路:有相同抵消,没有相同的对答案+1 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #defi 阅读全文
posted @ 2018-06-28 21:03 NotNight 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你两个长度为n的数组a, b,问你有多少个问你有多少个区间满足 a中最大值等于b中最小值。 思路:我本来的想法是用单调栈求出每个点的管辖区间,然后问题就变成了巨麻烦的线段覆盖问题,就爆炸写了 一晚上假算法。正解就是枚举一个端点,然后二分找右端点的区间,因为满足一个很神奇的单调性,然后st 阅读全文
posted @ 2018-06-27 12:36 NotNight 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 思路:轮廓线dp,找bug找死我了。 阅读全文
posted @ 2018-06-25 21:44 NotNight 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 最裸的最大流,没啥好说的。。 阅读全文
posted @ 2018-06-25 20:07 NotNight 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 托米的简单表示法 思路:网上说dfs建树然后树形dp,我不是很懂。。。 我的写法是,扫一遍字符串找到每个括号的匹配括号,然后给每个括号一个标,每个匹配括号的 宽度为两者在字符串中的下标差值,高度为它们两个之间的括号的标号最大值-自身的标号 + 1,然后算就好啦。 阅读全文
posted @ 2018-06-25 17:37 NotNight 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 这次的题好奇怪哦。。。 C - Tesla 思路:先把跟停车位相邻的车停进去,然后开始转圈。。。 E: 题目大意:给你n个长度小于1e6的向量,让你把每个向量变成正向或者负向,使得所有向量加起来的长度不超过1.5 * 1e6 思路:正解是每三个向量中都能找到两个向量合起来 <= 1e6,然后不断合并 阅读全文
posted @ 2018-06-25 16:30 NotNight 阅读(203) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/760/problem/E 题目大意:现在对栈有m个操作,但是顺序是乱的,现在每输入一个操作要求你输出当前的栈顶, 注意,已有操作要按它们的时间顺序进行。 思路:线段树好题啊啊,我们把push当成+1, pop当成-1,按操作的位置建立线段 阅读全文
posted @ 2018-06-24 23:17 NotNight 阅读(139) 评论(0) 推荐(0) 编辑
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 70 下一页