自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P3870 [TJOI2009] 开关

现有 n 盏灯排成一排,从左到右依次编号为:1,2,……然后依次执行 m 项操作。每当遇到第二种操作时,输出一行,包含一个整数,表示此时在查询的区间中打开的灯的数目。接下来有 m 行,每行有三个整数,依次为:c、a、b。其中 c 表示操作的种类。第一行有两个整数 n 和 m,分别表示灯的数目和操作的数目。对懒标记取异或,(偶数次操作即关灯,奇数次为开灯)。a 和 b 则分别表示了操作区间的左右边界。明显,关灯数 = 区间灯的总数 - 开灯数。记录每个区间中开灯的数量。剩下的就是线段数板子。

2025-08-26 22:25:57 62

原创 P5002 专心OI - 找祖先

这个游戏会给出你一棵树,这棵树有 N 个节点,根结点是 R,系统会选中 M 个点 P1​,P2​⋯PM​,要Imakf 回答有多少组点对 (ui​,vi​) 的最近公共祖先是 Pi​。Imakf 是一个小蒟蒻,他最近刚学了 LCA,他在手机 APPstore 里看到一个游戏也叫做 LCA 就下载了下来。输出共 M 行,每行一个数,第 i 行的数表示有多少组点对 (ui​,vi​) 的最近公共祖先是 Pi​。此后 N−1 行,每行两个数 a,b,表示 a,b 之间有一条边。第一行三个整数 N,R,M。

2025-08-24 09:53:25 177

原创 P1351 [NOIP 2014 提高组] 联合权值

点从 1 到 n 依次编号,编号为 i 的点的权值为 Wi​,每条边的长度均为 1。对于图 G 上的点对 (u,v),若它们的距离为 2,则它们之间会产生 Wv​×Wu​ 的联合权值。最后 1 行,包含 n 个正整数,每两个正整数之间用一个空格隔开,其中第 i 个整数表示图 G 上编号为 i 的点的权值为 Wi​。接下来 n−1 行,每行包含 2 个用空格隔开的正整数 u,v,表示编号为 u 和编号为 v 的点之间有边相连。请问图 G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?

2025-08-23 20:58:09 375

原创 P9246 [蓝桥杯 2023 省 B] 砍树

给定一棵由 n 个结点组成的树以及 m 个不重复的无序数对 (a1​,b1​),(a2​,b2​),…,(am​,bm​),其中 ai​ 互不相同,bi​ 互不相同,ai​=bj​(1≤i,j≤m)。小明想知道是否能够选择一条树上的边砍断,使得对于每个 (ai​,bi​) 满足 ai​ 和 bi​ 不连通,如果可以则输出应该断掉的边的编号 (编号按输入顺序从 1 开始),否则输出。后面 n−1 行,每行两个正整数 xi​,yi​ 表示第 i 条边的两个端点。后面 m 行,每行两个正整数 ai​,bi​。

2025-08-23 13:42:09 302

原创 P4427 [BJOI2018] 求和

他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的 k 次方和,而且每次的 k 可能是不同的。此处节点深度的定义是这个节点到根的路径上的边数。之后每行三个空格隔开的正整数 i,j,k,表示询问从点 i 到点 j 的路径上所有节点深度的 k 次方和。之后 n−1 行每行两个空格隔开的正整数 i,j,表示树上的一条连接点 i 和点 j 的边。树的节点从 1 开始标号,其中 1 号节点为树的根。第一行包含一个正整数 n,表示树的节点数。之后一行一个正整数 m,表示询问的数量。

2025-08-23 11:43:41 282

原创 P2783 有机化学之神偶尔会做作弊

