自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 D. The Number of Imposters 【两种解法,带权并查集&&种类并查集】

有n个玩家,两种身份,"imposter"总是说谎,"crewmate"总是说实话,现在给你m条信息,让判断最多有多少个"imposter"。还有一种判断矛盾的方法,就是看find(i)==find(i+n),如果自己跟自己连接,显然矛盾直接输出-1。如果p=1,那么当前节点 j 跟他的父节点 i 是相异的,我们维护它们之间的权值为1。如果p=0,那么当前节点 j 跟他的父节点 i 是相同的,我们维护它们之间的权值为0。有两种类型的人,一种诚实,一种说谎,我们开2*n的数组,每n个为一种类型。

2024-01-25 11:32:19 940 1

原创 Codeforces Round 910 (Div. 2) B. Milena and Admirer

最靠后的肯定是要更大的,所以需要从后往前进行遍历,发现a[i-1]比a[i]大的话,就需要对a[i-1]进行拆分了,如何拆分呢?我一开始想的是将它拆成比较均匀的两份,然后再不停的拆,不过很快发现这样不对,看题解发现先是需要拆成比较均匀的k份,让当前a[i-1]=a[i-1]/k,因为增加了k-1份,所以每次拆分需要加上k-1。k需要向上取整,使用ceil()函数的话,ceil((float)a[i-1]/a[i])会爆精度,写成ceil((1.0)*a[i-1]/a[i])比较好。

2023-12-01 21:29:59 75 1

原创 Codeforces Round 295 (Div. 2) B. Two Buttons

解题思路:就是一道bfs模板题,正好bfs有点忘了,顺带复习总结一下。

2023-11-24 10:57:36 45 1

原创 The 2019 ICPC China Shaanxi Provincial Programming Contest C. 0689

解题思路:假设每一个字符串都能翻转出不同的新字符串,那么一共可以翻转出n*(n-1)/2个新字符串,加上原字符串,一共n*(n-1)/2+1个字符串。我们发现对于两侧结尾为0-0、8-8、6-9、9-6的字符串,实际上还是翻转它内部的字符串,所以我们需要减去上述情况。值得注意的是,题目要求求得翻转后的字符串数量,而对于字符串中存在0或8的字符,翻转后可以得到原字符串,而对于字符串全由6或9组成的则不可以,所以这种情况需要减1。对于6-9、9-6:减去num6*num9。

2023-11-08 21:24:34 117 1

原创 The 2019 ICPC China Shaanxi Provincial Programming Contest B. Grid with Arrows

一个n*m的网格,每个单元格上都有箭头和步长,根据箭头和步长可以移动到下一个单元格中,可以任意选择一个单元格作为开始,如果决定勾选的单元格不存在,或者如果该单元格已经勾选,则游戏结束。赛时没写出来的一道,当时想着用并查集来维护是否联通了,但是开了个结构体的二维数组,空间限制超了,后来看题解发现可以用一维代替二维。2.整张图连成了一个链,第一个节点的出度会比入度大1,最后一个节点的出度会比入度小1。1.整张图连成了一个环,每个点的出度和入度都是1.遍历整个图,记录每个点的入度和出度。

2023-11-08 19:54:52 93 1

原创 The 2019 ICPC China Shaanxi Provincial Programming Contest E. Turn It Off

Turn It Off 记录一下字符串里面1的数量num,如果num比可以关的次数小或者等于,那么就直接输出1,否则根据让num/k向上取整,这样就得到了一个最小的区间长度mi,使用这个区间长度遍历,看是否能遍历完,不能就让mi++,直到可以为止。前面跟上面思路一样,记录一下字符串里面1的数量num,如果num比可以关的次数小或者等于,那么就直接输出1,否则二分出合法的最小区间长度。有一排n数量的灯,有开有关的,每次可以关连续的L里的灯,最多可以关k次,问每次关的距离最短可以是多少。

2023-11-07 20:39:52 95

原创 2023河南萌新联赛第(二)场:河南工业大学 补题 E.释怀的RT

将每个灯能照亮的格子+1,那么不能照亮的地方的值就为0,累计有多少个不为0的格子,即为最终答案。由于要多次修改区间值,所以考虑使用差分来优化,再注意一下边界就好了。给n个格子,每个格子上的数代表可以照亮左右两边的长度,格子本身不能被照亮,问一共有多少个格子能被照亮。//s为当前格子的前缀和。

2023-07-20 17:30:59 57

原创 2023河南萌新联赛第(二)场:河南工业大学 补题 A.自动收小麦机

