- 博客(33)
- 收藏
- 关注
原创 买铅笔cspj
她发现商店一共有 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一种包装的铅笔。接下来三行,每行用 2 个正整数描述一种包装的铅笔:其中第 1 个整数表示这种包装内铅笔的数量,第 2 个整数表示这种包装的价格。对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买 2 份,实际的花费达到了 30×2=60,因此 P 老师也不会选择。如果她选择购买第一种包装,那么她需要购买 29 份,共计 2×29=58 支,需要花费的钱为 2×29=58。
2024-10-25 19:41:50 138 1
原创 解密(cspj2022)
给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni,ei,di,求两个正整数 pi,qi,使 ni=pi×qi、ei×di=(pi−1)(qi−1)+1。保证对于 100% 的数据,1≤k≤105,对于任意的 1≤i≤k,1≤ni≤1018,1≤ei×di≤1018 ,1≤m≤109。1 103 103 103 保证有解。5 103 109 109 保证有解。6 103 109 109 无。如果无解,请输出 NO。
2024-10-25 19:38:14 219
原创 乘方(cspj2022)
小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 ab 的值是多少。ab 即 b 个 a 相乘的值,例如 23 即为 3 个 2 相乘,结果为 2×2×2=8。类型能表示的最大数为 231−1,因此只要计算结果超过这个数,她的程序就会出现错误。输出共一行,如果 ab 的值不超过 109,则输出 ab 的值,否则输出。对于 60% 的数据,保证 b≤30,ab≤1018。对于 100% 的数据,保证 1≤a,b≤109。进行警示,否则就输出正确的 ab 的值。
2024-10-25 19:34:54 292
原创 逻辑表达式
现在给你一个逻辑表达式,你需要计算出它的值,并且统计出在计算过程中,两种类型的“短路”各出现了多少次。需要注意的是,如果某处“短路”包含在更外层被“短路”的部分内则不被统计,如表达式。在一个逻辑表达式中,元素的值只有两种可能:0(表示假)和 1(表示真)。此外,在 C++ 等语言的有些编译器中,对逻辑表达式的计算会采用一种“短路”的策略:在形如。部分的值,如果 a=0,那么整个逻辑表达式的值就一定为 0,故无需再计算。部分的值,如果 a=1,那么整个逻辑表达式的值就一定为 1,无需再计算。
2024-10-25 19:32:40 897
原创 公路(cspj2020)
小苞想从站点 1 开车到站点 n,一开始小苞在站点 1 且车的油箱是空的。问小苞从站点 1 开到站点 n,至少要花多少钱加油?最优方案下:小苞在站点 1 买了 3 升油,在站点 2 购买了 5 升油,在站点 4 购买了 2 升油。公路上每个站点都可以加油,编号为 i 的站点一升油的价格为 ai 元,且每个站点只出售整数升的油。对于所有测试数据保证:1≤n≤105,1≤d≤105,1≤vi≤105,1≤ai≤105。输出一行,仅包含一个正整数,表示从站点 1 开到站点 n,小苞至少要花多少钱加油。
2024-10-25 19:31:05 234
原创 小苹果(cspj2023)
每天在拿的时候,小苞都是从左侧第 1 个苹果开始、每隔 2 个苹果拿走 1 个苹果。输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 n 的苹果是在第几天。小苞想知道,多少天能拿完所有的苹果,而编号为 n 的苹果是在第几天被拿走的?小苞第一天拿走了编号为 1、4、7 的苹果。小苞第二天拿走了编号为 2、6 的苹果。小苞第三天拿走了编号为 3 的苹果。小苞第四天拿走了编号为 5 的苹果。小苞第五天拿走了编号为 8 的苹果。小苞的桌上一共放了 8 个苹果。
2024-10-25 19:29:23 294
原创 小朋友的数字(2020cspj)
作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:第一个小朋友的分数是他的特征值,其它小朋友的分数为排在他前面的所有小朋友中(不包括他本人),小朋友分数加上其特征值的最大值。小朋友的特征值分别为 −1,−1,−1,−1,−1,分数分别为−1,−2,−2,−2,−2,最大值 −1 对 7 的模为 −1,输出 −1。小朋友的特征值分别为 1,3,6,10,15,分数分别为 1,2,5,11,21,最大值 21 对 997 的模是 21。一个整数,表示最大分数对 p 取模的结果。
2024-10-25 19:28:45 261
原创 表达式求值(2020cspj)
对于 100% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100000。对于 80% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤1000。对于 30% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100。注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。,且没有括号,所有参与运算的数字均为 0 到 231−1 之间的整数。给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。一行,为需要你计算的表达式,表达式中只包含数字、加法运算符。
2024-10-25 19:28:02 416
原创 计数问题(csp2023)
试计算在区间 1 到 n 的所有整数中,数字 x(0≤x≤9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。对于 100% 的数据,1≤n≤106,0≤x≤9。2 个整数 n,x,之间用一个空格隔开。1 个整数,表示 x 出现的次数。
2024-10-25 19:25:41 176
原创 螺旋矩阵(noip2014)
从矩阵的左上角(第 1 行第 1 列)出发,初始时向右移动;根据经过顺序,在格子中依次填入 1,2,3,…,n2,便构成了一个螺旋矩阵。共一行,包含三个整数 n, i, j,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。现给出矩阵大小 n 以及 i 和 j,请你求出该矩阵中第 i 行第 j 列的数是多少。对于 100% 的数据,1⩽n⩽30,000,1⩽i⩽n,1⩽j⩽n。一个整数,表示相应矩阵中第 i 行第 j 列的数。对于 50% 的数据,1⩽n⩽100;
2024-10-25 19:24:07 177
原创 无线网络发射器选址(noip2014)
假设该城市的布局为由严格平行的 129 条东西向街道和 129 条南北向街道所形成的网格状,并且相邻的平行街道之间的距离都是恒定值 1。东西向街道和南北向街道相交形成路口,规定编号为 x 的南北向街道和编号为 y 的东西向街道形成的路口的坐标是 (x,y)。接下来 n 行,每行给出三个整数 x,y,k,中间用一个空格隔开,分别代表路口的坐标 (x,y) 以及该路口公共场所的数量。传播范围包括正方形边界。对于 100% 的数据,1≤d≤20,1≤n≤20,0≤x≤128,0≤y≤128,0<k≤106。
2024-10-25 19:23:04 208
原创 子矩阵(noip2014)
本题任务:给定一个 n 行 m 列的正整数矩阵,请你从这个矩阵中选出一个 r 行 c 列的子矩阵,使得这个子矩阵的分值最小,并输出这个分值。对于 100% 的数据,1≤n≤16,1≤m≤16,矩阵中的每个元素 1≤ai,j≤1000,1≤r≤n,1≤c≤m。子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。其分值为 |6−5|+|5−6|+|7−5|+|5−6|+|6−7|+|5−5|+|6−6|=6。
2024-10-25 19:21:04 208
原创 珠心算测验(noip2014)
他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。对于 100% 的数据,3≤n≤100,测验题给出的正整数大小不超过 10,000。第二行有 n 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。共两行,第一行包含一个整数 n,表示测试题中给出的正整数个数。注意,加数和被加数必须是集合中的两个不同的数。一个整数,表示测验题答案。
2024-10-25 19:19:59 216
原创 比例简化(noip2014普及组)
现给出支持人数 A,反对人数 B,以及一个上限 L,请你将 A 比 B 化简为 A′ 比 B′,要求在 A′ 和 B′ 均不大于 L 且 A′ 和 B′ 互质(两个整数的最大公约数是 1)的前提下,A′B′≥AB 且 A′B′−AB 的值尽可能小。因为这个比例的数值太大,难以一眼看出它们的关系。例如,对某一观点表示支持的有 1498 人,反对的有 902 人,那么赞同与反对的比例可以简单的记为 1498:902。共一行,包含两个整数 A′,B′,中间用一个空格隔开,表示化简后的比例。
2024-10-25 19:19:00 515
原创 能量项链(dp)
并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 喵星人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为 m,尾标记为 r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 m×r×n(喵星单位),新产生的珠子的头标记为 m,尾标记为 n。第 i 个数为第 i 颗珠子的头标记(1≤i≤N),当 i<N 时,第 i 颗珠子的尾标记应该等于第 i+1 颗珠子的头标记。
2024-06-15 20:55:40 315
原创 石子合并(递归)
1、选择一种合并石子的方案,使得做 n−1 次合并得分总和最大。2、选择一种合并石子的方案,使得做 n−1 次合并得分总和最小。输入第一行一个整数 n ,表示有 n 堆石子。第二行 n 个整数,表示每堆石子的数量。对于 100的数据,有1≤n≤200。第一行为合并得分总和最小值,第二行为合并得分总和最大值。
2024-06-15 19:46:52 270
原创 合并石子(区间类型动态规划)
在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。以下N行,每行一个正整数,小于10000,分别表示第i堆石子的个数(1≤i≤N)。第一行为一个正整数N (2≤N≤100);计算出将N堆石子合并成一堆的最小得分。一个正整数,即最小得分。
2024-06-11 17:37:23 470
原创 对抗赛(线性动态规划常规模型)
程序设计对抗赛设有 N(0<N≤50 的整数)个价值互不相同的奖品,每个奖品的价值分 别为 S1,S2,S3……编程要求:对给定 N 及 N 个奖品的价值,求出将这 N 个奖品分成价值相等的两组,共有 多少种分法?Sn 分别为 1,3,5,8,9 则可分为{1,3,9}与{5,8} 仅有 1 种分法;Sn 分别为 1,2,3,4,5,6,7。{1,6,7}与{2,3,4,5}{2,5,7}与{1,3,4,6}{3,4,7}与{1,2,5,6}{1,2,4,7}与{3,5,6}
2024-05-31 21:53:43 431
原创 大厅安排(线性动态规划常规模型)
有一个演讲大厅需要我们管理,演讲者们事先定好了需要演讲的起始时间和中止时间。我们想让演讲大厅得到最大可能的使用。我们要接受一些预定而拒绝其他的预定,目标是使演讲者使用大厅的时间最长。假设在某一时刻一个演讲结束,另一个演讲就可以立即开始。输入文件 hall.in 第一行为一个整数 N,N≤5000,表示申请的数目。以下 n 行每行包含两个整数 p,k,1 ≤ p < k ≤ 30000,表示这个申请的起始时间和中止时间。输出包含一个整数,表示大厅最大可能的使用时间。2、 计算演讲大厅最大可能的使用时间。
2024-05-31 21:52:51 424
原创 滑雪(线性动态规划常规模型)
小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次走上坡或等着直升机来载他,小明想知道在一个区域中最长的滑坡。滑坡的长度由滑过点的个数来计算,区域由一个二维数组给出,数组的每个数字代表点的高度。一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小,在上面的例子中,一条可行的滑坡为25-24-17-16-1(从25开始到1结束),当然25-24……2-1更长,事实上这是最长的一条。输出区域中最长的滑坡长度。
2024-05-30 20:21:32 475
原创 出现次数超过一半的数
输入n个大小在[ -50, 50]的数,n<=1000, 你需要找出出现次数超过一半的数,例如现在有7个数,大小分别为3,5,3,4,3,3,2, 数字3的出现次数就超过一半了。当然有可能不不存在这样的数。第一行一个整数n, 表示数的个数。第二行n个整数,每个整数的大小在[-50, 50]范围内。输出出现次数超过一半的那个数的大小,如果不存在这样的数的话就输出“no”。
2024-05-27 21:56:52 314
原创 A Simple Problem with Integers(线段树)
1、lrx :给定 l,r,x ,对于所有 i∈[l,r] ,将 a[i] 加上 x (换言之,将 a[l],a[l+1],…2、lr :给定l,r ,求 ∑ri=la[i] 的值(换言之,求 a[l]+a[l+1]+⋯+a[r] 的值)。第二行n 个整数a[1],a[2],…对于所有数据,1≤n,q≤106,∣a[i]∣≤106,1≤l≤r≤n,∣x∣≤106。给定数列 a[1],a[2],…1、lrx :对于所有 i∈[l,r] ,将 a[i] 加上 x;保证 1≤l≤r≤n,∣x∣≤106。
2024-05-25 21:10:38 277
原创 区间和(线段树)
每行有三个正整数k,a,b (k=0 或1,a,b≤n ).k=0 时表示将a 处数字加上b ,k=1 时表示询问区间[a,b ]内所有数的和。输入数据第一行包含两个正整数n,m(n≤100000,m≤500000) ,以下是m 行,给定一个全部为零的数列,规定有两种操作,一是修改某个元素,二是求区间的连续和。对于每个询问输出对应的答案。
2024-05-25 20:29:49 533
原创 机场大巴(二分查找与二分答案)
他的处于世界各地的客人将会到达当地的机场,前来参会。具体地说,有 N个客人到达了机场(1≤N≤100000),其中客人 i在时间 ti(0≤ti≤10^9)到达。一个客人的等待时间等于他的到达时间与他乘坐的大巴的发车时间之差。如果两个时间 1到达的客人乘坐一辆巴士,时间 3和时间 4到达的客人乘坐乘坐第二辆,时间 10和时间 14到达的客人乘坐第三辆,那么等待时间最长的客人等待了 4个单位时间(时间 10到达的客人从时间 10等到了时间 14)。输出一行,包含所有到达的客人中的最大等待时间的最小值。
2024-05-25 15:59:34 857
原创 冰激凌生意(深度优先搜素)(c++)
在上图中,小的冰激凌球的面积为2,周长为6,大的冰激凌球的面积为13,周长为22。一个冰激凌球是连通的,如果其中每个冰激凌的正方形格子都可以从这个冰激凌球中其他所有的冰激凌格子出发重复地前往东、南、西、北四个方向上相邻的冰激凌格子所到达。小明要开始他的冰激凌生意了!他制造了一台可以生产冰激凌球的机器,然而不幸的是形状不太规则,所以他现在希望优化一下这台机器,使其产出的冰激凌球的形状更加合理。同时求得冰激凌球的面积和周长十分重要,因为小明最终想要最小化周长与面积的比值,他称这是他的冰激凌的“冰周率”。
2024-05-24 21:57:01 958
原创 最长公共子序列(C++)(动态)
例如,序列z = {B,C,D,B} 是序列 X = {A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X={A,B,C,B,D,A,B}和Y={B,D,C,A,B,A},则序列{B,C,A}是X和Y的一个公共子序列,序列 {B,C,B,A}也是X和Y的一个公共子序列。,zk}是X的子序列是指存在一个严格递增的下标序列{i1,i2,…,ik},使得对于所有j=1,2,…
2024-05-21 16:56:20 877 1
原创 校门外的树*(树状数组)
K KK=1,读入l ll,r rr表示在l ll~r rr之间种上的一种树。K KK=2,读入l ll,r rr表示询问l~r之间能见到多少种树。第一行n nn,m mm表示道路总长为n nn,共有m mm个操作。接下来m mm行为m mm个操作。对于每个k kk=2输出一个答案。
2024-05-19 16:59:29 180 1
原创 数列操作(树状数组)
给定n 个数列,规定有两种操作,一是修改某个元素,二是求子数列[a,b] 的连续和。数列元素个数最多10 万个,询问操作最多10 万次。接下来m 行,每行三个数k,a,b (k=0 ,表示求子数列[a,b]的连续和;k=1 ,表示第a 个数加b )。第一行2 个整数n,m(n 表示输入n 个数,m 表示m 操作)若干行,表示k=0 时,对应子数列[a,b]连续和。
2024-05-19 16:52:32 339 1
原创 抗议奶牛(问最高分组数)
小刚家的 n 只兔子聚集在一起,排成一列,正在进行一项抗议活动。第 i 只兔子的理智度为 ai。小刚希望兔子在抗议时保持理性,为此,他打算将所有的兔子隔离成若干个小组,每个小组内的兔子的理智度总和都要不小于零。由于兔子是按直线排列的,所以一个小组内的兔子位置必须是连续的。若存在合法分组方案,输出一行一个整数表示答案;对于 100% 的数据,1≤n≤1000,|ai|≤105。接下来 n 行,每行一个整数,表示每个兔子的理智度。第一行一个正整数 n,表示兔子的数目。对于 30% 的数据,1≤n≤20;
2024-05-19 14:34:26 563 1
原创 勇者游戏(game)
(勇者的生命值没有上限) 每通过一个关卡,小刚就会获得一定的分数,分数为过关时勇者的剩余生命值乘上该关卡的一个得分系数V。小刚事先查阅了攻略,得知了每一个关卡怪兽的生命值hi,攻击力ai,和使用道具能恢复的生命值pi,以及得分系数vi。战斗的规则是这样的:勇者和怪兽各有一个生命值和攻击力,采用轮流攻击的形式,勇者先攻击,被攻击会损失对应攻击力的生命值,直到有一方阵亡为止。接下来n行,每行4个整数hi,ai,pi,vi,依次表示每个关卡的怪兽生命值、攻击力,使用生命道具能恢复的生命值,以及该关卡的得分系数。
2024-05-16 20:07:36 331
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人