- 博客(35)
- 收藏
- 关注
原创 训练赛补题
从最小的数开始,首先定义一个变量sum=0,加上这个数的个数,若下一个数比上一个数大1并且不同数字小于k,加上当前数的数量,若不同数的数量大于等于k,则减去最小数的数量并且加上当前数的数量,找最大值。一组卡牌,两个人轮流拿牌,Monocarp先拿牌,下一次拿的牌只能是这个数字或者这个数字加1,并且牌不同的数量不能超过k,求Monocarp可以拿的最大数量。计算数组中最大不重叠的美丽段的数量。定义一个变量s=0,让数组每次累加,并且mp[s]++,当这个数再一次出现的时候,证明有一段数组累加后的结果为0。
2024-11-20 20:47:29
248
原创 并查集+例题
并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图,求最小生成树的Kruskal算法和最近公共祖先(LCA)等。如果按照上面的find函数那样写的话,就会形成一个像绳子那样特别长的链表,所以我们需要进行状态压缩。,n的n个元素,我们用一个数组fa[]来储存每个元素的父节点。一个典型的并查集例题。只需要当a=2时,若find(b)==find©输出Y,否则输出N就可以了。优化合并就是把小集合的根指向大集合的根。
2024-08-22 20:26:40
457
原创 背包九讲(动态规划)
原因:f[i] [j]是从上一轮i-1的状态得来的,f[i] [j]和f[i-1] [j]并不相等,优化到一维后,如果我们还是正序,那么本应该是第i-1的状态用来更新的却是第i轮的状态。01背包的动态转移方程是:f[i] [j]=max(f[i-1] [j],f[i-1] [j-v[i]]+w[i]);
2024-08-13 20:35:31
986
原创 拓扑排序,搜索(树与图的遍历)
首先是不含队列的板子有向图拓扑排序算法的基本步骤任何一个无环有向图(AOV网),其全部顶点都可以排成一个拓扑序列。而且其拓扑序列不一定是唯一的。拓扑排序可以用来判断一个有向图是否有环。
2024-08-02 19:59:11
356
原创 bitset的使用
bitset是一个类似数组的结构,仅由0,1组成,每个元素仅用1bit空间,相当于一个char元素所占空间的八分之一。使用bitset时要确定长度。类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作 bitset,并将它与字符串和整数相互转换。对于字符串表示和移位操作的列举方向来说,这个序列被当做最低索引元素位于右侧,类似于整数的二进制表示。这个类提供了一些方便的方法来操作位,例如设置、重置、翻转位等.
2024-07-21 17:19:49
218
原创 河南萌新联赛2024第(一)场:河南农业大学
链接:https://ac.nowcoder.com/acm/contest/86639/A。
2024-07-17 20:19:28
953
原创 Codeforces Round 958 (Div. 2) 7.15
拆分多集,多实例测试,输入n和k,原来多集里面有一个数n,需要把多集里面都拆分成n个1,可以选择一个数字u删除,然后插入不超过k个数,输出最少的操作次数。
2024-07-16 13:23:57
456
原创 第十八届东北CCPC程序设计竞赛
考虑几种情况,一种是平方得到的新数一定是加k,还有一种是开方的时候到1新数就停止增加了,因为1开方也是1,还有一种是如果这个数不是完全平方数,那么开方再平方也会得到不同的数。需要注意最后数的个数包括原来的数。
2024-06-01 20:49:27
400
原创 2024年江苏省大学生程序设计竞赛I
想到了要用二分写,但一直时间超限,原因是二分里面还要用set函数或multiset函数,如果不用函数用循环写的话,就会时间超限,赛后学长将=讲了之后才明白,补题的时候用了multise函数(优点是元素可以重复)set函数元素不能重复,其他的两个函数基本一样。
2024-06-01 19:42:08
415
原创 2024年西安交通大学程序设计校赛(D,E)
把这道题给简化,找出输入的x中最多的数,把这个位数输出0,其余的都输出这个数就可以了,这样得出的数一定非负。
2024-05-29 20:11:11
284
原创 2024ccpc全国邀请赛(郑州)补题(A,B,F,J,M)
这个题思路其实很简单,学长说是签到题,但当时写出来的人很少,刚发题的时候大致看了一下,感觉会时间超限,再加上过的人很少,就没有尝试,后来补题发现很简单。tie0;tie0;
2024-05-18 10:55:28
322
原创 I - 纠缠之圆
对于每组测试数据:第一行三个正整数: x1 , y1 , r1 代表第一个圆的横坐标,纵坐标以及半径。QingTian222 发现二维平面上的两颗纠缠之缘(可以看成圆)即将发生纠缠,他需要找到有多少条平面内的不同直线与这两个圆同时相切才能避免损失两次抽卡机会,但是他并不知道答案是多少,但他也不想损失这两次抽卡机会,于是他来求助你,请你告诉他,有多少条不同的直线与给定的两个圆相切。对于每一组测试数据,输出一行一个整数,代表答案,若有无限条不同直线满足条件,请输出 ‘-1’ (不含引号)。
2024-05-18 10:09:14
270
原创 训练赛题解2
你原本有一个 1 到n的排列,但是不慎地,你遗忘了它,但是你记得以 第i个位置 结尾的最长上升子序列的长度数组 {an} ,现在希望你能够构造一个符合条件的排列p,如果不存在符合上述条件的排列p,则输出 - 1。这里定义以 第i位置 结尾的最长上升子序列的长度,为符合以下条件的整数数组中k的最大值。本题输入输出量比较大,请选手注意。
2024-05-05 17:28:59
616
原创 训练赛题解
首先可以看出若为整数,则b+=b/2+a[i],若为浮点数,一直除以2会造成浮点数的损失,需要避免浮点数的损失,则用s=1.0*b/2.0-b/2;来判断,若s>0输出+,s
2024-05-04 18:51:07
665
原创 二叉树遍历
1.访问根节点2.先序遍历左子树3.先序遍历右子树为ABDEFC1.中序遍历左子树2.访问根节点3.中序遍历右子树为DBEAFC1.后序遍历左子树2.后序遍历右子树3.访问根节点为DEBCFA。
2024-04-28 21:19:57
168
原创 Hello XTCPC
思路:要注意如果要组成xtCpc的话可以跳跃找,但先后顺序不可以颠倒,所以要考虑找到的顺序。定义五个变量分别表示找的五个字母的数量,再定义一个变量表示找出xtCpc的数量,再五个变量++的时候要注意让前面的变量比后面的大;若五个变量都不为0,则找到单词数量++,五个变量分别--。您需要找到尽可能多的序列“xtCpc”。但是字母在同一个位置只能使用一次。第二行是长度为 n 的字符串,由小写字母和大写字母组成。输入文件包含一个整数,显示找到的不同子序列的最大数量。n,显示字符串的长度。
2024-04-28 21:05:01
433
原创 P4961小埋与扫雷
小埋总是在家中打游戏,一天,她突然想玩Windows自带的扫雷,在一旁的哥哥看见了,想起了自己小时候信息课在机房玩扫雷的日子,便兴致勃勃地开始教小埋扫雷。周围八格没有“雷”且自身不是“雷”的方格称为“空格”,周围八格有“雷”且自身不是“雷”的方格称为“数字”,由“空格”组成的八连通块称为一个“空”。小埋会告诉你一盘扫雷,用一个 n×m 的矩阵表示,1 是雷 ,0 不是雷,请你告诉她这盘扫雷的 3bv。后面的 n 行每行有 m 个整数,表示这个矩阵,每个数字为 0 或 1,1 代表是雷,0 代表不是雷。
2024-04-21 21:18:35
432
原创 L1-103整数的持续性
例如 679 的持续性就是 5,因为我们从 679 开始,得到 6×7×9=378,随后得到 3×7×8=168、1×6×8=48、4×8=32,最后得到 3×2=6,一共用了 5 步。从任一给定的正整数 n 出发,将其每一位数字相乘,记得到的乘积为 n1。以此类推,令 ni+1 为 ni 的各位数字的乘积,直到最后得到一个个位数 nm,则 m 就称为 n 的。随后在第二行中输出持续性最长的整数。如果这样的整数不唯一,则按照递增序输出,数字间以 1 个空格分隔,行首尾不得有多余空格。
2024-04-21 17:46:21
632
原创 二分算法(查找)
第二步:更新mid=(L+R)/2=2,比较arr[mid]=3<5,说明要在arr[mid+1]……arr[R]中找,L=mid+1=3。第一步:比较arr[mid]=6>5,说明在arr[L]……arr[mid-1]中找,R=mid-1=3。第三步:更新mid=(L+R)/2=3,比较arr[mid]=5,5=key,查找结束,返回3。2.二分查找,时间复杂度为O(logn),注意数组arr一定单调。1.线性查找,时间复杂度为O(n),会超时。
2024-04-21 14:59:49
126
原创 马的遍历(BFS)
思路分析:把棋盘上的每一个点按照规则入队,第一次到达该点时的步数一定是最优步数。有8个方向,用广搜(bfs)进行解题就好了。有一个 n×m 的棋盘,在某个点 (x,y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。一个 n×m 的矩阵,代表马到达某个点最少要走几步(不能到达则输出 −1)。对于全部的测试点,保证 1≤x≤n≤400,1≤y≤m≤400。输入只有一行四个整数,分别为 n,m,x,y。
2024-04-14 21:28:09
264
原创 高精度算法(加、减、乘)
int占32位即4个字节,int的范围是[-2^31,2^31-1]long long占64位即8个字节,long long的范围是[-2^63,2^63-1]在数据特别大是就需要使用高精度了1.高精度加法。
2024-04-14 18:14:23
884
1
原创 时间复杂度的计算
时间复杂度O(1)*******************************************************************************************该代码执行了一句话或一条语句,得出了一个固定常数。时间复杂度为O(n)******************************************************************************************该代码主要部分为for循环,循环内累加,执行了n次。
2024-03-31 21:36:47
288
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人