自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最短路径问题

n 只有100,可以跑一边 n^2 的朴素dijkstra,边的大小表示为两点之间的距离。点有一条边连接,现在任务是找出从一点到另一点之间的最短路径。条边表示第 $u_i $和。

2025-04-03 12:30:08 317

原创 RainbowDash 的 Robot

一个机器人正在这个网格内移动,你可以向他发送指令,使得其向 上下左右 移动,但是这个机器人是由缺陷的,每条指令会执行。,需要满足之间没有受阻的网格,所以贪心的想,优先走到该列最下面,再往左右走,考虑从第。之间最大的受阻网格为多少即可,数据范围较大,维护区间最值可选用线段树。个单元格,如果机器人试图移动到受阻的单元格或网格外,就会爆炸。优先考虑机器人从起点坐标走到终点坐标需要满足的条件,若机器人执行任意次命令,能否从起点单元到达终点单元。单元格被阻断,无法通行,即。次,因此,机器人每次移动。

2025-04-02 15:51:44 968

原创 RainbowDash 的旅行

天的旅行,对于每一天,你都需要从当前木屋走到小岛游玩,再走到任何一间木屋(包括出发时所在的木屋),你不想浪费时间在赶路上,于是一天通过的两座桥必须有一座是。第一天在1号木屋,所以第一天应由。湖中心有一座岛,湖的外围有。间木屋(围绕小岛) ,第。天,有多少不同的路线组合?间木屋总方案数,可以考虑。桥有车可以快速通过,桥需要步行,速度稍慢。

2025-04-02 15:23:39 962

原创 特殊图判断

有没有一种算法能快速判断该无向图中的每个连通部分是否满足:连通部分的顶点和边的数量相同。考虑并查集,维护祖先节点中 顶点个数 和 边的个数。如果该图中每个连通部分都满足条件,则输出。给定一个无向图,图中有。

2025-04-02 13:41:36 603

原创 简单路径计数

出发的简单路径(无重复顶点的路径)的数目,打印。,可以考虑搜索所有可行路径并进行剪枝。给一个简单无向图,图中有。每个顶点的度数最多为。

2025-04-02 12:30:06 319

原创 LilaS 的颜色树

树的结构保证了每个点只有一个父节点,那么可以考虑维护一个父节点路径的map,让子节点更新下去,每遍历到一个点,可以直接在父节点的map中查询路径中有没有出现相同颜色的节点。按照以上规则,有多少个好顶点。定义好顶点的规则:从顶点。的最短路径中,除了顶点。(颜色用正整数表示)。本身外,不包含与顶点。颜色相同的顶点,顶点。

2025-04-01 19:39:05 803

原创 牛客周赛 Round 65

读题发现每次都会拿当前最大的那个数,没换之前每组小红拿的数均为大的,若将小紫最小的和小红最大的比较,那么每组小紫的数就均为最大的了,因此,除了该数组中元素均相同,其余均为小紫win。hard版是气温最大值和最小值改变,未知天气气温值改变,其余思路同easy。读题发现有天数气温未知,所以可通过构造未知气温达到最优的寒潮天数。通过数据可得知,可以对每个病人暴力枚举所有药物,选出最优。顺序构造,可不考虑前面未知天数(因为前面未知天数会补上)若选,则先将病人情况用该种药物恢复,再递归到下一种药物。

2024-10-28 20:11:26 404

原创 Codeforces Round 981 (Div. 3)

赛时读完题就去写了一个循环去模拟两者操作并记录次数,游戏结束时奇数次操作为先手win,偶数次操作为后手win,后来发现每次操作只会向目标方向移动一格,所以如果到n格,n为奇数时,为先手者到n格,后手win,反之先手win。不论从左枚举还是从右枚举,在 3 3 3 这组数中,明显应该交换中间的3,一次就可以解决,但是如果顺序枚举左右,就会导致左边或者右边的3先进行交换。1 0 -1 ,肯定是选择0单独作为一段为最优,如果选择了1 0 -1,将可能会少计算一段,所以完美线段长度越短越好。

2024-10-28 13:48:16 429

原创 牛客周赛 Round 64 A-F

首先dfs遍历树,将树种路径上所有点标记,再从路径起点开始dfs_1 一遍,因为是在树上,所以边权为1,不用考虑权重,01dfs,如果是路径上的点dist=0,否则路径大小则为父节点的基础上+1。该题如果求树上所有节点到路径的最短距离,不是很好求,但是如果换个角度,从路径上的起点出发,路径上的标记的点dist为0,求该路径到树上所有节点的最小距离和,就会很方便。该题的坑比较多,读题的时候思路为将每个字母个数记录一下,然后遍历字符串,用其他的字母填入,如果有一个字母个数大于其他所有字母总和,输出-1。