树上距离=dep[u]+dep[v]-2*dep[lca(u,v)],对答案还要加上1。73pts (#1,#3,#8没过) 要去重边,

2025-08-19 23:12:58 300

原创 AcWing 1172. 祖孙询问

给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n。有 m 个询问,每个询问给出了一对节点的编号 x 和 y,询问 x 与 y 的祖孙关系。

2025-08-19 11:32:51 166

原创 P2169 正则表达式

在 Internet 网络中的每台电脑并不是直接一对一连通的,而是某些电脑之间存在单向的网络连接,也就是说存在 A 到 B 的连接不一定存在 B 到 A 的连接,并且有些连接传输速度很快,有些则很慢,所以不同连接传输所花的时间是有大有小的。另外,如果存在 A 到 B 的连接的同时也存在 B 到 A 的连接的话,那么 A 和 B 实际上处于同一局域网内,可以通过本地传输,这样花费的传输时间为 0。接下来 m 行,每行三个整数 u,v,w,表示从电脑 u 到电脑 v 传输信息的时间为 w。

2025-08-16 21:52:25 324

原创 P3387 【模板】缩点

给定一个 n 个点 m 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。对于 100% 的数据,1≤n≤104,1≤m≤1e5,0≤ai​≤1e3。第三至 m+2 行,每行两个整数 u,v,表示一条 u→v 的有向边。允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。第二行 n 个整数,其中第 i 个数 ai​ 表示点 i 的点权。第一行两个正整数 n,m。共一行,最大的点权之和。

2025-08-16 16:03:21 183

原创 P3916 图的遍历

给出 N 个点,M 条边的有向图,对于每个点 v,令 A(v) 表示从点 v 出发,能到达的编号最大的点。现在请求出 A(1),A(2),…接下来 M 行,每行 2 个整数 Ui​,Vi​,表示边 (Ui​,Vi​)。2.也可以用比较麻烦的tarjan,把连通的点记为一个大块,再搜一遍连通的大块,把较小的点更新。一行 N 个整数 A(1),A(2),…第 1 行 2 个整数 N,M,表示点数和边数。1.反向建图+反向遍历,dfs一搜答案就出来了。

2025-08-16 15:45:51 265

原创 P12348 [蓝桥杯 2025 省 A 第二场] 交互

有一个未知的下标从 1 到 m 的数组 a,小蓝每次可以进行一次询问 (l,r,p,q),然后交互程序会返回 ans 满足 l≤x≤rmin​a[x]−p≤y≤qmax​a[y]≥ans。给定小蓝的几次询问和交互程序的返回值,请你帮他求出 1≤x≤mmax​a[x]−1≤y≤mmin​a[y] 的可能的最小值。输出一行包含一个整数表示答案,即 1≤x≤mmax​a[x]−1≤y≤mmin​a[y] 的可能的最小值,如果无解请输出。显然 [L , R] 中的每一位减去[P, Q]的每一位 都恒大于 X。

2025-08-14 23:12:09 467 1

原创 P1938 [USACO09NOV] Job Hunt S

这项服务有 F (1≤F≤350) 条单向航线,每条航线是从城市 Ji​ 飞到另一座城市 Ki​(1≤Ji​,Ki​≤C),费用是 Ti​ (1≤Ti​≤50000) 美元。城市间有 P (1≤P≤150) 条单向路径连接,共有 C (1≤C≤220) 座城市,编号从 1 到 C。路径 i 从城市 Ai​ 到城市 Bi​(1≤Ai​,Bi​≤C),在路径上行走不用任何花费。接下来 F 行,每行 3 个用空格分开的整数,表示一条从城市 Ji​ 到城市 Ki​ 的单向航线,费用是 Ti​。

2025-08-12 16:23:31 275

原创 AcWing 890. 能被整除的数 (容斥原理)

给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm。请你求出 1∼n 中能被 p1,p2,…,pm 中的至少一个数整除的整数有多少个。

2025-08-04 18:49:57 214

原创 P1115 最大子段和

给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai​。选取 [3,5] 子段 {3,−1,2},其和为 4。第一行是一个整数,表示序列的长度 n。不难想到,一段区间的和等于。输出一行一个整数表示答案。,设答案区间左右端点位。要让区间之和最大,显然要。可以通过前缀和的性质。

2025-08-01 15:14:29 221

原创 P1076 [NOIP 2012 普及组] 寻宝

每个房间里有一个指示牌,指示牌上有一个数字 x,表示从这个房间开始按逆时针方向选择第 x 个有楼梯的房间(假定该房间的编号为 k),从该房间上楼,上楼后到达上一层的 k 号房间。比如当前房间的指示牌上写着 2,则按逆时针方向开始尝试,找到第 2 个有楼梯的房间,从该房间上楼。如果当前房间本身就有楼梯通向上层,该房间作为第一个有楼梯的房间。接下来 N×M 行,每行两个整数,之间用一个空格隔开,每行描述一个房间内的情况,其中第 (i−1)×M+j 行表示第 i 层 j−1 号房间的情况(i=1,2,⋯,N;

2025-07-28 23:18:57 374

原创 P1061 [NOIP 2006 普及组] Jam 的计数法

在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。最多为 5 行,为紧接在输入的 Jam 数字后面的 5 个 Jam 数字,如果后面没有那么多 Jam 数字,那么有几个就输出几个。你的任务是:对于从文件读入的一个 Jam 数字,按顺序输出紧接在后面的 5 个 Jam 数字,如果后面没有那么多 Jam 数字,那么有几个就输出几个。(其中 s 为所使用的最小的字母的序号,t 为所使用的最大的字母的序号。NOIP 2006 普及组 第三题。

2025-07-28 20:12:58 393

原创 P1037 [NOIP 2002 普及组] 产生数

( 例:小明可以从3件不同的上衣,4件不同的裤子中分别选出一件,组成一套服装,组成的服装总数为 3×4=12 件 )答案太大可以用__int128 类型(范围从 -2¹²⁷ 到 2¹²⁷-1,但是普遍不支持输出,要自己手写输出函数)求出经过任意次的变换(0 次或多次),能产生出多少个不同整数。接下来 k 行,每行两个整数 xi​,yi​,表示每条规则。对于 100% 数据,满足 n<1030,k≤15。例如:n=234,k=2。第一行两个整数 n,k,含义如题面所示。给出一个整数 n 和 k 个变换规则。

2025-07-27 14:47:12 138

原创 P5535 【XR-3】小道消息

有 n 个人,其中第 i 个人的衣服上有一个数 i+1。小 X 发现了一个规律:当一个衣服上的数为 i 的人在某一天知道了一条信息,他会在第二天把这条信息告诉衣服上的数为 j 的人,其中 gcd(i,j)=1(即 i,j 的最大公约数为 1)。: 如果(k+1)为质数 则在区间[2 ,2*k ]中,全部与它互质,若n <= 2*k 那么第一天所有人都知道消息,输出"1";:如果(k+1)不为质数,那第一天它可以传给尽量大的接近 n 的质数,如此就变成了情况一,在情况一的基础上多加一天,即输出"2";

2025-07-23 14:33:57 646

原创 P4549 【模板】裴蜀定理

给定一个包含 n 个元素的序列 A,记作 A1​,A2​,A3​,...,An​。求另一个包含 n 个元素的待定序列 X,记 S=i=1∑n​Ai​×Xi​,使得 S>0 且 S 尽可能的小。

2025-07-23 11:45:35 398

原创 P2118 [NOIP 2014 普及组] 比例简化

现给出支持人数 A,反对人数 B,以及一个上限 L,请你将 A 比 B 化简为 A′ 比 B′,要求在 A′ 和 B′ 均不大于 L 且 A′ 和 B′ 互质(两个整数的最大公约数是 1)的前提下,B′A′​≥BA​ 且 B′A′​−BA​ 的值尽可能小。例如,对某一观点表示支持的有 1498 人,反对的有 902 人,那么赞同与反对的比例可以简单的记为 1498:902。对于 100% 的数据,1≤A≤1e6,1≤B≤1e6,1≤L≤100,A/B​≤L。NOIP2014 普及组 T2。

2025-07-22 21:18:07 340

原创 P1170 兔八哥与猎人

第一行为 n,表示有 n 组数据,每组数据的第一行为两个正整数 ax​ 和 ay​,表示猎人的位置,第二行为两个正整数 bx​ 和 by​,表示兔八哥的位置。果园有 M×N 棵树,组成一个 M 行 N 列的矩阵,水平或垂直相邻的两棵树的距离为 1。dx,dy取绝对值 ,两点可看成从 (0 , 0) 到 (dx , dy)如果猎人与兔八哥位置的连线上没有其它的果树,猎人就可以看到兔八哥。现已知猎人和兔八哥的位置,编写程序判断兔子所在的位置是否安全。猎人背着猎枪走进了果园,他爬上一棵果树,准备杀死兔八哥。

2025-07-22 13:01:39 372

原创 P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题

int n, m;//题目中的 x0 y0i <= m;i += n) {//令 P = i,则答案中必有 Q = sum / ires++;int T = 1;return 0;

2025-07-22 00:15:23 267

原创 蒙德里安的梦想

【代码】蒙德里安的梦想。

2025-07-16 11:11:02 214

原创 P1004 [NOIP 2000 提高组] 方格取数 ( 三维dp )

某人从图的左上角的 A 点出发,可以向下行走,也可以向右走,直到到达右下角的 B 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字 0)。输入的第一行为一个整数 N(表示 N×N 的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。设有 N×N 的方格图 (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。此人从 A 点到 B 点共走两次,试找出 2 条这样的路径,使得取得的数之和为最大。NOIP 2000 提高组 T4。

2025-04-09 23:05:04 436

原创 最大上升子序列和

对于给定的一个序列(a1,a2,...,aN),我们可以得到一些上升的子序列(ai1,ai2,...,aiK),这里1<=i1<i2<...<iK<=N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列中和最大为18,为子序列(1,3,5,9)的和。注意,最长的上升子序列的和不一定是最大的,比如序列(100,1,2,3)的最大上升子序列和为100,而最长上升子序列为(1,2,3)。你的任务,就是对于给定的序列,求出最大上升子序列和。

2025-04-06 12:57:27 344

原创 (蓝桥杯)岛屿个数

(xk−1​,yk−1​),其中 (xi+1modk,yi+1modk)(xi+1modk​,yi+1modk​) 是由 (xi,yi)(xi​,yi​) 通过上/下/左/右移动一次得来的 (0≤i≤k−1)(0≤i≤k−1),此时这 kk 个格子就构成了一个“环”。小蓝得到了一副大小为 M×NM×N 的格子地图,可以将其视作一个只包含字符 '0'(代表海水)和 '1'(代表陆地)的二维数组,地图之外可以视作全部是海水,每个岛屿由在上/下/左/右四个方向上相邻的 '1' 相连接而形成。

2025-04-05 12:39:52 907

原创 P1706 全排列问题 及 P1157 组合的输出

排列与组合是常用的数学方法,其中组合就是从 n 个元素中抽出 r 个元素(不分顺序且 r≤n),我们可以简单地将 n 个元素理解为自然数 1,2,…,n,从中任取 r 个数。按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。由 1∼n 组成的所有不重复的数字序列,每行一个序列。一行两个自然数 n,r。现要求你输出所有组合。

2025-03-23 00:14:38 438

原创 (蓝桥杯)飞机降落c++

其中第 ii 架飞机在 TiTi​ 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 DiDi​ 个单位时间,即它最早可以于 TiTi​ 时刻开始降落,最晚可以于 Ti+DiTi​+Di​ 时刻开始降落。对于第一组数据,可以安排第 33 架飞机于 00 时刻开始降落,2020 时刻完成降落。安排第 22 架飞机于 2020 时刻开始降落,3030 时刻完成降落。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。对于每组数据,第一行包含一个整数 NN。

2025-03-17 17:34:57 372

原创 P1591 阶乘数码

第一行为 t(t≤10),表示数据组数。接下来 t 行,每行一个正整数 n(n≤1000) 和数码 a。对于每组数据,输出一个整数,表示 n!中 a 出现的次数。中某个数码出现的次数。

2025-03-16 12:53:13 241

原创 字符大小写转换(c++)

在 C++ 中,可以使用标准库中的字符处理函数来进行字符的大小写转换。在这个例子中,用户输入一个字符,程序会输出其对应的小写和大写字母。

2025-03-15 00:19:18 649

原创 B3626 跳跃机器人

机器猫当然不愿意自己跑过去,所以机器猫从口袋里掏出了一个机器人!地上有一排格子,共 n 个位置。机器猫站在第一个格子上,需要取第 n 个格子里的东西。问机器人最少需要多少次跳跃,才能到达 n 号格子。仅一行,一个正整数,表示最少跳跃次数。仅一行,一个正整数,表示 n。

2025-03-11 22:59:50 256

原创 P3383 【模板】线性筛素数

如题,给定一个范围 n,有 q 个询问,每次输出第 k 小的素数。第一行包含两个正整数 n,q,分别表示查询的范围和查询的个数。接下来 q 行每行一个正整数 k,表示查询第 k 小的素数。本题已更新,从判断素数改为了查询第 k 小的素数。输出 q 行,每行一个正整数表示答案。提示:本题输入输出、运算数据量较大。

2025-03-08 14:24:35 488

原创 P2802 回家

每次他能向上下左右四个方向移动一格(当然小 H 不可以静止不动), 但不能离开封锁线,否则就被打死了。刚开始时他有满血 6 点,每移动一格他要消耗 1 点血量。一旦小 H 的血量降到 0, 他将死去。只要他走到有鼠标的格子,他不需要任何时间即可拾取。格子上的鼠标可以瞬间补满,所以每次经过这个格子都有鼠标。就算到了某个有鼠标的格子才死去, 他也不能通过拾取鼠标补满 HP。第一行两个整数 n,m, 表示地图的大小为 n×m。:小 H 出发点, 也是一片空地。:空地, 小 H 可以自由行走。

2025-03-06 18:18:21 388

原创 P10491 [USACO09NOV] The Chivalrous Cow B

这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋中马的走法)。虽然这头神奇的牛不能跳到树上和石头上,但是它可以在牧场上随意跳,我们把牧场用一个 x,y 的坐标图来表示。这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了 The Knight 的开始位置,树、灌木、石头以及其它障碍的位置,除此之外还有一捆草。现在你的任务是,确定 The Knight 要想吃到草,至少需要跳多少次。第一行: 两个数,表示农场的列数(≤150) 和行数(≤150)

2025-03-05 22:25:25 279

原创 P1700 [USACO19OPEN] Milk Factory B

然而,Farmer John 认为事情可能还不算完全失败,只要至少还存在一个加工站 i 满足从其他每个加工站出发都可以到达加工站 i。(通道建设很昂贵,所以 Farmer John 选择使用了最小数量的通道,使得从每个加工站出发都可以到达所有其他加工站)。输入的第一行包含一个整数 N,为加工站的数量。这表示有一条从加工站 ai​ 向加工站 bi​ 移动的传送带,仅允许沿从 ai​ 到 bi​ 的方向移动。如果存在加工站 i 满足可以从任意其他加工站出发都可以到达加工站 i,输出最小的满足条件的 i。

2025-03-05 12:45:42 427

原创 B3625 迷宫寻路

迷宫可以视为一个 n×m 矩阵,每个位置要么是空地,要么是墙。机器猫只能从一个空地走到其上、下、左、右的空地。机器猫初始时位于 (1,1) 的位置,问能否走到 (n,m) 位置。接下来 n 行,输入这个迷宫。每行输入一个长为 m 的字符串,仅一行,一个字符串。如果机器猫能走到 (n,m),则输出。机器猫被困在一个矩形迷宫里。第一行,两个正整数 n,m。

2025-03-02 21:16:34 299

原创 P1690 贪婪的Copy

Copy 从卢牛那里听说在一片叫 yz 的神的领域埋藏着不少宝藏,于是 Copy 来到了这个被划分为 n 个区域的神地。卢牛告诉了Copy这里共有 n 个宝藏,分别放在第 Pi​ 个 (1≤Pi​≤N) 区域。Copy 很懒,只好来找你为他寻找一条合适的线路,使得他走过的距离最短。接下来一个 N×N 的矩阵,第 i+1 行第 j 列的数字表示区域 i,j 之间的距离。请注意的 i→j 距离并不一定等于 j→i 的距离。第 N+3 行共 P 个用空格隔开的整数,表示有宝藏的区域编号。

2025-03-02 14:53:13 345

原创 P8802 [蓝桥杯 2022 国 B] 出差

由于疫情原因,很多直达的交通方式暂时关闭,小明无法乘坐飞机直接从城市 1 到达城市 N,需要通过其他城市进行陆路交通中转。M+2 行: 每行 3 个正整数, u,v,c, 表示有一条城市 u 到城市 v 的双向路线仍然开通着,通过该路线的时间为 c。N 小明是编号为 1 的城市中一家公司的员工,今天突然接到了上级通知需要去编号为 N 的城市出差。第 1 行:1 个正整数,表示小明从城市 1 出发到达城市 N 的最短时间。第 1 行:两个正整数 N,M 表示 A 国的城市数量, M 表示末关闭的路线数量。

2025-03-01 23:42:48 277

原创 P1396 营救

该市有 m 条大道连接 n 个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从 s 至 t 的路线,使得经过道路的拥挤度最大值最小。妈妈丰富的经验告诉她小明被带到了 t 区,而自己在 s 区。接下来 m 行,每行三个整数 u,v,w,表示有一条大道连接区 u 和区 v,且拥挤度为 w。小明的妈妈要从 1 号点去 3 号点,最优路线为 1->2->3。第一行有四个用空格隔开的 n,m,s,t,其含义见【题目描述】。

2025-02-24 13:26:53 378

原创 P8838 [传智杯 #3 决赛] 面试

请你算出一个序列 pk​ 表示指令 i 的数据分配给服务器 pi​,且 pk​ 的字典序最小;接下来会有 k 条指令 bk​,指令 i 表示发送 bi​ 的数据,需要你分配一个空闲的服务器。第 2 行输入 n 个正整数 ai​,表示服务器 i 最多能处理的数据大小。现在有 n 个服务器,服务器 i 最多能处理 ai​ 大小的数据。pk​,或者输出 "-1"。第 3 行输入 k 个正整数 bi​,表示指令 i。对于所有数据,n,k≤6,ai​,bi​≤10。第 1 行输入 2 个正整数 n,k。

2025-02-20 18:42:00 301

空空如也

空空如也

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

TA关注的人

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