摘要: Visual Studio Code 的自定义代码片段可以让用户键入几个关键字快速贴模板, 在打 Codeforces 之类的比赛的时候可以节省宝贵的时间. 编辑设置代码的时候需要加很多"", 还有制表符转四个空格和转义字符的问题. 于是写个了"生成 json 设置的代码"的代码方便自己. 其实算个 阅读全文
posted @ 2020-05-16 21:30 Linqi05 阅读(347) 评论(0) 推荐(1)
摘要: A 多边形与圆 "题目链接" 题意 给出一个多边形的坐标和圆的半径, 多边形可以在圆内滚动, 问点 1 在成为转动中心到下一次成为转动中心的过程中经过的路程长度. 题解 枚举点 2 n 成为转动中心的情况下点 1 的路程. view code B 子串翻转 "题目链接" 题意 给出一个长度为 n 的 阅读全文
posted @ 2020-03-21 11:40 Linqi05 阅读(217) 评论(0) 推荐(0)
摘要: "A Journey Planning" 题意: 有一列共 n 个城市, 每个城市有美丽值 b[i], 要访问一个子序列的城市, 这个子序列相邻项的原项数之差等于美丽值之差, 求最大的美丽值总和. 思路: 对于一个合法的子序列, b[i] i 结果是一个定值, 统计该值取最大. view code 阅读全文
posted @ 2020-03-01 23:55 Linqi05 阅读(305) 评论(0) 推荐(1)
摘要: POJ 2407 题意: 给出一个数n, n ≤ 1e9, 问有多少个数 a, 1 ≤ a < n, 使得不存在 x > 1, y > 0, z > 0, n = xy, a = xz. 思路: 实际上问比 n 小且与 n 互质的数的个数, 求欧拉函数. view code #include <al 阅读全文
posted @ 2020-03-01 11:46 Linqi05 阅读(2) 评论(0) 推荐(0)
摘要: 记录一些没有写在其他随笔中的 Codeforces 杂题, 以 Problemset 题号排序 1416D - Graph and Queries 欧拉序, 线段树 //给个图, 两种操作, 查询一个点所在联通块的最大值并改为0; 删边 //离线操作, 倒着做. 线段树维护欧拉序. 要注意的一点是, 阅读全文
posted @ 2020-02-22 20:54 Linqi05 阅读(270) 评论(0) 推荐(0)
摘要: 《挑战程序设计竞赛》课后练习题解集——3.5 借助水流解决问题的网络流 网络流相关问题有几个模型的定理是必须先掌握的:相关证明参考胡伯涛的《最小割模型在信息学竞赛中的应用》 1. 最大权闭合图 正点权连s,容量为点权;负点权连t,容量为点权的绝对值;原图的边保留,容量为正无穷。网络N取最小割[S, 阅读全文
posted @ 2020-02-19 16:28 Linqi05 阅读(2) 评论(0) 推荐(0)
摘要: 《挑战程序设计竞赛》课后练习题解集——3.4 熟练掌握动态规划 状态压缩DP POJ 2441 有N头牛,M个槽,N,M≤20,每头牛只在指定的pi个槽里进食,不与其他牛共享槽。问有多少种分配方案。 dp[i][S],当前第i头牛要进食,槽的使用状态为S 1 #include <cstdio> 2 阅读全文
posted @ 2020-02-16 23:39 Linqi05 阅读(9) 评论(0) 推荐(0)
摘要: 活用各种数据结构 Binary Indexed Tree POJ 1990 有N头牛,位置x,权值v。两两交谈时要以max(vi, vj)×|xi - xj|的音量。问所有N×(N-1)/2组牛交谈的音量总和 按 v 排序,后面每加入一只新的牛 i 时,此时它的v最大,所以总是取vi;同时维护两个B 阅读全文
posted @ 2020-02-11 20:49 Linqi05 阅读(2) 评论(0) 推荐(0)
摘要: Codeforces 2019年12月19日到 2020年2月12日 的部分比赛题 Educational Codeforces Round 82 (Rated for Div. 2) D Fill The Bag 给出m(≤1e5)个盒子,盒子的大小是2的幂次。可以选择把一个盒子分成大小相同的两部 阅读全文
posted @ 2020-02-07 19:03 Linqi05 阅读(283) 评论(0) 推荐(0)
摘要: 常用技巧精选(一) 尺取法 POJ 2566 给出一个长度n(<=1e5)的数列,每个数的大小在-1e4-1e4之间,给出若干询问值,要求一段字串和,它的绝对值与询问值最接近 好题目。由于数列有正有负,所以不能直接二分或尺取。考虑对前缀和排序 得到一个新数列,此时新数列任意一段子串都对应原数列的一个 阅读全文
posted @ 2020-02-05 19:39 Linqi05 阅读(6) 评论(0) 推荐(0)
摘要: 不光是查找值!“二分搜索” 最大化最小值 POJ 3258 N块石子,要移去M块,求剩余石子之间距离的最小值的最大值 二分答案 1 #include <algorithm> 2 #include <cstdio> 3 #include <iostream> 4 using namespace std 阅读全文
posted @ 2020-02-01 21:38 Linqi05 阅读(15) 评论(0) 推荐(0)
摘要: 数学问题的解题窍门 辗转相除法 AOJ 0005 输入2个数,输出它们的gcd和lcm 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int gcd(int a, int b) { 5 if (b == 0) return a; 6 re 阅读全文
posted @ 2020-01-29 19:41 Linqi05 阅读(15) 评论(0) 推荐(0)
摘要: 2.5 它们其实都是“图” 最短路 AOJ 0189 求图上一点,到所有其他点的距离之和最小 Floyd算法 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int inf = 1e8; 5 int d[11][11]; 6 7 阅读全文
posted @ 2020-01-27 23:53 Linqi05 阅读(11) 评论(0) 推荐(0)
摘要: 2.4 加工并存储数据的数据结构 优先队列 POJ 3614 C个cow各需要一定范围的SPF防晒霜,给出L种防晒霜及其数量,求最大能满足多少cow的需要 按右端点排序,优先使用SPF小的防晒霜 1 #include <algorithm> 2 #include <iostream> 3 #incl 阅读全文
posted @ 2020-01-20 20:32 Linqi05 阅读(14) 评论(0) 推荐(0)
摘要: A ConneR and the A.R.C. Markland-N 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 #define inc(i, l, r) for (int i = l; i < 阅读全文
posted @ 2020-01-20 11:13 Linqi05 阅读(215) 评论(0) 推荐(0)