2024-10-22 00:15:48 1209

原创 牛客周赛 Round 58

比如三进制下 1010 ,可用(1000+10) 两个k的整次幂表示一个3-好数,将n转化为k进制,然后将数位上的数字求和,当时想的是求n转换为n个k的整次幂的数。n可表示为1^1 +1^2+…直到等于n ,因此k==1时 输出1。定义k-好数为:可以表示为若干个不同的k的整次幂之和的数字。而2020 ,可用 (1000+10)+(1000+10)例如30= 3^3 + 3^1 ,30是一个3-好数。只能将n表示为n个k^0 ,因此n<k时 输出n。给定一个数n,n最少可以表示成几个k-好数的和。

2024-09-03 21:07:25 289 1

原创 河南萌新2024第六场

给定一排n个格子,n个格子里有不同的人,每次可从 j 号格子中选择两个人分别逃到 i 号格子和 k 号格子,要求i<j<k ,且1<j<n,如果n个格子里所有人都可以逃到1或n号格子,那么输出奔逃次数,否则-1。我的第一思路是如果在给幸福度开一维,依次枚举幸福度,肯定会超时,所以想将饱食度不是16的倍数的月饼合并到一起凑成一个16的倍数,简化成一个朴素01背包,但是我发现实现不了,因为组合成16的倍数有很多种组合方式。给定每个人面对的方向,问m次游戏后,每个人面朝方向,正面为1,反面为0。

2024-08-25 22:07:26 917 2

原创 河南萌新2024第五场

而言,如果想要alice获胜,alice先手可以改为下个月1号,但必须。

2024-08-25 22:05:06 396

原创 河南萌新2024第四场

该题目有点像 算法进阶指南中楼兰图腾的变形,在楼兰图腾中求的是在一个序列中先升后降 和先降后升的图案总数,如果是先升后降,需要遍历每个数字左边所有比该数小的数字,右边比该数小的数字,相乘就是该数字构成的图案总数,,v)之间举办一次马拉松,该国家有两个城市 x 和 y,当小明经过 x 城市后又跑到 y 城市,那么该城市的警察就会阻止小明继续参加比赛。有n个岗位,m位志愿者,每个岗位至少需要a个志愿者,并且可以有志愿者可以空闲下来作预备,给出可能的分配情况总数。在求法方面比较特殊,我们只需要。

2024-08-25 22:04:26 477

原创 河南萌新2024第三场

如果想要吃的最多,由于左右两边都是求得单调递减的,所以x必然有一种方式能将左右两边邻居都吃掉,该题不输出怎么吃,因此,可以使用单调栈求一下x左右两边的单调递减区间。q 次查询,每次查询给出一个用户名,一个 IPv4 地址以及此次登录使用的私钥,要求你判断该 IPv4 地址对应的主机上的用户,是否拥有这个私钥对应的公钥。有n个史莱姆排成一条线,1~n,第i只体积为ai,当且仅当他的体积大于等于邻居时,可以吃掉邻居,体积变为邻居的体积,求每个史莱姆最多可以吃多少个同伴。中用户名进行查询,找到对应用户后,将。

2024-08-25 22:03:56 422 1

原创 河南萌新2024第二场

将用户名和对应信息set映射到map中: map< string ,set< string > > 方便了存储。给两个整数a和b,输出a∗b 但是a,b非常大,0

2024-08-25 22:03:20 1937

原创 树状数组(2进制优化前缀和)

如果三个点 (i,yi),(j,yj),(k,yk)满足 1≤i<j<k≤n 且 yi>yj,yj<yk,则称这三个点构成。如果三个点 (i,yi),(j,yj),(k,yk)满足 1≤i<j<k≤n 且 yi<yj,yj>yk,则称这三个点构成。的,那么我们就可以统计x出现时,在x左边出现且比他小的数的个数ask(x-1),比他大的个数ask(n)-ask(x)设坐标分别为 (1,y1),(2,y2),…来求的,先不管怎么去算出数组,看几张图,理解数组是怎么构造的,换句话说,数组是怎么。

2024-08-19 09:59:24 784

原创 隔板法的妙用

对于所有项x>=1(一般情况)一般隔板法问题,直接用公式(n-1个间隙中插入m-1个隔板)C(n-1,m-1)

2024-08-08 20:21:55 643

