自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Playfair 加密算法

示例:HS → BP(H在第二行第一列,S在第四行第四列 → B在第二行第四列,P在第四行第一列)恢复明文: "HELX LOWORLDX" → 去除填充后 "HELLOWORLD":如果两个字母在同一行,每个字母被替换为右侧的字母(最右边的字母循环到最左边):如果两个字母在同一列,每个字母被替换为下方的字母(最下方的字母循环到最上方)明文 "HELLO WORLD" → "HE LX LO WO RL DX"去除重复字母("MONARCHY" → "MONARCHY")明文: "HELLOWORLD"

2025-06-11 09:57:08 239

原创 RSA算法

RSA属于"非对称加密"算法,与传统的对称加密不同,它使用一对密钥:公钥和私钥。公钥可以公开分享,用于加密数据;而私钥必须严格保密,用于解密数据。这种特性使得RSA成为安全通信的理想选择。

2025-06-10 19:30:31 137

原创 P1094 [NOIP 2007 普及组] 纪念品分组

为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。100% 的数据满足:1≤n≤3×104,80≤w≤200,5≤Pi​≤w。第一行包括一个整数 w,为每组纪念品价格之和的上限。第二行为一个整数 n,表示购来的纪念品的总件数 G。

2025-06-09 07:45:00 153

原创 P1208 [USACO1.3] 混合牛奶 Mixing Milk

此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。给出 Marry 乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。接下来 m 行,每行两个整数 pi​,ai​,表示第 i 个农民牛奶的单价,和农民 i 一天最多能卖出的牛奶量。单独的一行包含单独的一个整数,表示 Marry 的牛奶制造公司拿到所需的牛奶所要的最小费用。第一行二个整数 n,m,表示需要牛奶的总量,和提供牛奶的农民个数。注:每天所有奶农的总产量不少于 Marry 乳业的需求量。

2025-06-08 08:00:00 291

原创 P1478 陶陶摘苹果(升级版)

现在已知 n 个苹果到达地上的高度 xi​,椅子的高度 a,陶陶手伸直的最大长度 b,陶陶所剩的力气 s,陶陶摘一个苹果需要的力气 yi​,求陶陶最多能摘到多少个苹果。陶陶又跑去摘苹果,这次他有一个 a 公分的椅子。对于 100% 的数据,n≤5000, a≤50, b≤200, s≤1000, xi​≤280, yi​≤100。第 3 行~第 3+n−1 行:每行两个数 苹果高度 xi​,摘这个苹果需要的力气 yi​。第 2 行:两个数 椅子的高度 a,陶陶手伸直的最大长度 b。

2025-06-07 13:44:40 163

原创 P1803 凌乱的yyy / 线段覆盖

第一行是一个整数 n,接下来 n 行每行是 2 个整数 ai​,bi​ (ai​<bi​),表示比赛开始、结束的时间。由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 2 个及以上的比赛。现在各大 oj 上有 n 个比赛,每个比赛的开始、结束的时间点是知道的。yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。所以,他想知道他最多能参加几个比赛。一个整数最多参加的比赛数目。

2025-06-06 10:02:21 536

原创 P1223 排队接水

有 n 个人在一个水龙头前排队接水,假如每个人接水的时间为 Ti​,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。第二行 n 个整数,第 i 个整数 Ti​ 表示第 i 个人的接水时间 Ti​。1≤n≤1000,1≤ti​≤106,不保证 ti​ 不重复。第一行为一个整数 n。

2025-06-05 11:45:00 255

原创 P2240 【深基12.例1】部分背包问题

阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有 N(N≤100) 堆金币,第 i 堆金币的总重量和总价值分别是 mi​,vi​(1≤mi​,vi​≤100)。阿里巴巴有一个承重量为 T(T≤1000) 的背包,但并不一定有办法将全部的金币都装进去。他想装走尽可能多价值的金币。所有金币都可以随意分割,分割完的金币重量价值比(也就是单位价格)不变。请问阿里巴巴最多可以拿走多少价值的金币?接下来 N 行,每行两个整数 mi​,vi​。一个实数表示答案,输出两位小数。第一行两个整数 N,T。

2025-06-05 07:30:00 321

原创 P1990 覆盖墙壁

