上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 27 下一页
摘要: 二段性:如果对于一个值x,存在一种M分段方法,能使得分段中的最大值满足$\le x$那么所有大于等于x的值t都存在M分段的方法使得分段最大值小于等于t。 题目要求分段最大值的最小值,所以可以用二分。 检查一个x值,能不能通过分M个段达到分段最大值$\le x$, 这个用贪心来做,让每一个分段尽可能大 阅读全文
posted @ 2020-10-12 11:29 yys_c 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 二段性:对于一个长度x,如果能够通过拿走不超过m个石头使得石头之间最短距离大于等于x,那么所有$\le x$的长度$t$都能够通过移动不超过m个石头达到最短距离大于等于$t$的要求。 所以可以求出移动不超过m个石头能够达到的最短距离的最大值,判断一个长度x是否满足的条件就是求出要求最短距离大于等于x 阅读全文
posted @ 2020-10-11 20:30 yys_c 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 实数二分的题。 第一次写的时候,发现这样的写法无法处理mid正好是根的情况,会重复输出mid。 巧就巧在这题的数据保证不会出现长度为1的区间内出现2个根的情况,所以可以改写代码。 原始代码 #include<iostream> #include<cstdio> using namespace std 阅读全文
posted @ 2020-10-11 16:26 yys_c 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 二段性:如果高度$h$满足要求,那么所有的满足$\le h$的高度都满足,若$h$不满足,那么所有$\ge h$的都不满足。 二分答案,找满足要求的最大$h$ 复杂度:\(O(nlog(1e9)) = O(n), n \le 1e6\) #include<iostream> using namesp 阅读全文
posted @ 2020-10-11 13:35 yys_c 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 对数组升序排序,枚举A $A-B=C$问题转化为对于A在A之前找等于$A-C$的值的个数,可以用二分做 复杂度:\(O(nlogn)\) #include<iostream> #include<algorithm> using namespace std; #define LL long long 阅读全文
posted @ 2020-10-11 12:54 yys_c 阅读(64) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> #include<vector> using namespace std; typedef struct{ int x, y, c; }Node; vector<Node> res; void dfs(int k, int x, int y, int dx, i 阅读全文
posted @ 2020-10-10 21:12 yys_c 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个序列s,用它能够生成一个无限长的序列 第一个序列:\(s1 = s\) 第二个序列:\(s2 = s1 + s1'\) 第三个序列:\(s3 = s2 + s2'\) ... 其中$si'$表示将$si$中的最后一个元素放到最前面形成的新序列。 思路:把一个序列看成前半部分和后半部分, 阅读全文
posted @ 2020-10-09 16:37 yys_c 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 状态转移方程:\(f(i) = f(i - 1) + f(i - 2) + s(i - 3) * 2\),其中$s(k) = f(1) + ... + f(k)$ #include<iostream> using namespace std; const int N = 1e6 + 10, mod 阅读全文
posted @ 2020-10-09 12:17 yys_c 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 01背包变形 \(f(i, j) = f(i - 1, j) + f(i - 1, j - v[i])\) 初始条件要注意:f[0~n][0] = 1; 代码 #include<iostream> #include<vector> using namespace std; const int N = 阅读全文
posted @ 2020-10-08 19:22 yys_c 阅读(69) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> #include<vector> using namespace std; #define LL long long const int N = 1010; // f(i) 表示以i为开始,能够得到的满足性质的数的个数 // f(i) = 1 + f(k), k 阅读全文
posted @ 2020-10-07 19:56 yys_c 阅读(113) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 27 下一页