原创 3.2.5 最短路径 floyd算法

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impossible。数据保证图中不存在负权回路。,分别遍历每一个顶点k,将顶点k作为中间节点,**min( i -> j , i -> k -> j )**更新。的最短路径,三重循环过后,d [ i ] [ j ] 存储的为 i -> j 的最短路径。Floyd算法的实现思路是通过。不断迭代来更新最短路径。

2024-08-06 20:27:15 289

原创 3.2.4 最短路径 spfa算法

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。bellman算法中暴力枚举所有的边,但并不是每个点都会更新,存在无效遍历。拿未更新最短路径的点去更新其他点是没有意义的。(n个点最多n-1条边),则一条边出现了。,直至找到1号点到n号点的最短路径。在求最短路径的时候,只有这个。

2024-08-06 14:43:04 418

原创 3.2.3 最短路径 Bellman-Ford算法

请你求出 1 号点经过最多 k 条边到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。在内循环中遍历了所有的边,但是需要控制有限的次数,所以每次只能更新走一条边到达的距离。例:先更新了2号点,又用2号点更新了3号点,发生串联,此时就不能保证走了多少次了。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为。:更新时只用上一次循环的结果,因此需要将dist[]每次备份一遍。,那么该距离更新的是从1号点。:两边之和大于第三边。

2024-08-06 10:53:28 284

原创 3.2.2 最短路径 堆优化版Djkstra算法

给定一个n 个点m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。求 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 − 1。节点个数和边的个数相差不多,为稀疏图,使用邻接表存储,并用堆优化版Dijkstra算法计算最短路径。

2024-08-05 20:27:44 344

原创 3.2.1 最短路径 朴素Djkstra算法

请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。边数远大于点数,属于稠密图,用邻接矩阵来存,朴素Djkstra算法求最短路径。迭代n次后,如果n号点到1号点的最短路径不为正无穷,则存在最短路径。存图时也需要先将所有节点的边初始化为正无穷。图中涉及边长均不超过10000。Djkstra初始化,,直到 到达n号节点。

2024-08-05 15:56:43 282

原创 3.1 拓扑排序

给定一个n 个点m 条边的有向图,点的编号是1 到n ,图中可能存在重边和自环。输出其任意一个拓扑序列。如果不存在则返回− 1。acwing 848 有向图的拓扑序列。

2024-08-01 19:44:06 180

原创 STL set

对于set容器来说,因为set容器会进行排序,每次可能在首尾插入,也可能在中间,所以用insert()对于vector容器的插入,是从尾部插入的,所以时push() or push_back()因为set容器不允许元素重复出现,因此s.count()函数只会返回0 or 1。set容器中不允许出现重复元素,并且容器会自动排序(默认为升序排列)如果在set容器中找到元素,会返回一个迭代器指向该元素所在位置。如果没有找到则会返回set末尾迭代器s.end();s.insert(元素)s.erase(元素)

2024-07-21 20:25:20 198

原创 河南萌新联赛2024第(一)场 D小蓝的二进制询问

每次递归t时,从x中减掉已经加过的数据,直至一组所求数据个数小于2^(i+1)个(不满足一组完整的数据)例如将14(1110)分为2^ 3+2^ 2+2^ 1 (2^ x+2^ y+2^ z)每组数据 需将 上一组数据 复制一次 每个复制的数据还需加上1(共2^i个1)剩余部分的14(1110)可分为对应的8(1000),4(100),2(10)例如剩下6()个数,可以把6分为2^2+2 ^1 (2 ^x+2 ^y)分离出的 第三组 与 实际第三组 相比 相差 (2)* 2^i 个1。

2024-07-18 14:07:50 436 1

原创 Codeforces Round 958 (Div. 2) C. Increasing Sequence with Fixed OR

例:lowbit(4)-x=~x+1;(x取补码+1)用该操作来确定二进制是否只有一个1二进制—>十进制时如果使用pow()函数要把返回时强制转换为(long long)pow()默认返回值时double,由于存在小数部分长度问题,存在截断误差建议使用递归方式计算long//范围1e18,2^63,开100足够记录二进制 int a [ N ] , b [ N ];//a存n的二进制,b记录答案,k,f分别为二者指针 int lowbit(int x) //返回第一个1的位置 {

2024-07-16 11:26:13 407 1

原创 STL关于sort字符串的排序(string数组,char数组)

