- 博客(43)
- 收藏
- 关注
原创 二叉苹果树 洛谷 - P2015
有一棵苹果树,如果树枝有分叉,一定是分二叉(就是说没有只有一个儿子的结点)这棵树共有 NN 个结点(叶子点或者树枝分叉点),编号为 1∼N1∼N,树根编号一定是 11。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。CopyC++现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。
2025-02-19 21:08:08
303
原创 飞行路线 洛谷 - P4568
Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在 nn 个城市设有业务,设这些城市分别标记为 00 到 n−1n−1,一共有 mm 种航线,每种航线连接两个城市,并且航线有一定的价格。Alice 和 Bob 现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多 kk 种航线上搭乘飞机。那么 Alice 和 Bob 这次出行最少花费多少?
2025-02-19 20:27:39
816
原创 Invitation Cards HDU - 1535
我们需要为每个志愿者计算从中央检查站(CCS,编号为1)到其分配站点的往返最小交通费用之和。所有公交线路是单向的,要求找到所有志愿者总费用的最小值。问题的核心是:计算所有站点到CCS的最短路径和CCS到所有站点的最短路径之和。- 反向图:将原图的边反向,计算CCS到所有站点的最短路径(等效于原图中所有站点到CCS的最短路径)该方案通过双向最短路径计算,高效解决了大规模交通网络中的费用最小化问题,代码经过优化可处理百万级节点和边。- 正向图:计算CCS到所有站点的最短路径(Dijkstra算法)
2025-02-19 18:04:28
994
原创 树的直径 51Nod - 2602
一棵树的直径就是这棵树上存在的最长路径。现在有一棵 nn 个节点的树,现在想知道这棵树的直径包含的边的个数是多少?如图所示的数据,这棵树的直径为 (1−2−3−6−9)(1−2−3−6−9) 这条路径,包含的边的个数为 44 ,所以答案是 44。
2025-02-19 16:59:57
472
原创 Stockbroker Grapevine OpenJ_Bailian - 1125
我们需要选择一个股票经纪人作为谣言的起点,使得谣言传播到整个网络的时间最短,并且确保所有股票经纪人都能收到谣言。4. 最优解选择:在所有有效的起点中,选择传播时间最短的起点。如果有多个起点的传播时间相同,选择编号最小的那个。该方法确保在最短时间内找到传播谣言的最优起点,并处理所有可能的边界情况,包括无法到达所有节点的网络结构。2. 最短路径计算:对于每个股票经纪人作为起点,使用Dijkstra算法计算到其他所有节点的最短路径。4. 最优解选择:在所有有效起点中选择传播时间最短的,相同时间选择编号最小的。
2025-02-19 13:59:28
901
原创 宝物筛选。
终于,破解了千年的难题。小 FF 找到了王室的宝物室,里面堆满了无数价值连城的宝物。这下小 FF 可发财了,嘎嘎。但是这里的宝物实在是太多了,小 FF 的采集车似乎装不下那么多宝物。看来小 FF 只能含泪舍弃其中的一部分宝物了。小 FF 对洞穴里的宝物进行了整理,他发现每样宝物都有一件或者多件。他粗略估算了下每样宝物的价值,之后开始了宝物筛选工作:小 FF 有一个最大载重为 WW 的采集车,洞穴里总共有 nn 种宝物,每种宝物的价值为 vivi,重量为 wiwi,每种宝物有 mimi 件。
2025-02-16 17:31:34
360
原创 采药 洛谷 - P1048
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。如果你是辰辰,你能完成这个任务吗?
2025-02-16 17:27:44
327
原创 八皇后 Checker Challenge 洛谷 - P1219
6×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。if (total <= 3) { // 如果解的数量不超过3,输出当前解。// 标记副对角线是否被占用(i - j + n)if (k > n) { // 如果已经放置完所有皇后。
2025-02-13 22:07:02
473
原创 GRZ-Ridges and Valleys
vis[nx][ny]) { // 相同高度且未访问。vis[i][j]) { // 如果未访问过,则进行BFS。
2025-02-13 22:05:03
263
原创 健康的荷斯坦奶牛 Healthy Holsteins
+j) { // 遍历已选择的饲料。if (selectedCnt < minCnt) { // 如果满足需求且饲料数更少。if (sum < need[i]) // 如果某一种维生素不满足需求。给出牛所需的最低的维他命量,输出喂给牛需要哪些种类的饲料,且所需的饲料剂量最少。if (curFodder >= g) { // 如果已经遍历完所有饲料。// 每种饲料中每种维生素的含量。// v: 维生素种类数, g: 饲料种类数。// 临时存储当前选择的饲料编号。// 存储最终选择的饲料编号。
2025-02-13 22:02:41
361
原创 显示图像.
当计算机发出一个指令:P(x,y)=1P(x,y)=1,则屏幕上的第 xx 行第 yy 列的阴极射线管就开始工作,使该像素点显示白色,若 P(x,y)=0P(x,y)=0,则对应位置的阴极射线管不工作,像素点保持黑色。设有像素点 P1(x1,y1)P1(x1,y1) 和像素点 P2(x2,y2)P2(x2,y2),则它们之间的距离 D(P1,P2)=∣x1−x2∣+∣y1−y2∣D(P1,P2)=∣x1−x2∣+∣y1−y2∣。// 1的位置初始化为0,0的位置初始化为极大值。
2025-02-13 21:59:17
318
原创 填涂颜色。
由数字 00 组成的方阵中,有一任意形状的由数字 11 构成的闭合圈。现要求把闭合圈内的所有空间都填写成 22。例如:6×66×6 的方阵(n=6n=6),涂色前和涂色后的方阵如下:如果从某个 00 出发,只向上下左右 44 个方向移动且仅经过其他 00 的情况下,无法到达方阵的边界,就认为这个 00。闭合圈不一定是环形的,可以是任意形状,但保证的 00 是连通的(两两之间可以相互到达)。
2025-02-11 21:47:31
350
原创 自然数的拆分问题
问题描述给定一个大于 1 的自然数 n,要求将其拆分成若干个小于 n 的自然数之和。拆分后的序列需要按从小到大的顺序排列,并且按字典序优先输出所有可能的拆分方式。输入输入一个自然数n输出输出所有可能的拆分序列,每个序列用加法式子表示,按字典序从小到大排列。示例输入7输出1+1+1+1+31+1+1+2+21+1+1+41+1+2+31+1+51+2+2+21+2+41+3+31+62+2+32+53+4。
2025-02-11 19:17:14
347
原创 Longest Subsequence
You are given array a with n elements and the number m. Consider some subsequence of a and the value of least common multiple (LCM) of its elements. Denote LCM as l. Find any longest subsequence of a with the value l ≤ m.A subsequence of a is an array we c
2025-02-10 19:09:30
300
原创 最大公约数和最小公倍数问题
对于 100%100% 的数据,2≤x0,y0≤1052≤x0,y0≤105。要求 P,QP,Q 以 x0x0 为最大公约数,以 y0y0 为最小公倍数。一行一个数,表示求出满足条件的 P,QP,Q 的个数。试求:满足条件的所有可能的 P,QP,Q 的个数。一行两个正整数 x0,y0x0,y0。NOIP 2001 普及组第二题。P,QP,Q 是正整数。
2025-02-10 19:05:48
276
原创 素数密度。
给定 L,RL,R,请计算区间 [L,R][L,R] 中素数的个数。一行,一个整数,表示区间中素数的个数。第一行,两个正整数 LL 和 RR。
2025-02-10 19:03:04
203
原创 有理数取余
对于所有数据,保证 0≤a≤10100010≤a≤1010001,1≤b≤10100011≤b≤1010001,且 a,ba,b 不同时是 1926081719260817 的倍数。给出一个有理数 c=abc=ba,求 c mod 19260817cmod19260817 的值。这个值被定义为 bx≡a(mod19260817)bx≡a(mod19260817) 的解。一个整数,代表求余后的结果。第一行,一个整数 aa。第二行,一个整数 bb。
2025-02-10 19:00:48
284
原创 国旗计划。
A 国正在开展一项伟大的计划 —— 国旗计划。这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈。这项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了 NN 名优秀的边防战士作为这项计划的候选人。A 国幅员辽阔,边境线上设有 MM 个边防站,顺时针编号 11 至 MM。每名边防战士常驻两个边防站,并且善于在这两个边防站之间长途奔袭,我们称这两个边防站之间的路程是这个边防战士的奔袭区间。
2025-02-07 19:32:41
492
原创 Look Up S
约翰的 N(1≤N≤105)N(1≤N≤105) 头奶牛站成一排,奶牛 ii 的身高是 Hi(1≤Hi≤106)Hi(1≤Hi≤106)。现在,每只奶牛都在向右看齐。对于奶牛 ii,如果奶牛 jj 满足 i<ji<j 且 Hi<HjHi<Hj,我们可以说奶牛 ii 可以仰望奶牛 jj。求出每只奶牛离她最近的仰望对象。Input。
2025-02-07 19:24:50
926
原创 约瑟夫问题
nn 个人围成一圈,从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
2025-02-07 19:20:02
278
原创 合并果子。
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1n−1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。
2025-02-07 10:56:33
727
原创 ST 表 && RMQ 问题
这段代码通过预处理构建了一个稀疏表,使得每次区间最大值查询可以在 O(1) 时间内完成。预处理的时间复杂度为 O(n log n),而每次查询的时间复杂度为 O(1)。
2025-02-07 10:38:18
594
原创 青蛙过河.
小青蛙住在一条河边,它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上。不过,每块石头有一个高度,每次小青蛙从一块石头起跳,这块石头的高度就会下降 11,当石头的高度下降到 00 时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到 00 是允许的)。小青蛙一共需要去学校上 xx 天课,所以它需要往返 2x2x 次。当小青蛙具有一个跳跃能力 yy 时,它能跳不超过 yy 的距离。
2025-01-26 18:51:02
284
原创 卡牌 .....
这天,小明在整理他的卡牌。他一共有 nn 种卡牌,第 ii 种卡牌上印有正整数数 i(i∈[1,n])i(i∈[1,n]), 且第 ii 种卡牌现有 aiai 张。而如果有 nn 张卡牌,其中每种卡牌各一张,那么这 nn 张卡牌可以被称为一套牌。小明为了凑出尽可能多套牌,拿出了 mm 张空白牌, 他可以在上面写上数 ii,将其当做第 ii 种牌来凑出套牌。然而小明觉得手写的牌不太美观,决定第 ii 种牌最多手写 bibi 张。请问小明最多能凑出多少套牌?
2025-01-26 18:43:49
292
原创 A-B 数对
这段代码的核心思想是利用排序和二分查找来高效地找到满足条件的数对。通过先排序,再使用二分查找,可以显著减少时间复杂度,从而提升性能。left = mid;
2025-01-25 13:28:28
311
原创 二分查找.....
输入一个整数 n 和 n 个整数,保证这 n 个整数已经按照从小到大进行排序。然后输入一个整数 q ( q≤100000)代表 q 次查询。接下来 q 行,每行含有一个整数 m ,代表一次查询。对于每次查询,使用二分查找判断 m 是否在之前输入的 n 个整数中出现过。如果出现,输出一行 "Yes" ,否则输出 "No"。
2025-01-24 21:12:52
269
原创 更好的交换
/ 原始矩阵// 临时矩阵,用于存储中间结果// 行和列的映射数组a是输入的原始矩阵。t是一个临时矩阵,用于存储中间结果。h和l是两个数组,分别用于记录行和列的交换情况。这段代码通过两次遍历矩阵,分别处理行和列的交换操作,最终输出处理后的矩阵。cin>>n>>m;i<=n;i++)j<=n;j++)i<m;i++)j<=n;j++)i<=n;
2025-01-22 17:23:56
837
原创 Many Replacement
它读取一个字符串,并根据用户输入的替换规则对字符串中的字符进行替换,然后输出替换后的字符串。这些头文件分别用于输入输出操作、字符串处理和映射容器的使用。这行代码使得我们可以直接使用标准库中的名称而不需要加上。
2025-01-22 14:32:46
704
原创 rules
输入已知需要判断的规则号,我们只需对这一个进行判断,首先一天一天的判断,直接判断该规则号是不是在该一天出现一半以上,注意这一题的一半要精确到小数,如果出现一半,则天数加一,最后如果天数也是总天数一半则输出YES,否则输出NO。第一天、第二天分别有 1 个人遵守规则 1,都等于人数的一半,因此这两天小 A 的规则都符合民意,所以小 A 认为他的规则是正确的。从前有个荣光的王国,小 A 是其中的国王,他认为一个国家除了法律外还要有一些约定俗成的规则,所以今天他要赐以其规则。
2025-01-22 13:21:03
334
原创 Problem Generator
可以声明一个数组 p 来存储 A-G 字母的个数,然后该数组 p 的每个元素都减去 m ,然后对于为负数的 p[i] ,取相反数相加求和,即可得出结果。
2025-01-22 13:13:08
733
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