给定 N,要求计算 2×N 的墙壁的覆盖方法。例如 2×13 的覆盖方法为 13465,只需输出 3465 即可。如果答案少于 4 位,就直接输出就可以,不用加前导 0,如 N=3 时输出 5。砖头可以旋转,两种砖头可以无限制提供。你的任务是计算用这两种来覆盖 N×2 的墙壁的覆盖方法。你有一个长为 N 宽为 2 的墙壁,给你两种砖头:一个长 2 宽 1,另一个是 L 型覆盖 3 个单元的砖头。输出覆盖方法的最后 4 位,如果不足 4 位就输出整个答案。一个整数 N,表示墙壁的长。

2025-06-04 09:45:00 355

原创 P2437 蜜蜂路线

一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m<n,有多少种爬行路线?(备注:题面有误,右上角应为 n−1)对于100%的数据,1≤M,N≤1000。

2025-06-04 07:00:00 482

原创 P1928 外星密码

解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串 X 会压缩为 [DX] 的形式(D 是一个整数且 1≤D≤99),比如说字符串 CBCBCBCB 就压缩为 [4CB] 或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是 [2[2[2CB]]] 则是三重的。对于 100% 的数据:解压后的字符串长度在 20000 以内,最多只有十重压缩。对于 50% 的数据:解压后的字符串长度在 1000 以内,最多只有三重压缩。输入一行,一个字符串,表示外星人发送的密码。

2025-06-03 07:30:00 300

原创 P1255 数楼梯

楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。

2025-06-02 07:00:00 167

原创 P1217 [USACO1.5] 回文质数 Prime Palindromes

因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)(一亿)间的所有回文质数。提示 2: 要产生正确的回文数,你可能需要几个像下面这样的循环。提示 1: 找出所有的回文数再判断它们是不是质数(素数).第一行输入两个正整数 a 和 b。输出一个回文质数的列表,一行一个。

2025-06-01 08:00:00 638

原创 P1706 全排列问题

按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。由 1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 5 个场宽。

2025-05-31 08:00:00 372

原创 P1157 组合的输出

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

2025-05-30 11:19:50 241

原创 如何彻底卸载 VS Code?三招教你轻松搞定!

如果 VS Code 卸载时报错、卡住、删不干净,那就得请出我们的“专业清洁工”了——第三方卸载工具!如果你发现某些残留怎么都删不掉,不妨重启电脑后再试一次,可能会有意想不到的效果!如果你想保留这些配置,记得提前备份!📌 使用方法也很简单:下载安装后,选中 VS Code,点击“强力卸载”就可以了。这是最常规、也是最推荐的卸载方式,就像我们给手机卸载 App 一样简单。这样即使你重新安装,也能快速恢复熟悉的开发环境。

2025-05-29 11:12:16 490

原创 P1618 三连击(升级版)

9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出。若干行,每行 3 个数字。按照每行第一个数字升序排列。保证 0≤A<B<C≤999。三个数,A,B,C。

2025-05-28 07:45:00 634

原创 P2089 烤鸡

猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 种配料(芥末、孜然等),每种配料可以放 1 到 3 克,任意烤鸡的美味程度为所有配料质量之和。现在, Hanke 想要知道,如果给你一个美味程度 n ,请输出这 10 种配料的所有搭配方案。第二行至结束,10 个数,表示每种配料所放的质量,按字典序排列。如果没有符合要求的方法,就只要在第一行输出一个 0。对于 100% 的数据,n≤5000。一个正整数 n,表示美味程度。

2025-05-27 07:45:00 520

原创 P1068 [NOIP 2009 普及组] 分数线划定

面试分数线根据计划录取人数的 150% 划定,即如果计划录取 m 名志愿者,则面试分数线为排名第 m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。第一行,两个整数 n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中 n 表示报名参加笔试的选手总数,m 表示计划录取的志愿者人数。从第二行开始,每行包含 2 个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

2025-05-26 16:12:55 680

原创 B3611 【模板】传递闭包

对于 100% 的数据,1≤n≤100,保证 aij​∈{0,1} 且 aii​=0。第 2 到 n+1 行每行 n 个整数,第 i+1 行第 j 列的整数为 aij​。给定一张点数为 n 的有向图的邻接矩阵,图中不包含自环,求该有向图的传递闭包。第 1 到 n 行每行 n 个整数,第 i 行第 j 列的整数为 bij​。一张图的邻接矩阵定义为一个 n×n 的矩阵 A=(aij​)n×n​,其中。一张图的传递闭包定义为一个 n×n 的矩阵 B=(bij​)n×n​,其中。输入数据共 n+1 行。