给定n个字符串,字符串序号按字典序排列(0~n),n个数字,这n个数字和对n求余k,输出第k个出现的字符串。将气球存入string数组,用STL中sort将气球按字典序排列,这样相同的气球就会在一起。给定m个n长度的dna序列,要求按它们中存在的逆序字母个数排序(个数升序排列)首先从后往前遍历dp出每个字符串中逆序字母的数量,再按逆序字母数量排序。将该字符串存入ch[]中,sort后枚举ch[]中字母,判断是否符合。给定n个随机颜色(颜色用字符串表示)的气球,输出出现次数最多的气球。

2024-05-26 10:37:53 567

原创 2023ICPC杭州区域赛

链中每个节点最多有两条边,而菊 中心节点大于等于三条边相连,因此只需找到任意一条连接的边,再找出两个不同于此边上的节点,判断此边上的节点(若是菊,则有一个一定是中心节点)是否可以与这两个不同的点连接,如果中心节点可以和这两个节点相连,则是菊,否则是链。从b点开始,左边的数均比b大,加上后平均值一定比当前的数大,但是此时如果向右边规划,不能保证加上右边的数平均数一定会增大,因为无法保证右边的数比当前的平均数大。V图:长度>=3,且包含一个最小值,最小值前面的数降序排列,最小值后面的数升序排列。

2024-05-20 19:19:53 1429 1

原创 2024ccpc中国郑州

根据数据范围n<1e8,longlong 19位,所以可以先构造kk=1234567890+d,并将n加到kk的后面去构造n的倍数找k(如果不加n直接除n,可能使1234567890+d(幸运数序列)造成影响)。n的各个数位互不相同,可得出末尾偶数0,2,4,6,8均为2的倍数,末尾为5为5的倍数,此时还剩4个数,n保证5位,所以排序后一定可以构成合数。直接判断末尾是不是0,2,4,6,8,5,是直接输出,不是就从前四位中找一个0,2,4,6,8,5与末尾交换位置即可。

2024-05-19 20:27:58 2085 1

原创 L - 养成游戏

这个游戏的终极目标是在最后的展示大会上获得最高的评分,最后的展示大会上有一些评委,每个评委都有各自的评判标准,当你达成了这个评委的评判标准,你就能获得这个评委的评分,评委的评判标准格式如下,可以由一个整数七元组 表示。题目大意:获得最高的评分,数据范围很小6^8*100,可以直接枚举出所有属性值,依次判断是否符合裁判的评分要求,每次枚举出的分数取最大的。接着有 m 行,每行有七个整数 i, j, op, a, b, d, v,表示一组评委的评判标准。输出一个整数代表她可以获得的最高评分。

2024-05-05 19:55:11 364 2

原创 F - 最长上升子序列

你原本有一个 1 到 n 的排列,但是不慎地,你遗忘了它,但是你记得以 第i个位置 结尾的最长上升子序列的长度数组 {an} ,现在希望你能够构造一个符合条件的排列 p ,如果不存在符合上述条件的排列 p ,则输出  - 1。因为i位置上为到当前位置最长的子序列长度,所以存入数据时要判断该数据前面数据是否存在该长度-1的最大子序列,如果不存在,无论如何都不能达到该数据的最长子序列输出-1;这里定义以 第i位置 结尾的最长上升子序列的长度,为符合以下条件的整数数组 中 k 的最大值。

2024-05-05 19:50:26 225 2

原创 HDU - 6542 SSY and JLBD

一副麻将由 136 张牌组成。它包含三种花色的1-9张牌,以及七种单词牌(“dong”,“nan”,“习”,“bei”,“zhong”,“fa”,“bai”),一副麻将中每种牌有4张相同的牌。:保证是同种花色的数字牌,至少3张的1,9。最后一张如果是数字牌就是同种的花色的任意一张,或者是任意一张单词牌。:同时拥有三种花色的1,9牌,7种单词牌+任意花色1,9或单词牌。

2024-04-28 19:11:21 116 1

原创 HDU - 6543 Can you raed it croretcly?

相同,遍历1~len-2中字母出现次数,如果错误单词和正确单词字母出现次数相同,则可以通过换顺序改对,否则不可以。判断一个首字母和尾字母相同的拼写错误的单词是否可以通过改变字母顺序变成一个正确的单词。判断错误单词与正确单词的长度,如果不相同就不可以改变顺序。判断首字母和最后一个字母是否相同,不相同不可以。

2024-04-28 15:15:26 242 1

原创 HDU-6536 Hello XTCPC