题目大意:一个不递减的序列,一桶水到一个平面上可以最多流k格,如果流到了下一个阶梯,就又重新计算流动的距离,每个格子上有不同数量的小麦,问最多可以收获多少小麦。用前缀和统计小麦的数量,h记录阶梯高度,s1数组记录当前平面流动水流距离,s2[i]数组记录从 i 倒水可以最长流动距离。判断当前的s1[i]是否小于k,小于就可以流到下一层,s1[i]=s1[i-1],否则,计算在此平面上最长可以流的距离。如果h[i]的高度不等于h[i-1],则s1[i]=1,否则,累加距离。q次查询直接输出查询结果即可。

2023-07-20 14:55:10 59

原创 TWO.Codeforces Round 784 (Div. 4) 【ALL】

Codeforces Round 784 (Div. 4)A. Division? B. Triple C. Odd/Even Increments D. Colorful Stamp E. 2-Letter StringsF. Eating Candies G. Fall Down H. Maximal AND给你一些值,你可以对这些值的二进制进行or运算,【例如1000,进行一次or运算可以变成1100】,一共可以改变k次,问改变后的这些值一起and运算的结果最大是多少。

2023-07-20 09:22:52 140

原创 E-copy

拿vector存一下,然后,删匹配位置的数据,添加到开头。

2023-07-03 09:58:07 69 1

原创 2020 China Collegiate Programming Contest, Weihai Site Gym - 102798H. Message Bomb

由于每组的消息数都是呈递增顺序的,这道题可以转换为对每组的消息数进行前缀和,对于每一个加入这个组的人,求取他在每组中的退出和加入之间的区间和,相加即为这个人所接收到的所有消息数。值得注意的是,一些人可能在最后还没有退出群组,我们使用set记录一下没有退出的组,处理相加一下即可。总结:思维转换还是很重要的,对一个实际问题进行抽象,根据消息在每组中的递增,可以对组员接受消息进行区间求和,这是我在做题中没有想到的,另外,对STL的知识还很薄弱,今天再详细学习一下吧。

2023-06-29 09:36:21 129 1

原创 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest Gym - 104385B - Wonderful Array

我们思考,满足前一个数取模大于后一个的情况是什么样的,应该是前一个数值接近m然后再加上一个a序列的值,由于a序列都对m取过模,故a序列中的数值必定小于m,相加后得到当前数值大于m,取模后的数值小于前一个数值。这就是我们要寻找的合法情况,对于每一个m都应该存在一个这样的数值,一共有几个m值呢?,这肯定很多,因为b序列的当前值是由前一个值加上a序列里的一个值,故b序列整体呈递增的趋势,求

2023-06-27 17:09:51 383 1

原创 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest Gym - 104385J - Function

=n得a-sqrt

2023-06-27 16:03:26 581 1

原创 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest Gym - 104385I - Tree

对于操作1我们发现,只改变了x,y点处的值,二者中间的点由于连接的两边都要异或一下,两次异或等于本身,故不变。这道题对时间要求比较严格,建议使用scanf,printf输入输出,另外,过不了可以换换编译器试试。1.将x到y之间的所有线段的值w与z异或。2.计算所有连着x点的线段的异或值。

2023-06-27 10:16:32 284 1

原创 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest Gym - 104385K - Split

对于操作2,我们可以看成是插入k-1块板,切断a[i]与a[i+1]的联系,a[i]与a[i-1]之间的差值越大,我们最后得到的值就越小,所以我们只需要得到一个差分数组,将他进行排序,k-1个最小的差分数值相加(因为a[i]比a[i-1]小,所以相减是负数,越小代表差值越大),得到一个最小的差分值,与总和相加即可。从题中我们不难看出,其实全部的差值和为a[1]-a[n]=a[1]-a[2]+a[2]-a[3]...+a[n-1]-a[n]。2.求将序列分割为k块后,k块中的差值和。对于操作1,带入计算。

2023-06-27 10:14:11 582 1

原创 快速幂算法(超详细注释)

所谓快速幂,法如其名,快速,当计算平方形式的数(a^b)的时候使用它可以大大提高速度。例如:计算2^31次方传统思考是开个循环乘31次

2023-05-19 11:26:33 65 1

原创 素数筛【朴素,埃氏,欧拉】(持续优化ing)

朴素筛,埃氏筛,欧拉筛。

2023-03-14 21:13:50 102 1

C语言课程设计任务书.zip

C语言课程设计任务书.zip

2022-10-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除