摘要: 1006 倒着维护区间之间的约束关系,再正向维护一边,剩下的区间就是答案的可行域,我们只需要把每个区间的可行域的$l$输出即可。 #include <bits/stdc++.h> using namespace std; #define ll long long ll input(){ ll x=0 阅读全文
posted @ 2020-08-16 16:14 _aether 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 1003 其实是签到题。现当于模拟这$n$张纸展开的过程,现当于每次把前一半逆时针旋转180度,随便模拟一下就过了。 #include <bits/stdc++.h> using namespace std; #define ll long long ll input(){ ll x=0,f=0;c 阅读全文
posted @ 2020-08-04 23:52 _aether 阅读(232) 评论(0) 推荐(0) 编辑
摘要: I 转化为图论模型来解决问题。把给定二元组当作一条边,那么显然,如果对于一个连通块如果其是一棵树,那么就会给答案增加这个连通块大小-1的贡献、如果是一个仙人掌,那么就会给答案增加连通块大小的贡献。拿并查集即可维护我们所需的信息。由于给定二元组的值域比较大,所以需要离散化处理。 #include <b 阅读全文
posted @ 2020-08-03 22:55 _aether 阅读(230) 评论(0) 推荐(0) 编辑
摘要: D 温暖的签到题。 #include <bits/stdc++.h> using namespace std; #define ll long long ll input(){ ll x=0,f=0;char ch=getchar(); while(ch<'0'||ch>'9') f|=ch=='- 阅读全文
posted @ 2020-08-01 23:59 _aether 阅读(159) 评论(0) 推荐(0) 编辑
摘要: C 温暖的签到题。找到答案最大的一列即可,因为如果有多列的话,一定可以分为两个行数不变的矩阵,其中一个答案一定不会变坏。我一开始还以为是0/1分数规划 #include <bits/stdc++.h> using namespace std; #define ll long long ll inpu 阅读全文
posted @ 2020-07-29 16:09 _aether 阅读(208) 评论(0) 推荐(1) 编辑
摘要: 1004 计算取模后的前缀和,并且存到map里,然后每次在map里查找是否有相同的数,有则答案加一,清空前缀和和map,没有则继续往后找。不过要提前把是k的倍数加到答案里,上面遇到0直接结束,清空map,查找下一段。 #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2020-07-29 15:36 _aether 阅读(268) 评论(0) 推荐(0) 编辑
摘要: F 温柔的签到题。 注意这里使用c++的ceil函数会有误差,需要自己手动ceil。注意手动ceil的时候可能会爆long long。 #include <bits/stdc++.h> using namespace std; #define ll long long ll input(){ ll 阅读全文
posted @ 2020-07-25 23:39 _aether 阅读(290) 评论(1) 推荐(2) 编辑
摘要: 1001 并查集。考虑按点权大到小把点插入图中,每次插入点到图中,我们不妨设集合$S$(其中$s_i$为第$i$个集合的权值)为与当前点相连的连通块组成的集合,$w$为当前节点的权值。易得插入一个点得到的新连通块的公式为: \[ \sum^S (s_i-w)+w \] 那么维护集合我们很自然的想到用 阅读全文
posted @ 2020-07-23 23:15 _aether 阅读(236) 评论(0) 推荐(0) 编辑
摘要: L 温暖的签到题。 #include <bits/stdc++.h> using namespace std; #define ll long long ll input(){ ll x=0,f=0;char ch=getchar(); while(ch<'0'||ch>'9') f|=ch=='- 阅读全文
posted @ 2020-07-18 23:57 _aether 阅读(421) 评论(0) 推荐(3) 编辑
摘要: D 温暖的签到题。 #include <bits/stdc++.h> using namespace std; #define ll long long ll input(){ ll x=0,f=0;char ch=getchar(); while(ch<'0'||ch>'9') f|=ch=='- 阅读全文
posted @ 2020-07-13 23:03 _aether 阅读(369) 评论(1) 推荐(1) 编辑