找到x所在位置,依次从x位置遍历找序列tCpc,因为每个字母只能用一次,找到一个就将该字母换为‘-’。2.给定一串字符串s,在s中找尽可能多的“xtCpc”序列,每个字母只能使用一次(尽可能多就是要按顺序找)此时xtCpc子序列就找完了,c里面保存的就是完整的子序列出现次数。如果找到t,就看前面有没有x,如果x!如果找到C,就看前面有没有t,如果t!如果找到p,就看前面有没有C,如果C!如果找到c,就看前面有没有p,如果p!

2024-04-28 14:49:15 220 1

原创 PTA L1-101 别再来这么多猫娘了!

3,可以使用string数组保存违禁词,输入给定字符串t时可用getline(cin,t);s.find(t):在s字符串中找字符串t,找到返回t[0]在s字符串中的下标,找不到返回-1;s.insert(x,”=-=“):在s字符串x位置插入”=-="字符;给定n个违禁词(字符串),一个违禁词阈值,在一个给定字符串中查找违禁词。2,违禁词有可能是"“.,造成重复替换,TLE。不超过违禁词,将违禁词替换为"".4,string有关的函数。

2024-04-26 15:51:11 308 1

原创 集美大学2024年团体程序设计天梯赛模拟赛 F 统一命名规范

选S时,将C转化为S只需找到大写字母,输出一个_并将该字母小写并输出,将P转化为C先首字母小写,找到大写字母,输出一个_并将该字母小写并输出。驼峰(Camel),单词之间没有分隔符,第一个单词首字母小写,其余单词首字母大写,其余字母小写,例如 “userName”;选P时,将C转化为P只需将首字母小写,将S转化为C先首字母大写,找到_ 并将_ 后的字母大写。选C时,将P转化为C只需将首字母大写,将S转化为C只需找到_ 并将_ 后的字母大写。然后选定一种规范,将其他两种统一为这一种。

2024-04-26 10:58:25 319 1

原创 集美大学2024年团体程序设计天梯赛模拟赛 D 记忆数字

第一行输入一个字符串 S ,代表小 π 说的话,字符串包含大小写字母、空格和英文标点符号 “, .?遍历字符串s,读入一个字母cnt++并判断下一个字符是否为符号,下个字符为符号则输出cnt%10,并归零cnt。如果字符不是以符号结尾,可以判断一下cnt是否为0,如果不为0则再输出一次cnt%10。给定一个字符串,该字符串中每个单词对应的数字的各位就是 L 对应的数字。因为会读入空格,所以用getline(cin,s)函数读入字符串s,读到符号则cnt–(不计入),

2024-04-26 10:44:09 294 1

原创 2023年第五届河南省CCPC Problem A. 小水獭游河南

给定一个字符串s,取它的两个连续子串a,b,如果a由单个字母组成,b是回文串,输出HE,否则输出NaN,如果S只有大小为1,则没办分为两个子串,同样为NaN。将s从头遍历,如果一个字符出现了两次,结束遍历,存第二次出现的字符位置,判断从此时开始b是否为一个回文串。因为a子串最多只有26个字符,s大小在1e5,所以可以枚举出所有a子串,判断b子串是否为回文串。问题是没办法保证s中a子串一定是以第二个相同字符结束。

2024-04-26 10:16:36 247 1

原创 集美大学2024年团体程序设计天梯赛模拟赛 H 创造花田的魔法

接下来给出 n 行 m 列的矩阵,包含了上述表示地形的大写字母,需要注意的是:不保证上面介绍的地形一定会出现,但是上面没有介绍过的地形。输入数据时将房屋,湖泊周围标记上,判断时只需判断周围有没有房屋和湖泊,若有房屋,不变,若有湖泊无房屋,种N。在一块地上种花**不会改变原本地形的性质**,比如湖泊上种荷花,湖泊本身还是必须看成湖泊,输出也应该为包含大写字母的 n 行 m 列的矩阵,将代表你种的花的种类的大写字母替换掉原表示地形的字母。现在你需要根据上面的规则和给出的代表地形的矩阵,输出施过魔法之后的矩阵。

2024-04-23 18:51:54 1666

原创 牛客小白月赛91 C Bingbong的蛋仔世界

题目描述🌙你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦。蛋仔派对深受Bingbong喜爱,但是他玩游戏一向很菜,特别是在生存战中总落入下风,以下是某生存关的规则:在万米高空有一个平行于地面且大小为n∗m的地图砖块,以俯视角度观看时,从上往下依次为第1~n行,从左往右依次为第1~m列,这个地图的特性是每个单位时间过后的砖块都会掉落,站在上面的蛋仔会因为踩空而摔落无尽的深渊,导致游戏失败。

2024-04-23 18:25:52 2044 1

空空如也

空空如也

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

TA关注的人

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