- 博客(11)
- 收藏
- 关注
原创 将一组数分成k组组内数字两两不同的组(公式)
本题需要我们选出能够将所有数字消除的最小操作次数,每次我们能够消除k个不同的数字,该如何确保删除次数最小呢?只需要确保每次都能够将消除k个数字,假设有一箱球,箱子中有多种不同颜色的球,每种球个数都不相同,我们每次可以选择两个不同颜色的球两两相消,当球总数为偶数个时,并且数量最多的球小于其余所有球的总和,我们就能够保证他们能够被消除,因为我们每次都可以取最大值和次大值相消,最后这个序列将会变成都是1的序列。将这个思想延伸一下,我们每次需要消除的数量是 k 个呢?
2024-10-14 21:16:19
501
原创 并查集的使用与优化(cf round 976 d题)
本题大致意思为在一个数轴上进行操作,每次都将符合要求的点连起来,显而易见,本题应该使用并查集,但是如果直接使用并查集,不进行任何优化,时间复杂度就达到了O(),显然,这是不行的我们应该考虑去优化这个并查集,首先,每一次操作,他们连接都有可能会和其他的操作重复,那么有没有方法能够让我们将这部分重复操作去除呢?
2024-10-13 17:38:30
265
原创 约数定理应用
本题会从1-n交替转换约数为 i 的灯的状态,我们需要求出最少需要多少个灯,能够使得最终亮着的灯的数量刚好为k。将题意转换一下,我们能发现,最终能够亮着的灯,他们的约数个数都为偶数,所以本题我们的最终答案应该是从1-n中第一次约数为偶数的数的个数为k时结束,此时输出答案,所以我们应该想到二分答案,去查找n最小为多少时,能够满足条件。
2024-10-13 16:49:17
510
原创 codeforces round 977 c题题解(set的使用)
本题给出了成员顺序以及念ppt的最好人选,需要我们判断是否能够让每一个ppt都被最适合的人读到。
2024-10-11 22:03:23
728
原创 cf ruond975 b,c题解与总结
本题给了我们一个数轴,并给了我们许多个点,并给出了多次询问,每次询问给了我们一个x,需要我们给出有多少个点被x个区间利用了。我们需要想清楚,给出了我们n个点,那么没给出的点和给出的点在被多少区间使用会有什么区别吗?毫无疑问,是有着一些区别的,在数轴上给出的点,我们能够将他们作为起始点与其他给出的点相互连起来。例如第二个样例1 2 3 5 6 7,这个数据中,4没有给出,那么四会被多少个区间包含呢?
2024-10-01 17:43:03
348
原创 codeforces round‘ 945 b题题解
将它们划分为4个部分,找到他们每一部分的最长0串,将它加一,就是这一部分的最优解,接着找到所有部分的,最后得到总体的最优解就是所有部分的最长0串加1了,如果不取最长的话,那么会有些部分不满足。题意分析:给定一个a数组,找出一个k,使得将a数组分成很多个部分,每个部分有k个数,使得每个部分的按位或的值相等。该题可使用二进制的拆分法,将每个数的二进制每一位都分别讨论,最后取满足所有部分的值的最小值。len用来记录连续0的个数,ma记录第i部分中最优的解。res记录的是总体上的最优解,最后输出res即可。
2024-05-18 16:48:41
538
原创 2024CCPC郑州全国邀请赛暨河南省赛赛后总结与反思
,我想到了把绝对值去掉,但还是没有想到我们应该找的是k,不是x,我好多次想到了去绝对值,但却没想到可以去找k,我们队伍也想到了二分,但想到的是二分去找可行的x,直到比赛结束也没有a出m题,听了赛后讲解,豁然开朗,这是吃了上大学的亏啊,高中知识遗忘的太多了,这次比赛也让我见识了acm强队的风采,漫天飘起的气球十分的震撼,或许这就是线下赛的魅力,最后也是没能拿到邀请赛的铜牌,只拿到了省赛的铜牌,也是十分遗憾,因为我们队伍前三题都是一次过,若是能写出m题,还是有可能拿到邀请赛的牌子的,明年再战吧。
2024-05-14 22:33:53
838
2
原创 洛谷题单搜索 [USACO11OPEN] Corn Maze S
1,经过传送门门时,必须要传送,想要跨过传送门的话,需要先传送再随便走一步在回到原来的传送门,这样才能达到跨过传送门的目的。2,传送门被墙围着,该情况无解void change(int &nx,int &ny,int t)//传入地址,以便在函数中直接修改x,y的值i<=n;i++)j<=m;j++)=nx||j!=ny))nx=i;ny=j;return;int n,m;bool st[N];int aa,bb;//起点坐标//终点坐标void bfs()
2024-04-16 16:08:52
304
1
原创 3月15日codeforcesB题题解
B题需要用一个变量存储每次q[i]比较的值,如12 3 5。则将第一个数拆分成1和2,flag=1。接着和3比较,以此类推。q【i】总共有三种情况.二:q【i】为十位数,定义两个变量x,y记录q【i】的十位和个位,若是符合y大于x且x大于flag,则将y赋给flag。一:q【i】为个位数,无法拆分,若是大于flag,就将值赋给flag,继续循环。三:不满足上述条件,则直接输出”NO“,结束循环,返回。
2024-03-16 19:26:19
503
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