首页 > 其他分享 >CF1375题解

CF1375题解

时间:2024-11-22 11:19:41浏览次数:1  
标签:题解 合法 CF1375 操作 考虑 数都 我们

CF评分2693,豆瓣拒绝评分,这套题啥实力就不用说了

CF1375A

被爆切了(悲,md想了20分钟没有想出来,然后就看了一眼题解,wc这不直接一正一负就解决了吗。。。

脑子不转了

CF1375B

切了,首先有一组必然合法的解,就是把所有数都变为大于0的数,这样必然是最大的解,若 \(a[i]\) 还有比这组解大的就必然不合法

CF1375C

差一点,少考虑了一点

我们观察首先 \(a[n]\) 只能由比它小的数消掉并且他还是最后一个数,所以最一次消除操作右边的数一定小于等于 \(a[n]\),因为我们贪心的要让右边的数尽可能的大,所以最终右边的数是 \(a[n]\) 是最优的

我们再次观察 \(a[1]\) 只能由比它大的数消去,并且它还是最左边的数,所以同理,最后一次消除操作左边的数一定大于等于 \(a[1]\) ,我们贪心的让左边的数尽可能的小,所以最终左边的数是 \(a[1]\) 是最优的

所以只需要考虑最后一次操作,也就是若 \(a[1]<a[n]\) 则成立,否则不成立

若有人说中间的数怎么办,考虑因为 \(a[1]<a[n]\),所以比 \(a[1]\) 小的数一定能被 \(a[n]\) 消掉,所以比 \(a[n]\) 小的数一定能被 \(a[1]\) 消掉,证毕

CF1375D

构造题,挺好玩的

这种题的思路就是无论你给我的输入是什么样的,我就给你一种合法的解,一招治百变

首先,我们想到最后可以把排列变成 0~n-1,考虑怎么做呢?

如果初始的排列中的数本身就没有重复的,且值域在 \([0,n-1]\) 显然是好做的,我们找到一个不对应的数,然后将这个数先经过一步跳到n,此时这个数就空出来了,我们把应该填这一个数的位置再进行一次操作,把它变成正确的,然后又空出来另一个数,然后继续进行操作,最后形成了一个环回到了原来的位置,操作次数是环的大小+1

然后我们考虑如果原数列是有重复的呢,我们可以先把一个有重复的数进行一次操作变成没有重复的数,考虑最多所有数都是n,最多进行n次操作

把两个操作组合起来,就是通解了

欸但是,你会发现第一个操作最多是n次,第二次操作是环长+1,这个数不保证小于 \(2*n\) 的怎么办?

考虑这样一件事情,第一次操作如果是n次,那么必然所有数都是n,我们把第一个操作跑完后本身序列就是合法的

那么另一种情况呢,比如全是0,那我们第一次操作就会进行n-1次,但是我们会发现我们第一种方式最多形成一个环,所以第二种操作是n+1次,也合法

一般的,我们我们设原数列给出了k个不相同的数(且不为n),所以第一次操作就会进行 \(n-k\) 次,然而只有给出的数才会构成不同的环,这样第二次操作最多有 \(n+k\) 次,可以保证在 \(2*n\) 次内解决

标签:题解,合法,CF1375,操作,考虑,数都,我们
From: https://www.cnblogs.com/zcxnb/p/18562041

相关文章

  • Atcoder Regular Contest 061 题解
    ARC061C.ManyFormulas*1089首先预处理出原数区间\([i,j]\)所代表的真实数字。然后注意到\(|s|\leq10\),所以直接爆搜回溯最后判断即可。或者状压枚举也可以,反正非常简单。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;strings;LLSum[11][11]......
  • 2024考前集训测试37 错峰旅行 题解
    题目描述小Z终于迎来了自己的大学生活最后的时刻,他决定用自己的积蓄来一场说走就走的毕业旅行,并且不玩的开心不上班。然而,他很快就发现这个决定并非那么简单。由于是暑假,假期人多,他既不想错过旅行的最佳时期,又不想在人群中挣扎,预测旅游热门城市的拥挤时段,就像是一道难题摆在他......
  • ybtoj 高效进阶题解索引
    密码:sunxuhetai2009--------------------云落的分割线--------------------基础算法第1章-递推算法第2章-贪心算法--------------------云落的分割线--------------------图论第1章-并查集第4章-强连通分量--------------------云落的分割线--------------------......
  • Winform跨线程访问报错问题解决
    `usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWinf......
  • [JOI 2022 Final] 让我们赢得选举 (Let's Win the Election) 题解
    [JOI2022Final]让我们赢得选举(Let'sWintheElection)/選挙で勝とう(Let'sWintheElection)首先由\[\min\left(\fracab,\fraccd\right)\le\frac{a+c}{b+d}\le\max\left(\fracab,\fraccd\right)\]得出,集中力量办大事,得到的支持者一定要和本人在同一州进行演讲。......
  • [COCI2015-2016#6] PAROVI | 互质覆盖 题解
    前言不能在同一个坑上栽第三次!题目链接:原题;加强版。题意简述\(1\simn\)数轴,你可以使用若干条线段\([l,r]\)来覆盖,其中要满足\(\gcd(l,r)=1\)。问你能够完全覆盖数轴的方案数,对\(M\)取模。\(2\leqn\leq10^4\),\(2\leqM\leq10^9+7\)。不保证\(M\)为质数。......
  • 【题解】AT_joisc2007_mall ショッピングモール (Mall)
    原题传送门温馨提示:岛国题要换行!需要求一个矩阵的和,考虑二维前缀和。题目中不允许矩阵中有负数,结合求和的最小值,我们把负数赋为最大值不就行了吗。接下来就是求二维前缀和了。基于容斥原理,二维前缀和有如下递推关系:\[sum_{i,j}=sum_{i-1,j}+sum_{i,j-1}-sum_{i-1,j-1}+c_{i......
  • 【题解】AT_agc011_b [AGC011B] Colorful Creatures
    原题传送门我们知道,要想使一个生物能活到最后,那么它进行的每一次吸收前,它的大小应当尽可能大,所以我们考虑贪心,对生物的大小从小到大排序,每个生物都从小的开始吸收,看能不能活到最后,时间复杂度\(\mathcal{O(n^2)}\)。我们还知道,排序后,生物\(i\)能活到最后,则生物\(i+1\simn\)......
  • P7906 [Ynoi2005] rpxleqxq 题解
    P7906[Ynoi2005]rpxleqxq题解题目大意给定一个长度为\(n\)的序列\(A\),和一个常数\(k\)。有\(m\)次询问,每次给定一个区间\([l,r]\),询问有多少二元组\((i,j)\),满足:\(1\leqi<j\leqn\);\((A_i\oplusA_j)\leqk\)。Solve前置知识:莫队二次离线。对于普通莫队,端......
  • [CSP-S2019]Emiya 家今天的饭 题解
    题意分析给出一个矩阵,要求每行只能选一个节点,每列选的节点不能超过所有选的节点的一半,不能不选,给出每个节点的选择方案数,求总方案数考场思路考虑暴力枚举每一个点的选择情况,最后统计答案。对于行:但是因为有每一行只能选择一个的限制,所以考虑当前行选择一个后直接转跳到下一行......