- 博客(24)
- 收藏
- 关注
原创 95. 费解的开关
你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态给定一些游戏的初始状态,编写程序判断游戏者是否可能在 6 步以内使所有的灯都变亮。
2024-07-17 14:59:20 546
原创 ccf认证 202312-3
小 C 观察了事先收集到的数据,并加以统计,得到了一个名词属于各个类别的可能性大小的信息。具体而言,每个类别都可以赋予一个被称为权重的值,值越大,说明一个名词属于该类别的可能性越大。由于每次向用户的询问可以获得两种回答,小 C 联想到了二分策略。小 C 请你帮忙编写一个程序,来测试这个策略的有效性。你的程序首先读取到所有的类别及其上级次级关系,以及每个类别的权重。你的程序需要测试对于被归类到给定类别的名词,按照上述策略提问,向用户提出的所有问题。思路:树的删除操作,暴力能过。
2024-07-11 21:37:21 294
原创 2024百度之星第三场第一题 数星星
天上有 n 颗星星,每颗星星自第 bi 秒开始(包含第 bi 秒),每 ai 秒便会闪烁一次,小度 今晚有一点失眠,所以他想来数星星,天上的星星每闪烁一次,小度便会在心中记一次数,如果同时有 x 颗星星在闪烁,小度也会计数 x 次。假设小度今晚会从第 l 秒开始数,第 r 秒天便亮了,但是在计数到 c 次及以上的时候,小度便会睡着。请问你能帮小度预估,今晚是否能睡着吗?如果能,将会在多少秒时睡着。
2024-07-07 11:42:27 1953 1
原创 P3373 【模板】线段树 2
本题关键是如何处理乘和加的关系,很自然的想到是确定乘和加的先后顺序,但是可以通过乘法分配率将加法与乘法合并。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。第一行包含三个整数 n,q,m,分别表示该数列数字的个数、操作的总个数和模数。对于 100%100% 的数据:1≤n≤10^5,1≤q≤10^5。含义:输出区间 [x,y] 内每个数的和对 m 取模所得的结果。对于 70%70% 的数据:n≤10^3,q≤10^4。对于 30%30% 的数据:n≤8,q≤10。
2024-07-05 15:24:08 359
原创 P3372 【模板】线段树 1
思路:线段树模板,包含的懒操作。线段树是靠一个二叉树进行遍历,每次只需要logn的时间复杂度,懒操作相当于记录当前区间需要该的值,按道理每次修改都需要遍历到每个元素,但是采用懒操作,避免了不必要的修改单一元素区间的值。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。第一行包含两个整数 n,m,分别表示该数列数字的个数和操作的总个数。对于 70% 的数据:3n≤103,4m≤104。对于 100% 的数据:1≤n,m≤105。对于 30% 的数据:n≤8,m≤10。
2024-07-05 12:11:36 438
原创 P1064 [NOIP2006 提高组] 金明的预算方案
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过 𝑛n 元钱就行”。如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有 00 个、11 个或 22 个附件。每个附件对应一个主件,附件不再有从属于自己的附件。金明想买的东西很多,肯定会超过妈妈限定的 𝑛n 元。于是,他把每件物品规定了一个重要度,分为 55 等:用整数 1∼51∼5 表示,第 55 等最重要。
2024-06-19 16:25:44 451
原创 AcWing 3719. 畅通工程
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条双向道路?
2024-06-18 10:48:39 311
原创 BD202404110串
给定一个01序列a1a2…an ,ai∈{0,1}。我们可以修改该序列的任意一个数字,可以将0变成1,也可以将1变成0,注意不能删除或增加数字。请问,修改不超过k个数字能让给定的序列中不含有特定的一个子串110的方案数有多少种,由于答案很大输出对998244353以后的结果即可。
2024-06-09 16:12:46 354
原创 BD202311夏日漫步
夏日夜晚,小度看着庭院中长长的走廊,萌发出想要在上面散步的欲望,小度注意到月光透过树荫落在地砖上,并且由于树荫的遮蔽度不通,所以月光的亮度不同,为了直观地看到每个格子的亮度,小度用了一些自然数来表示它们的亮度。亮度越高则数字越大,亮度相同的数字相同。走廊是只有一行地砖的直走廊。上面一共有 n 个格子,每个格子都被小度给予了一个数字 ai 来表示它的亮度。小度现在站在 1 号格子,想要去到 n 号格子。小度可以正向或反向移动到相邻的格子,每次需要花费 1 的体力。同时小度还有瞬移的能力,。
2024-06-01 11:12:54 425
原创 BD202301·公园
今天是六一节,小度去公园玩,公园一共 N 个景点,正巧看到朋友圈度度熊也在这个公园玩,于是他们约定好一块去景点 N。小度当前所在景点编号为 T,从一个景点到附近的景点需要消耗的体力是 TE,而度度熊所在景点编号为 F ,移动消耗为 FE。好朋友在一块,赶路都会开心很多,所以如果小度和度度熊一块移动(即在相同位置向相同方向移动),每一步他俩的总消耗将会减少 S。求他俩到景点 N 时,所需要的总消耗最少是多少?
2024-05-29 18:25:21 400
原创 P1052 [NOIP2005 提高组] 过河
由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,⋯,L(其中 L 是桥的长度)。坐标为 0 的点表示桥的起点,坐标为 L 的点表示桥的终点。一次跳跃的距离是 S 到 T 之间的任意正整数(包括 S,T)。青蛙一次跳的范围为当前位置i的[i+s,i+t];此时的后面的区间都可跳到,即可压缩成i+n*s;题目给出独木桥的长度 L,青蛙跳跃的距离范围 S,T,桥上石子的位置。你的任务是确定青蛙要想过河,最少需要踩到的石子数。
2024-05-28 17:33:09 1013
原创 P1040 [NOIP2003 提高组] 加分二叉树
设一个 n 个节点的二叉树 tree 的中序遍历为(1,2,3,…,n),其中数字 1,2,3,…所以可以在一个[l,r]的区间中选取一个断点k将[l,k-1]、k、[k+1,r]合并成[l,r],是不是与区间dp很相似呢?subtree 的左子树的加分 × subtree 的右子树的加分 + subtree 的根的分数。对于全部的测试点,保证 1≤n<30,节点的分数是小于 100 的正整数,答案不超过 4×10^9。第 1 行 1 个整数,为最高加分(Ans≤4,000,000,000)。
2024-05-27 15:17:50 1007
原创 P1032 [NOIP2002 提高组] 字串变换
我觉得可以用A*算法进行bfs,但是这么写过了,我就不做了-----偷懒)测试数据非常的水,各种做法都可以通过,不代表算法正确。若在 10 步(包含 10 步)以内能将 A 变换为 B,则输出最少的变换步数;规则的含义为:在 A 中的子串 A1 可以变换为 B1,A2 可以变换为B2⋯。接下来若干行,每行有两个字符串 Ai,Bi,表示一条变换规则。本题为搜索题,本题不接受 hack 数据。共进行了 3次变换,使得 A 变换为 B。例如:A=abcd,B=xyz,第一行有两个字符串A,B。
2024-05-25 14:57:30 380
原创 P1018 [NOIP2000 提高组] 乘积最大
思路:动态规划的思路,但是我用的是dfs,每次传入当前乘号的个数,当后面只有一个元素且乘号个数还有时,返回0进行排除。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友 XZ 也有幸得以参加。设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它分成 K+1 个部分,找出一种分法,使得这 K+1 个部分的乘积能够为最大。结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。现在,请你帮助你的好朋友 XZ 设计一个程序,求得正确的答案。
2024-05-24 11:42:10 210
原创 P1063 [NOIP2006 提高组] 能量项链
如果前一颗能量珠的头标记为 m,尾标记为 r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 m×r×n(Mars 单位),新产生的珠子的头标记为 m,尾标记为 n。第 i 个数为第 i 颗珠子的头标记(1≤i≤N),当 i<N 时,第 i 颗珠子的尾标记应该等于第 i+1 颗珠子的头标记。第 N 颗珠子的尾标记应该等于第 11 颗珠子的头标记。例如:设 N=4,4 颗珠子的头标记与尾标记依次为 (2,3)(3,5)(5,10)(10,2)(2,3)(3,5)(5,10)(10,2)。
2024-05-23 17:34:29 324 1
原创 拓扑排序:奖金
每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。以下m行,每行2个整数a,b,表示某个代表认为第a号员工奖金应该比第b号员工高。3:如果没有前驱的节点集为空,返回错误信息并结束。累加每次找到的没有前驱的节点数,如果当局节点数记录值为n则退出循环。拓扑排序的应用,利用拓扑排序给每个人排序,其中可能有多个人排在同一位置。2:删除没有前驱的节点,更新这些点的后继节点的前驱节点数;1:找到没有前驱的节点;
2024-05-22 18:29:56 206 1
原创 P1025 [NOIP2001 提高组] 数的划分
思路:排序问题通过确保序列非递减来解决(或者非递增也行),然后只要dfs就行了(很简单的一题,今天水过去了/(ㄒoㄒ)/~~)将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。NOIP 2001 提高组第二题。11 个整数,即不同的分法。问有多少种不同的分法。
2024-05-21 10:09:00 219
原创 最大公约数之积
依次求出从2到n区间的所有数的最大公约数,乘上长度,再像区间dp一样,采用备忘录。(但是时间复制度是O(n^2*logn),求大佬给出更加快的方法/(ㄒoㄒ)/~~),你可以任选一个起始位置和结束位置,然后先计算从起始位置到结束位置中所有数(假设有。行,每行一个整数,表示对应那一组数据中。接下来每组数据的第一行是数据的个数。,再把这个最大公约数乘上。
2024-05-20 17:10:10 208
原创 P1020 [NOIP1999 提高组] 导弹拦截
那么每次更新当前a[j]时,利用二分法找出dp[1]到dp[len]中大于a[j]的最小值,因为dp是降序序列,所以用upper_bound方法,将找出的下标k的dp[k+1]=a[j];总结:对于优化成O(n*logn)的方法都是使用贪心法(或者有什么其他的方法,我想不到/(ㄒoㄒ)/~~),将查找转换成二分查找。第二问:用贪心的思想,从左到右变量导弹,维护每个系统当前拦截的最低炮弹数组,当前炮弹的高度由不低于该高度的最低系统进行更新。对于全部数据,满足导弹的高度为正整数,且不超过 5×10^4。
2024-05-19 17:42:33 522
空空如也
国王的奖励(改编版)
2023-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人