摘要: 题目链接 #解题思路 分块模版i #代码 const int maxn = 5e4+10; int n,sz,num,a[maxn],ls[maxn],rs[maxn],belong[maxn],lazy[maxn]; void build() { num = (n+sz-1)/sz; //分块大小 阅读全文
posted @ 2020-07-21 15:55 shuitiangong 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #解题思路 题面差不多已经用的算法写到脸上了,不过有个问题就是怎么判断枚举的区间符合条件,如果直接暴力的话复杂度就要乘上q,但是如果用一个变量来计数的话,就能让时间复杂度降下来。 #代码 const int maxn = 1e5+10; int n,m,a[maxn],cnt[maxn]; 阅读全文
posted @ 2020-07-21 11:04 shuitiangong 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #解题思路 一共就4个数,分3步,每次让两个数通过乘或加合并成一个数,数据范围很小,所以直接大力搜就是了。 #代码 ll a[4], ans = LLONG_MAX; bool vis[maxn]; string s; void dfs(int p) { if (p==3) { for ( 阅读全文
posted @ 2020-07-21 10:28 shuitiangong 阅读(343) 评论(0) 推荐(0) 编辑