摘要: Part 1 入门阶段 Part 1.1 从零开始 Part 1.2 数组基础 Part 1.3 字符串基础 Part 1.4 函数,递归及递推 Part 2 基础算法 Part 2.1 模拟 Part 2.2 排序算法 Part 2.3 二分答案 Part 2.4 分治 Part 2.5 贪心 P 阅读全文
posted @ 2021-09-03 00:20 Neworld1111 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 参加了icpc济南、ccpc威海、icpc南京 打铁*3 很不甘心 总之差一口气 阅读全文
posted @ 2021-12-04 16:14 Neworld1111 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目链接 先从小到大去排个序 想着记录每行每列当前最大值,然后就取两者最大值+1就行了 但是相同的数字因为行列不一,条件也不一样苛刻,所以要是能修改的时候把所有相同的数字也修改就好了 所以并查集,只关心根节点的值就好了 这里想漏了一点,并不是所有相同的数字都要相同,因为他们其实互不管辖,除了同行同列 阅读全文
posted @ 2021-12-02 14:05 Neworld1111 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 链接 一开始想到尺取法 但是要求必须包含1 所以就让一个指针倒退到不能退为止 阅读全文
posted @ 2021-12-02 01:31 Neworld1111 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 链接 一开始其实有想到按abc的比例去分xyz 但是觉得算了 数学这么差没什么自信 事实上确实是这样 新学了琴生不等式和AMGM不等式用来证明这个 这里最好多输出几位小数,防止加起来因为四舍五入的原因超过S #include <iostream> #include <iomanip> #includ 阅读全文
posted @ 2021-11-25 14:19 Neworld1111 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题目链接 至少要有一位相等,这样就会很复杂,可以反过来,全部不一样,好像就简单了不少 然后就可以预处理出来N/K个不能作为答案的长度为K的串 Hash一下 所以最多就N/K种 从0开始枚举就行了 #include <iostream> #include <cstdio> #include <stri 阅读全文
posted @ 2021-11-13 23:06 Neworld1111 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题目链接 线段树其实就行了 试一下分块 但很奇怪TLE了 调到200才A #include <iostream> #include <algorithm> #include <cstring> #include <cmath> using namespace std; #define MAXN 15 阅读全文
posted @ 2021-11-04 11:09 Neworld1111 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对数据进行操作,数据结构是没跑了 但是之前接触的数据结构基本是对连续的几个数或者特定的一个区间进行操作 这个就很迷 考虑从暴力先开始入手 for(int i=y;i<=N;i+=x) ans += a[i]; 这样单词修改代价是O(N) 考虑优化暴力,也只有分块了 也就是我们要让这个代价变 阅读全文
posted @ 2021-11-04 10:26 Neworld1111 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对树的路径进行操作,不难想到树的路径是唯一的,离不开LCA 添加一条新边后,答案有两种可能,一是走原树上路径,二是通过这条边走到 对于后者,其实答案就是dis(a,x)+1+dis(y,b)或者dis(a,y)+1+dis(x,b) 均是树上原有的,LCA可求 但是有个特殊情况,可以反复横 阅读全文
posted @ 2021-11-02 21:59 Neworld1111 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题目链接 受到之前一道题的启发 考虑两个子区间合并成一个区间,求该区间的最大和 那么只有这几种可能 左区间的左答案 ,左区间和+右区间左答案 右区间同理 以及左区间的右答案+右区间的左答案 #include <iostream> #include <algorithm> using namespac 阅读全文
posted @ 2021-10-28 13:39 Neworld1111 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目链接 维护除法的取余需要逆元,显然这题数据量不支持这么做 考虑维护一个数据结构,除法改为:x变成1 这样所有数字的乘积就是现在的答案 线段树维护区间乘积+单点修改即可 #include <iostream> using namespace std; #define MAXN 100005 int 阅读全文
posted @ 2021-10-27 23:42 Neworld1111 阅读(25) 评论(0) 推荐(0) 编辑