2025-05-25 13:07:56 534

原创 P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two

一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。每次(每分钟)Farmer John 和两头牛的移动是同时的。如果他们在移动的时候穿过对方,但是没有在同一格相遇,我们不认为他们相遇了。计算 Farmer John 需要多少分钟来抓住他的牛,假设牛和 Farmer John 一开始的行动方向都是正北(即上)。两只牛逃跑到了森林里。你的任务是模拟他们的行为(牛和 John)。

2025-05-23 10:45:13 595

原创 P1923 【深基9.例4】求第 k 小的数

输入 n(1≤n<5000000 且 n 为奇数)个数字 ai​(1≤ai​<109),输出这些数字的第 k 小的数。最小的数是第 0 小。第二行有 n 个整数,第 i 个数表示 ai​。来写本题,因为本题的重点在于练习分治算法。第一行有两个整数,分别表示 n 和 k。一个整数,表示第 k 小的数。

2025-05-22 10:00:59 340

原创 P1271 【深基9.例1】选举学生会

学校正在选举学生会成员,有 n(n≤999)名候选人,每名候选人编号分别从 1 到 n,现在收集到了 m(m≤2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。输入 n 和 m 以及 m 个选票上的数字。求出排序后的选票编号。

2025-05-22 09:56:46 238

原创 P1886 滑动窗口 /【模板】单调队列

窗口位置[1 3 -1] -3 5 3 6 7 1 [3 -1 -3] 5 3 6 7 1 3 [-1 -3 5] 3 6 7 1 3 -1 [-3 5 3] 6 7 1 3 -1 -3 [5 3 6] 7 1 3 -1 -3 5 [3 6 7]​最小值−1−3−3−333​最大值335567​​。对于 100% 的数据,1≤k≤n≤106,ai​∈[−231,231)。

2025-05-21 13:46:47 585

原创 P5266 【深基17.例6】学籍管理

【代码】P5266 【深基17.例6】学籍管理。

2025-05-20 07:30:00 447

原创 P1892 [BalticOI 2003] 团伙

接下来 m 行,每行一个字符 opt 和两个整数 p,q,分别代表关系(朋友或敌人),有关系的两个人之中的第一个人和第二个人。现在要对这些人进行组团。两个人在一个团体内当且仅当这两个人是朋友。请求出这些人中最多可能有的团体数。对于 100% 的数据,2≤n≤1000,1≤m≤5000,1≤p,q≤n。现在有 n 个人,他们之间有两种关系:朋友和敌人。第二行输入一个整数 m 表示接下来要列出 m 个关系。第一行输入一个整数 n 代表人数。一行一个整数代表最多的团体数。

2025-05-19 10:11:05 568

原创 P1009 [NOIP 1998 普及组] 阶乘之和

表示阶乘,定义为 n!用高精度计算出 S=1!对于 100% 的数据,1≤n≤50。一个正整数 S,表示计算结果。

2025-05-18 12:23:49 557

原创 P1160 队列安排

第 2∼N 行,第 i 行包含两个整数 k,p,其中 k 为小于 i 的正整数,p 为 0 或者 1。若 p 为 0,则表示将 i 号同学插入到 k 号同学的左边,p 为 1 则表示插入到右边。2∼N 号同学依次入列,编号为 i 的同学入列方式为:老师指定编号为 i 的同学站在编号为 1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;接下来 M 行,每行一个正整数 x,表示将 x 号同学从队列中移去,如果 x 号同学已经不在队列中则忽略这一条指令。第一行一个整数 N,表示了有 N 个同学。

2025-05-17 08:00:00 632

原创 P1449 后缀表达式

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。保证对于 / 运算除数不为 0。特别地,其中 / 运算的结果需要。如:3*(5-2)+7 对应的后缀表达式为:3.5.2.-*7.+@。数据保证,1≤∣s∣≤50,答案和计算过程中的每一个值的绝对值不超过 109。输入一行一个字符串 s,表示后缀表达式。输出一个整数,表示表达式的值。为表达式的结束符号。为操作数的结束符号。

2025-05-16 11:35:32 571

原创 P1303 A*B Problem

每个非负整数不超过 102000。给出两个非负整数,求它们的乘积。输入共两行,每行一个非负整数。输出一个非负整数表示乘积。

2025-05-15 11:01:59 317

原创 P1601 A+B Problem(高精)

高精度加法,相当于 a+b problem,40% 的测试数据,0≤a,b≤1018。20% 的测试数据,0≤a,b≤109;输出只有一行,代表 a+b 的值。a,b≤10500。

2025-05-15 10:40:17 253

原创 P1226 【模板】快速幂

对于 100% 的数据,保证 0≤a,b<231,a+b>0,2≤p<231。,其中 a,b,p 分别为题目给定的值, s 为运算结果。给你三个整数 a,b,p,求 abmodp。输入只有一行三个整数,分别代表 a,b,p。

2025-05-14 07:30:00 385

原创 P2404 自然数的拆分问题

任何一个大于 1 的自然数 n,总可以拆分成若干个小于 n 的自然数之和。现在给你一个自然数 n,要求你求出 n 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。输入:待拆分的自然数 n。输出:若干数的加法式子。数据保证,2≤n≤8。

2025-05-13 09:00:00 475

原创 P1605 迷宫

第二行为四个正整数 SX,SY,FX,FY,SX,SY 代表起点坐标,FX,FY 代表终点坐标。对于 100% 的数据,1≤N,M≤5,1≤T≤10,1≤SX,FX≤n,1≤SY,FY≤m。给定起点坐标和终点坐标,每个方格最多经过一次,问有多少种从起点坐标到终点坐标的方案。给定一个 N×M 方格的迷宫,迷宫里有 T 处障碍,障碍处不可通过。第一行为三个正整数 N,M,T,分别表示迷宫的长宽和障碍总数。接下来 T 行,每行两个正整数,表示障碍点的坐标。输出从起点坐标到终点坐标的方案总数。

2025-05-12 22:01:22 449

原创 牛客周赛 Round 92

【代码】牛客周赛 Round 92。

2025-05-12 18:14:20 671

原创 P4933 大师

这时候,如果留在地上的电塔的高度,从左向右构成了一个等差数列,那么这个选择方案就会被认为是美观的。ljt12138 首先建了 n 个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为 1 到 n,第 i 个电塔的高度为 h[i]。注意,如果地上只留了一个或者两个电塔,那么这种方案也是美观的。第二行 n 个非负整数,第 i 个整数是第 i 个电塔的高度 h[i]。对于前 60% 的数据,n≤100,v≤2×103。对于 100% 的数据,n≤103,v≤2×104。对于前 30% 的数据,n≤20。

2025-05-11 15:37:15 376

原创 牛客练习赛138

【代码】牛客练习赛138。

2025-05-10 15:05:33 555

原创 P1725 琪露诺

小河可以看作一列格子依次编号为 0 到 N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子 i 时,她只移动到区间 [i+L,i+R] 中的任意一格。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。对于 100% 的数据,N≤2×105,−103≤Ai​≤103,1≤L≤R≤N。第二行共 N+1 个整数,第 i 个数表示编号为 i−1 的格子的冰冻指数 Ai−1​。开始时,琪露诺在编号 0 的格子上,只要她下一步的位置编号大于 N 就算到达对岸。

2025-05-10 08:04:06 327

原创 P2285 [HNOI2004] 打鼹鼠

鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为 (i,j) 的网格移向 (i−1,j),(i+1,j),(i,j−1),(i,j+1) 四个网格,机器人不能走出整个 n×n 的网格。第一行为 n,m(n≤1000,m≤104),其中 m 表示在这一段时间内出现的鼹鼠的个数,接下来的 m 行中每行有三个数据 time,x,y 表示在游戏开始后 time 个时刻,在第 x 行第 y 个网格里出现了一只鼹鼠。

2025-05-09 15:15:00 601

原创 P1049 [NOIP 2001 普及组] 装箱问题

现在从 n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积。对于 100% 数据,满足 0<n≤30,1≤V≤20000。接下来 n 行,每行有一个正整数,表示第 i 个物品的体积。共一行一个整数,表示箱子最小剩余空间。第一行共一个整数 V,表示箱子容量。第二行共一个整数 n,表示物品总数。

2025-05-09 10:00:00 546

空空如也

空空如也

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

TA关注的人

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