![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维题
文章平均质量分 65
飞猪不会飞123
ICPC区域赛银,2年算法竞赛辅导经历。北京师范大学计算机研究生
展开
-
CF757D1-思维,数论dp
题目大意:给你一个序列aia_iai,让你将其重新排列使得∑i=1ngcd(a1,...,ai)\sum_{i=1}^{n}gcd(a_1,...,a_i)∑i=1ngcd(a1,...,ai)最大n≤1e5,ai≤5e6n \leq 1e5 , a_i \leq 5e6n≤1e5,ai≤5e6分析:最后的答案展开后值域一定是分块的,类似于a,a,a,b,b,c,c,..a,a,a,b,b,c,c,..a,a,a,b,b,c,c,..且整体值域是递减的,且任意两个数满足约数关系所以我们原创 2021-11-27 13:21:20 · 248 阅读 · 0 评论 -
2020小米选拔赛(二)-A-2020-二分答案+贪心
题目链接题目大意:给你一个长度为n(n≤1e5)n(n \leq 1e5)n(n≤1e5)只含有0,20,20,2的字符串。每个数字只能用一次。让你找出最多的互相不重复的子序列202020202020.例如:8202202002题目思路:2019湘潭邀请赛有道简单版,这道复杂一点。如果四个数字互不相同。直接贪心即可。这里的问题就在于数字有重复。那么《凑满一个是一个》这种贪心会错.比如上面那个。换一种贪心思路:假设让我们找出xxx个子序列。那么可以这么做:先找出前xxx个2.再对每个原创 2021-06-01 22:35:11 · 137 阅读 · 0 评论 -
2019浙江省赛C-错排问题,贪心
题目大意:给你一个序列,让你找出一种字典序最小的错排。题目思路:1.将这个问题拓展一下:给两个序列(不一定全等)。找字典序最小的错排。2.错排存在的充要条件为:两个序列的和中出现次数最多的数 不超过 序列总长.(鸽巢定理)3.依靠条件2,我们自然可以直接贪心的从小往大的填数,同时保证任意时刻,条件2成立即可(剩下的数最多出现次数不超过剩下的位置).那么填数分两个阶段,第一个阶段贪心的填最小值和次小值。第二阶段到达条件2的临界条件。代码有注释:#include<bits/stdc++.原创 2021-09-01 16:45:00 · 146 阅读 · 0 评论 -
2019陕西省省赛J-位运算+贪心
题目大意:给你nnn个区间,你需要从每个区间中取出一个数。使得他们按位与后最大。题目思路:从高位开始尝试置1.然后check每个区间。我将问题转化为:找到小于RRR的最大的包含当前ansansans的数XXX.然后check它和LLL的大小关系.这样就从 区间存在性问题 转化为: 最值问题.这个时候同样贪心做即可.这样还是带两个log,需要在两处加剪枝,最后时间从T优化为277ms#include<bits/stdc++.h>using namespace std;#defin原创 2021-08-31 10:46:21 · 137 阅读 · 0 评论 -
p4552-差分
第一问容易看出是max(p,n)max(p,n)max(p,n)第二问,考虑b[1]b[1]b[1]可以被我们构成多少可能的结果。让每个数变成一样的本质就是让差分数组的后n−1n-1n−1项全变成0.该过程的每一步 就是 让一个正数–,负数++.因为要保证步数最小,那么这里面至少有min(p,n)min(p,n)min(p,n)步是从[2,n][2,n][2,n]中同时拿掉一对+1-1剩下abs(p−n)abs(p-n)abs(p−n)步,有两种决策,要么和b[1]b[1]b[1]操作,要么和b.原创 2021-08-29 12:06:04 · 139 阅读 · 0 评论 -
2021年ICPC银川-B-思维,dp
题目大意:给你一个长度为nnn的序列。对于每一个k,k∈[1,n]k,k\in[1,n]k,k∈[1,n].问你将其分成kkk个段,每个段的贡献为该段最大值-最小值。贡献总和最大值是多少.n≤1e3n \leq 1e3n≤1e3类似关于最短路的题目可见:我的另一个博客题目思路:贡献为最大值-最小值。让贡献总和最大化.该问题等价于:分成k段,每段选择两个数的差作为贡献。让贡献总和最大化.最优解一定是最大值-最小值。现在的问题就是如何快速的求出每一个kkk的结果.将其变成状态机模型:每个值有4种原创 2021-06-21 20:22:33 · 752 阅读 · 1 评论 -
2021湘潭邀请赛-正式赛-F-思维,偏序,二维树状数组
题目大意:给你一个n∗mn*mn∗m的二维矩阵。问你有多少个点对((x,y),(a,b))((x,y),(a,b))((x,y),(a,b))满足arr[x][y]>arr[a][b]+∣x−a∣+∣y−b∣arr[x][y]>arr[a][b]+|x-a|+|y-b|arr[x][y]>arr[a][b]+∣x−a∣+∣y−b∣.即arrarrarr的差值大于两者曼哈顿距离.题目思路:1.常见套路:拆绝对值,拆成四种情况.2.对于四种情况分别考虑。(前者为点A,前者为点B)例如:原创 2021-06-21 16:30:20 · 261 阅读 · 3 评论 -
2021四川省赛J-Ant-思维+队列
题目大意:一维数轴[1,1e9][1,1e9][1,1e9]上有nnn个蚂蚁,每个蚂蚁有一个初始方向(左右).然后开始以1的速度运动.两蚂蚁碰撞后反向.在数轴两端有两个石头,每个石头分别有a,ba,ba,b的耐性(指被撞多少次后碎掉).蚂蚁撞上石头后也反向。问所有蚂蚁全部掉落的时间.n≤1e5,a,b≤1e9n \leq 1e5 , a , b \leq 1e9n≤1e5,a,b≤1e9.题目思路:1.每隔2L2L2L,每个蚂蚁会回到自己的原位置且方向不变.所以我们可以直接模拟最后一轮的情况.2.原创 2021-06-17 10:58:20 · 363 阅读 · 1 评论 -
上海理工大学第二届“联想杯”全国程序设计邀请赛-I-贪心+优先队列
题目大意:给你一个长度为nnn的二进制字符串,他的价值为每一个连续1的段的Cn2C_n^2Cn2,你每次可以将一个1变成0,问你最少的操作次数使得总价值≤k\leq k≤k.n≤1e5,k≤1e10n \leq 1e5,k\leq 1e10n≤1e5,k≤1e10.题目思路:对于连续的一段,一次操作,我们肯定是对半切最优。若干次操作,一定是均分最优。那么我们可以用一个优先队列{维护每一个段,他被操作过几次},大根堆.这里我们需要计算,一个长度为nnn的段,操作kkk次之后的价值.目标肯定是让每原创 2021-06-14 10:23:03 · 300 阅读 · 0 评论 -
小结:区间加减构造类型题目
文章目录一.题目特征二.解法三.题目清单3.1 LeetCode 5459(基础形式)题目大意题目思路3.2 2021牛客寒假算法基础集训营5 石子游戏题目大意题目思路3.3 牛客OI周赛15-普及组 - C - 区间加题目大意题目思路O(n2)O(n^2)O(n2)解法O(n)O(n)O(n)解法3.4 CF - 1400E-Clear the Multiset题目大意题目思路3.5 HDU Total Eclipse题目大意题目思路一.题目特征给一个序列。给一个操作:选择一段子区间,整体加1 or原创 2021-03-31 21:52:43 · 1278 阅读 · 0 评论