
C-C++
文章平均质量分 87
setoy
这个作者很懒,什么都没留下…
展开
-
Codeforces 51E Pentagon
题意https://codeforces.com/problemset/problem/51/E在无向图中统计有多少个五元环,顶点数≤700\le 700≤700算法:枚举枚举五元环的两个顶点,找到两条各自包含2条和3条的不重复边的环。u→vu \to vu→v的长度是2的路径条数如何计数呢?可以类似Folyd的传递闭包方法,枚举一个中间点xxx即可,根据乘法原理,∑ux=∑ux×∑xv...原创 2020-02-10 19:56:53 · 444 阅读 · 0 评论 -
Codeforces 52C Circular RMQ
题意https://codeforces.com/problemset/problem/52/C两种操作:inc(lf, rg, v)inc(lf, rg, v)inc(lf, rg, v) — 闭区间[lf, rg][lf, rg][lf, rg]内每个数都+v+v+vrmq(lf, rg)rmq(lf, rg)rmq(lf, rg) — 查询闭区间[lf, rg][lf, rg][l...原创 2020-02-10 17:11:55 · 252 阅读 · 0 评论 -
Codeforces 51C Three Base Stations
题意https://codeforces.com/problemset/problem/51/Cxxx水平轴上有n(≤2×105)n(\le 2 \times 10^5)n(≤2×105)个房子,建3个基站,使得每个基站的直径都是ddd最小且能覆盖所有房子。房子坐标都是整数,且≤109\le 10^9≤109,输出基站半径和三个基站的中心坐标,保留6位小数。算法一:枚举中心位置未知、直径长...原创 2020-02-10 17:00:43 · 284 阅读 · 0 评论 -
Codeforces 45G Prime Problem
题意https://codeforces.com/problemset/problem/45/G作为数论题,这个题面给出的问题情景可以打高分,所以把题目简述下有nnn个房子,编号1..n1..n1..n,现要给它们涂色,要求是:一幢房子涂一种颜色,涂同种颜色的房子编号之和应该是素数颜色种数不能太多,要尽量少不同颜色的房子不能连续在一起输入样例8输出样例1 2 2 1 1 ...原创 2020-02-06 17:47:55 · 217 阅读 · 0 评论 -
Codeforces 46D Parking Lot
题意直线停车场长度L(10≤L≤105)L(10 \le L \le 10^5)L(10≤L≤105),车长xxx,头尾还需空出b,f(1≤x≤1000,1≤b,f≤100)b,f(1\le x \le1000, 1\le b,f \le 100)b,f(1≤x≤1000,1≤b,f≤100)的距离。最多有100次操作:停车和出车操作。对于每个停车操作输出这辆车停的位置(尽量靠左的位置),对于出...原创 2020-02-06 17:08:23 · 199 阅读 · 0 评论 -
Codeforces 45D Event Dates
题意http://codeforces.com/problemset/problem/45/D给定nnn个活动可能发生的区间[li,ri][l_i, r_i][li,ri],求这nnn个活动可能发生的各个时刻(都是整数,至少存在一组解)n≤100,li,ri≤107n \le 100, l_i, r_i \le 10^7n≤100,li,ri≤107算法:模拟、贪心乍一看像“活动...原创 2020-02-05 19:57:36 · 214 阅读 · 0 评论 -
Codeforces 38G Queue
题意http://codeforces.com/problemset/problem/38/G给定nnn个数,每个数有两个字段ai,cia_i, c_iai,ci,aia_iai比前面大的就可以往前移,每移一次cic_ici的值就减1(ci=0c_i=0ci=0时不能移动),输出操作之后的序列(原始id)输入样例:52 31 44 33 15 2输出样例:3 1 ...原创 2020-02-05 18:43:11 · 217 阅读 · 0 评论 -
Codeforces 39H Multiplication Table
题意输入进位制kkk,输出该进制下的(k−1)×(k−1)(k-1) \times (k-1)(k−1)×(k−1)的乘法口诀表算法:模拟考察进位转换的题目,从算法入门角度看还是比较综合的。主要注意的凑成kkk进制数的时候要看成10进制#include<cstdio>using namespace std;int calc(int x, int k){ int ...原创 2020-02-04 21:25:17 · 152 阅读 · 0 评论 -
Codeforces 39J Spelling Check
题意字符串aaa比bbb长1位,求aaa去掉哪1位就和bbb相等,如果去1位还不相等,那么输出0。位数可能有10610^6106算法1:暴力枚举用C++ string,去掉1位后拼接成string,然后直接==判断。如果忽略拼接的时间复杂度,==的复杂度也是O(n)O(n)O(n)的,加上枚举位置的复杂度,整体O(n2)>O(1012)O(n^2) > O(10^{12})O(...原创 2020-02-04 21:16:15 · 377 阅读 · 0 评论 -
Codeforces 36 E Two Paths
题意给定mmm条边,寻找一个或者两个欧拉回路包含这mmm条边输出第一行L−1L-1L−1是第一条路径的长度,然后第二行按输入的顺序输出路径上边的编号第三行L2L_2L2是第二条路径的长度,第4行是路径上边的编号注意本题要文件输入输出:input.txt和output.txt算法:dfs求欧拉回路分类讨论比较麻烦,比较类似NOIP的day1T3无解的条件分四种:m=1连通块数 ...原创 2020-02-01 21:19:40 · 198 阅读 · 0 评论 -
Codeforces 37 C Old Berland Language
题意构造出指定长度的n个01字串,每个字串不能是其他字串的子串算法:用DFS模拟“不能是其他字串的子串”用哈夫曼编码方式编的字串符合这个规则,且会“最短”,本题无需最短,只需满足前一个条件即可。哈夫曼编码需要构造哈夫曼树(不过此题不需要构造树),然后对哈夫曼树的所有指向左子树的边编码为0,右为1,以此解决“不能是其他字串的子串”问题因此我们本题可以假设哈夫曼树已经构造完毕,然后用dfs去...原创 2020-02-01 20:57:22 · 245 阅读 · 0 评论 -
Codeforces 33C Wonderful Randomized Sum
题意将序列的前面连续0个或多个数变成相反数,或者将后面连续0个或多个数变成相反数之后求整个序列和的最大值。算法一可以枚举1~i每个位置都取相反数之后,序列总和如何取最大,从前到后枚举一遍,从后往前再枚举一遍,然后取最大值。不过枚举效率太低,我们可以考虑先记录下每次枚举的最值于是可以用:dp1[i]保存1~i位取反之后,前i个数能取得的最大和dp2[i]保存i~n位取反之后,后i个数能...原创 2020-02-01 20:43:49 · 236 阅读 · 0 评论 -
快速排序(快排)的一些细节和k-th问题
对算法竞赛而言,轴点的选取不是关键,算法的细节和程序才是重点,而在应用快排的副产品k-th元素中,这个细节尤为重要。网络上鲜有这些细节描述,谨以记之。快排的不同写法主要用两种写法:标准快排和“两头”交换写法,竞赛中以后者居多。标准写法void quick_sort(int l, int r){ int i = l, j = r, x = s[l]; while (i < j)原创 2016-10-06 18:42:35 · 2192 阅读 · 1 评论