贪心
YiPeng_Deng
这个作者很懒,什么都没留下…
展开
-
arc113E Rvom and Rsrev
Description传送门Solution如果a偶数那么b一定不删,末尾为b则删完a,为a则将a花费最小的代价聚在最后。如果a为奇数,最后为a那么用最小代价将a聚集,最后为b则看b是否大于2个,以及前面是否有b来确定是否花费2个b使得开头有b-2个b。注意花费最小代价聚集可以先将所有大小为1的两两消掉。如果用了b-2的操作则看看最后一段a如果有1个是否可以往前面换。总之一点讨论,有点复杂。#include<cstdio>#include<cmath>#in原创 2021-02-22 22:20:08 · 300 阅读 · 0 评论 -
CF1028G Guess the number
Description传送门Solution首先考虑一下为什么能够查询到一个101610^{16}1016的数。对于一个区间[l,r][l,r][l,r],我们最多查询min(l,1e4)min(l,1e4)min(l,1e4)个数,一开始只能够查询一个数(避免个数太多),显然如果查询出来是在mid+1mid+1mid+1后,我们之后可以使用的个数就更多了,因此感受一下第一次操作前一半很短,后一半很长,关键是怎么求出这个长度。不难想到一个dp,计f[l][c]f[l][c]f[l][c]为以原创 2020-12-17 22:42:59 · 166 阅读 · 0 评论 -
arc110E Shorten ABC
Description给一个只包含’A’‘B’'C’的字符串sss,每一次可以选择相邻的两个不相同的字符将它们合成与它们不同的字符。问sss经过任意次操作可以变成的不同的字符串有多少个∣S∣≤1e6|S|\le1e6∣S∣≤1e6Solution与agc027E一样假设ABCABCABC分别是123123123,那么如果不考虑相邻的不同的话,那么操作就是将x,yx,yx,y替换为x xor yx\ xor\ yx xor y,那么显然这个是满足结合律原创 2020-12-08 22:27:38 · 487 阅读 · 1 评论 -
CF1427F Boring Card Game
Description传送门Solution居然是一道贪心/构造题。首先不考虑轮流选择的限制,那么显然我们可以把能够删的删去,不断重复。实际上这个也可以写成栈的形式。现在再来考虑一下轮流选择的时候,如果我们用栈的形式,显然可以贪心地构造一棵树出来,只需要每一次选择叶子并保证剩下至少一个属于后手的根即可。可以证明的是,由于个数是一样的,并且保证至少有一个属于后手的根(即有解),讨论一下即可知道选择叶子一定是可行的。#include<cstdio>#include<cs原创 2020-12-04 15:40:13 · 358 阅读 · 0 评论 -
arc109A~F
A.Hands贪心B.log贪心换最小C.Large RPS Tournament倍增DPD.L可以在小范围内BFS然后再将终点映射到这个范围内,但是很麻烦。将题意转化为三角形重心的移动,每一次可以向除了对角以外的七个方向移动,因此只需要在max(∣x∣,∣y∣)max(|x|,|y|)max(∣x∣,∣y∣)的基础上加上需要按照对角线调整的+1贡献即可(还要判掉同一个格子内的情况)E.1D Reversi Builder发现性质,1…1,11…1000…0,以及111原创 2020-12-04 09:44:06 · 435 阅读 · 0 评论 -
agc032E Modulo Pairing
agc032E Modulo Pairing将2n2n2n个数两两配对,使得每一对的和在模mmm意义下最大值最小。n≤1e5n\le1e5n≤1e5Solution首先二分答案midmidmid。然后考虑配对是可以贪心的,如果我们将2n2n2n个数先分成两个集合A,BA,BA,B,集合AAA内的和是[0,mid][0,mid][0,mid],BBB是[m,m+mid][m,m+mid][m,m+mid],那么这两个集合内部肯定是首尾配对。再考虑A,BA,BA,B如果相交或包含的话原创 2020-10-22 20:59:58 · 192 阅读 · 0 评论 -
CF506C Mr. Kitayuta vs. Bamboos
CF506C Mr. Kitayuta vs. Bamboos有nnn个竹子,第iii棵竹子第一天之前的高度是hih_ihi,每一天的末尾会长高aia_iai每一天你可以将砍kkk刀,每一刀将一个竹子砍ppp,如果砍的竹子高度小于ppp,那么将会被砍到000.求mmm天之后最高的竹子最矮是多少。注意每一天是先砍竹子、再长竹子。n≤1e5,m≤1e4,k≤10n\le1e5,m\le1e4,k\le10n≤1e5,m≤1e4,k≤10,所有读入的数≤1e9\le1e9≤1e9。Soluti原创 2020-10-16 07:28:05 · 134 阅读 · 0 评论 -
agc028E High Elements
agc028E High Elements将一个长度为nnn的排列PiP_iPi,将它分成两个序列AAA和BBB,使得A,BA,BA,B的前缀最大值个数相同。设si=0s_i=0si=0表示iii被分到AAA里,反之si=1s_i=1si=1分到BBB里,求一个字典序最小的sss满足上面的条件。n≤2e5n\le2e5n≤2e5Solution首先原排列的前缀最大值一定不管在哪个序列里都是前缀最大值。我们将原本不是前缀最大值,在分到某个序列之后变成了前缀最大值的元素叫做**“新原创 2020-10-16 07:27:03 · 126 阅读 · 0 评论 -
JZOJ6716. 【2020.06.07省选模拟】反讽
DescriptionT<=10;n,m<=1e6T<=10;n,m<=1e6T<=10;n,m<=1e6Solution一个常见的贪心模型,首先选了一段-1就一定要选连续的+1.考虑一个完全加强版,给一棵树的限制,每一条边(a,b)表示先-a,然后会有+b的收益,父亲边选了儿子才能选,当前的钱非负。考虑如果没有限制,那么收入为正的一定比收入为负的优。收入同时为正,限制小的优。收入同时为负,考虑反过来,那么就变成(b,a),那么b为限制,同理反过来,限制大的原创 2020-06-12 22:43:24 · 294 阅读 · 0 评论 -
JZOJ6641. 【GDOI20205.20模拟】sequence
DescriptionSolution首先你需要感受出一种贪心地方法:如果p<q,那么全部都放1肯定最优,否则考虑从1到n一个一个放,如果能往右放就往右放。对于p<=qp<=qp<=q的情况,相当于求∑i=1nik\sum_{i=1}^{n}i^k∑i=1nik,拉格朗日插值可以做到O(k)O(k)O(k)求一次。接下来考虑p>qp>qp>q。那么相当于从右往左放,每一次放的尽量多,可以二分放多少,再O(m)O(m)O(m)判断。由于长度是2n\s原创 2020-05-24 15:54:06 · 365 阅读 · 0 评论 -
【CSP-S2019D1T3】树上的数
DescriptionSolution瞎扯你管这叫联赛????NOIplus,CSP SCP Summer Camp Plus妙啊考场上想了两个小时,想出来了链和菊花,但是因为链比较难打,所以只打了菊花。。。没有时间打链了,难受。然而出来之后发现各路集训队dalao都没有调出来??同年级的也没有几个打菊花的??不亏。并且这个输入反了过来,除了方便标程以外就是反人类的操作。链的比...原创 2019-11-20 12:31:43 · 723 阅读 · 0 评论 -
JZOJ6400. 【NOIP2019模拟11.01】Game
Description传送门小 A 和小 B 在玩一个游戏,他们两个人每人有 ???? 张牌,每张牌有一个点数,并且在接下来的 ???? 个回合中每回合他们两人会分别打出手中的一张牌,点数严格更高的一方得一分.然而现在小 A 通过某种神秘的方法得到了小 B 的出牌顺序,现在他希望规划自己的出牌顺序使得自己在得分尽可能高的前提下出牌的字典序尽可能大。1<=n<=1e5Solution...原创 2019-11-03 22:43:17 · 655 阅读 · 0 评论 -
JZOJ6368. 【NOIP2019模拟2019.9.25】质树(tree)
Description大神 wyp 手里有棵二叉树,每个点有一个点权。大神 wyp 的这棵树是质树,因为随便找两个不同的点 u, v,只要 u 是 v 的祖先,都满足 u 和 v 的点权互质。现在你通过偷看了解到了大神 wyp 这棵树的中序遍历的点权值,你想复原出大神wyp 的树,或者指出不可能。n<=1e6Solution每一次取一个区间中的与其他位置互质的位置为根,如果有...原创 2019-09-27 21:53:31 · 161 阅读 · 0 评论 -
JZOJ5432. 【NOIP2017提高A组集训10.28】三元组
Description有X+Y+Z个三元组(x[i],y[i],z[i]),请你从每个三元组中挑数,并满足以下条件:1、每个三元组中可以且仅可以选择一个数(即x[i],y[i],z[i]中的一个)2、选择x[i]的三元组个数恰好为X3、选择y[i]的三元组个数恰好为Y4、选择z[i]的三元组个数恰好为Z问选出的数的和最大是多少问选出的数的和最大是多少对于100%的数据满足,1<...原创 2019-09-24 16:18:51 · 112 阅读 · 0 评论 -
JZOJ6364. 【NOIP2019模拟2019.9.20】养马(horse)
Description给定一颗树,每个点可以收获体力值a[i]且最多收获一次。每条边需要消耗体力值w[i],且每次经过都会消耗。等待1个单位时间回复1点体力值。初始体力为0,求从1出发经过所有点并回到1,最小等待的时间。n<=1e5Solution很容易想到DP,设f[i]表示i的子树遍历完后需要等待的最小时间,那么剩余的体力res[i]=sum[i]+f[i]-cost[i...原创 2019-09-21 22:00:50 · 403 阅读 · 0 评论 -
JZOJ5944.【NOIP2018模拟11.01】信标
PROBLEM建立最少的信标,使得任意两个点到至少一个信标的距离不同SOLUTION当n>1时,信标的个数>0,于是我们可以枚举其中一个信标的位置,将这个树的根就定为这个点,那么点就分层互不影响。考虑当我们在根上放信标后,我们在一个点上放信标,对于它的子树还是依照原先的分层,没有影响,对于它到根的路径,可以分成到它的距离不同的若干层,就相当于将它到根节点的路径割开,那么最终我们...原创 2018-11-22 17:35:52 · 186 阅读 · 0 评论 -
JZOJ6019. 【GDOI2019模拟2019.2.14】小b爱实数
DescriptionData ConstraintSolution(转自出题人题解,因为实在是太详细了不知道说什么)注意精度,被卡了好多次。。。。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define maxn 1000005#d...原创 2019-02-15 22:56:04 · 478 阅读 · 0 评论