自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树状数组 3 :区间修改,区间查询

1lrx:给定 l,r,x对于所有 i∈[l,r],将a[i]加上x(换言之,将 a[l],a[l+1],…对于所有数据,1≤n,q≤1000000,|a[i]|≤1000000,1≤l≤r≤n,|x|≤1000000。2lr:给定 l,r求 ∑ri=la[i]的值(换言之,求 a[l]+a[l+1]+⋯+a[r] 的值)。第二行 n 个整数 a[1],a[2],…给定数列 a[1],a[2],…1lrx:对于所有 i∈[l,r]将 a[i] 加上 x;保证 1≤l≤r≤n,|x|≤1000000。

2025-03-26 22:30:49 182

原创 亲戚(并查集)

他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。以下Q行有Q个询问(1≤ Q ≤1000000),每行为ci,di,表示询问ci和di是否为亲戚。对于每个询问ci,di,输出一行:若ci和di为亲戚,则输出“Yes”,否则输出“No”。

2024-10-25 19:44:16 358 2

原创 表达式求值

对于 100% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100000。对于 80% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤1000。对于 30% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100。注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。,且没有括号,所有参与运算的数字均为 0 到 231−1 之间的整数。给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。一行,为需要你计算的表达式,表达式中只包含数字、加法运算符。

2024-10-25 19:41:54 255 1

原创 小朋友的数字

作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:第一个小朋友的分数是他的特征值,其它小朋友的分数为排在他前面的所有小朋友中(不包括他本人),小朋友分数加上其特征值的最大值。小朋友的特征值分别为 −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:40:16 194 1

原创 海港[NOIP2016]

第三艘船在第 10 秒到达海港,最近 24 小时到达的船是第一艘船、第二艘船和第三艘船,共有 4+2+1=7 个乘客,分别是来自国家 4,1,2,2,2,3,3,共来自 4 个不同的国家。第二艘船在第 3 秒到达海港,最近 24 小时到达的船是第一艘船和第二艘船,共有 4+2=6 个乘客,分别是来自国家 1,2,2,3,2,3,共来自 3 个不同的国家。第一艘船在第 1 秒到达海港,最近 24 小时到达的船是第一艘船,共有 4 个乘客,分别是来自国家 1,2,2,3,共来自 3 个不同的国家。

2024-10-25 19:37:03 721

原创 买铅笔[NOIP2016]

虽然最后买到的铅笔数量更多了,为 30×2=60 支,但花费却减少为 27×2=54,比第一种少。接下来三行,每行用 2 个正整数描述一种包装的铅笔:其中第 1 个整数表示这种包装内铅笔的数量,第 2 个整数表示这种包装的价格。对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买 2 份,实际的花费达到了 30×2=60,因此 P 老师也不会选择。如果她选择购买第一种包装,那么她需要购买 29 份,共计 2×29=58 支,需要花费的钱为 2×29=58。1 个整数,表示 P 老师最少需要花费的钱。

2024-10-25 19:35:02 385

原创 乘方[CSP-J2022]

小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 ab 的值是多少。ab 即 b 个 a 相乘的值,例如 23 即为 3 个 2 相乘,结果为 2×2×2=8。类型能表示的最大数为 2^31−1,因此只要计算结果超过这个数,她的程序就会出现错误。输出共一行,如果 ab 的值不超过 109,则输出 ab 的值,否则输出。对于 60% 的数据,保证 b≤30,ab≤1018。对于 100% 的数据,保证 1≤a,b≤109。进行警示,否则就输出正确的 ab 的值。

2024-10-25 19:27:11 300

原创 无线网络发射器选址[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:28 319

原创 小苹果[CSP-J2023]

每天在拿的时候,小苞都是从左侧第 1 个苹果开始、每隔 2 个苹果拿走 1 个苹果。输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 n 的苹果是在第几天。小苞想知道,多少天能拿完所有的苹果,而编号为 n 的苹果是在第几天被拿走的?小苞第一天拿走了编号为 1、4、7 的苹果。小苞第二天拿走了编号为 2、6 的苹果。小苞第三天拿走了编号为 3 的苹果。小苞第四天拿走了编号为 5 的苹果。小苞第五天拿走了编号为 8 的苹果。小苞的桌上一共放了 8 个苹果。

2024-10-25 19:20:33 313

原创 计数问题[NOIP2013]

试计算在区间 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:15:35 296

原创 石头剪刀布升级版[NOIP2014]

对于 100% 的数据,0<N≤200,0<NA≤200,0<NB≤200。输出一行,包含两个整数,以一个空格分隔,分别表示小 A、小 B 的得分。

2024-10-25 17:22:29 170

原创 珠心算测验[NOIP2014]

他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。对于 100% 的数据,3≤n≤100,测验题给出的正整数大小不超过 10,000。第二行有 n 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。共两行,第一行包含一个整数 n,表示测试题中给出的正整数个数。注意,加数和被加数必须是集合中的两个不同的数。一个整数,表示测验题答案。

2024-10-25 17:19:41 504

原创 龙虎斗[NOIP2018普及组]

轩轩和凯凯正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有 n 个兵营(自左至右编号 1∼n),相邻编号的兵营之间相隔 1 厘米,即棋盘为长度为 n−1 厘米的线段。i 号兵营里有 ci 位工兵。虎方的气势为:2×(5−4)+(3+5)×(6−4)=18当你将手中的 s2=2 位工兵派往 p2=2 号兵营时,龙方的气势变为:14+2×(4−2)=18。虎方的气势为:16×(6−5)=16当你将手中的 s2=1 位工兵派往 p2=1 号兵营时,龙方的气势变为:11+1×(5−1)=15。

2024-10-23 21:02:14 530

原创 回文日期(C++)

牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。牛牛认为,一个日期是回文的,当且仅当表示这个日期的 8 位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存在的日期是回文的。一个 8 位数字是回文的,当且仅当对于所有的 i(1≤i≤8)从左向右数的第 i 个数字和第 9−i 个数字(即从右向左数的第 i 个数字)是相同的。一个整数,表示在 date1 和 date2 之间,有多少个日期是回文的。

2024-10-23 20:57:00 547

原创 解密[CSP-J2022]

给定一个正整数 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。接下来 k 行,第 i 行三个正整数 ni,di,ei。输出 k 行,每行两个正整数 pi,qi 表示答案。第一行一个正整数 k,表示有 k 次询问。为使输出统一,你应当保证 pi≤qi。三,公式法(100分)

2024-10-23 20:52:36 985

原创 直播获奖[CSP-J2020]

更具体地,若当前已评出了 p 个选手的成绩,则当前计划获奖人数为 max(1,⌊p×w%⌋),其中 w 是获奖百分比,⌊x⌋ 表示对 x 向下取整,max(x,y) 表示 x 和 y 中较大的数。本次竞赛的获奖率为 w%,即当前排名前 w% 的选手的最低成绩就是即时的分数线。等)存储获奖比例 w%,则计算 5×60% 时的结果可能为 3.000001,也可能为 2.999999,向下取整后的结果不确定。只有一行,包含 n 个非负整数,依次代表选手成绩逐一评出后,即时的获奖分数线。,Pascal 中的。

2024-10-20 21:12:53 533

原创 铲雪车(C++)

输入数据的第1行表示铲雪车的停放坐标(x,y),x,y为整数,单位为米。下面最多有100行,每行给出了一条街道的起点坐标和终点坐标,所有街道都是笔直的,且都是双向一个车道。铲雪车铲雪时前进速度为20 km/h,不铲雪时前进速度为50 km/h。整个城市所有的道路都是双车道,因为城市预算的削减,整个城市只有1辆铲雪车。铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。铲掉所有街道上的雪并且返回出发点的最短时间,精确到分钟。

2024-08-02 18:52:50 467

原创 滑动窗口(C++)

对于 100% 的数据,K≤N≤10^6。对于 20% 的数据,K≤N≤1000;对于 50% 的数据,K≤N≤10^5;

2024-08-02 18:49:42 382

原创 参考文献(C++)

假设博客里面一共有 n(n≤10^3) 篇文章(编号为 1 到 n)以及 m(m≤10^4 ) 条参考文献引用关系。目前小明已经打开了编号为 1 的一篇文章,请帮助小明设计一种方法,使小明 可以不重复、不遗漏的看完所有他能看到的文章。现在已知整理好的参考文献关系图,其中,文献 X → Y 表示文章 X 有参考文献 Y。小明求知欲旺盛,如果他看了某篇文章,那么他一定会去看这篇文章的参考文献(如果他之前已经看过这篇参考文献的话就不用再看它了)。请对输入的图分别进行 DFS 和 BFS遍历,并输出遍历结果。

2024-07-20 08:20:15 716

原创 图的访问(C++)

接下来 M 行,每行 2 个整数 Ui,Vi,表示一条从 Ui 到 Vi 的有向边 (Ui,Vi)。给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点。一行 N 个整数 A(1),A(2),…第 1 行 2 个整数 N,M,表示点数和边数。对于 100% 的数据,1≤N,M≤105。对于 60% 的数据,1≤N,M≤103。

2024-07-19 17:18:52 487

原创 点的距离(C++)

给定一棵 n 个点的树,Q 个询问,每次询问点 x 到点 y 两点之间的距离。接下来 n-1 行,每行两个整数 x,y 表示 x,y 之间有一条连边;对于全部数据,1<= n,Q<= 10^5,1<= x,y<= n。接下来 Q 行每行两个整数 x,y 表示询问 x 到 y 的距离。第一行一个正整数 n,表示这棵树有 n 个节点;然后一个整数 Q,表示有 Q 个询问;输出 Q 行,每行表示每个询问的答案。

2024-07-19 01:00:00 428

原创 国王(C++)

在n×n (1<=n<=10)的棋盘上放k(0<=k<=n×n)个国王(一个国王可以攻击相邻的8个格子),求使他们无法互相攻击的方案总数。输出一行表示方案总数,若不能够放置则输出0。只有一行为两个整数n和k。

2024-07-18 20:34:45 394

原创 FBI树(C++)

我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为 B 串,全“1”串 称为 I 串,既含“0”又含“1”的串则称为 F 串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。若串 S 的长度大于 1,将串 S 从中间分开,分为等长的左右子串 S1 和 S2;现在给定一个长度为 2^N 的“01”串,请用上述构造方法构造出一棵FBI树,并输出它的 后序遍历2序列。输入第一行是一个整数N(0 <= N <= 10),第二行是一个长度为 2^N 的“01 ” 串。

2024-07-18 06:58:37 639

原创 二叉树遍历(C++)

树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序, 给定中序和其它一种 遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树 的先序遍历字符串。输入共两行,每行是由字母组成的字符串(一行的每个字符都是唯一的), 分别表示二叉树的中序遍历和按层遍历的序列。输出就一行,表示二叉树的先序序列。

2024-07-18 06:57:32 363

原创 找树根和孩子(C++)

每行两个结点x和y,表示y是x的孩子(x,y<=1000)。给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子。第一行:n(结点数<=100),m(边数<=200)。第三行:max的孩子,按照从小到大的顺序输出。第二行:孩子最多的结点max。第一行:树根:root。

2024-07-17 14:57:27 576

原创 小球掉落(C++)

【代码】小球掉落(C++)

2024-07-17 14:54:27 302

原创 高精度乘法(C++)

输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。输入两个高精度正整数M和N。求这两个高精度数的积。

2024-07-15 07:46:14 305

原创 高精度减法(C++)

共2行,第1行是被减数a,第2行是减数b。每个大整数不超过200位,不会有多余的前导零。注意,a 可能小于 b。求两个大的正整数相减的差。

2024-07-15 07:44:58 289

原创 高精度加法(C++)

输入共两行,第一行一个正整数 A(1<=A<=10^100)。第二行一个正整数 B(1<=B<=10^100)。输入两个正整数 A 和 B,求它们的和。输出 A+B 的结果。

2024-07-15 07:43:40 373

原创 Hello,World!(C++)

提示: - 使用英文标点符号;

2024-07-14 17:05:34 322

原创 选课(C++)

有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其他的一些课程基础上才能选修。学生不可能学完大学开设的所有课程,因此必须在入学时选定自己要学的课程。每个学生可选课程的总数是给定的。上例中课号 1 是课号 2 的先修课,即如果要先修课号 2 ,则课号 1 必定已被选过。每行两个数,依次表示这门课先修课课号(若不存在,则该项值为 0 )和该门课的学分。每门课程都有一定的学分,学生只要选修了这门课并通过考核就能获得相应学分。输入的第一行包括两个正整数 M,N ,分别表示待选课程数和可选课程数。

2024-07-14 16:13:02 459

原创 二叉苹果树(C++)

一棵有四根树枝的苹果树,因为树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。接下来N−1行描述树枝信息,每行三个整数,前两个是它连接的节点的编号,第三个数是这根树枝上苹果数量。对于 100 的数据,1≤Q≤N≤100,N≠1 ,每根树枝上苹果不超过 30000 个。有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。第一行两个数 N 和 Q ,N 表示树的节点数,Q 表示要保留的树枝数量。N 个节点,标号1 至 N ,树根编号一定为 1。

2024-07-14 16:10:11 495

原创 能量项链(C++)

并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 喵星人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为 m,尾标记为 r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 m×r×n(喵星单位),新产生的珠子的头标记为 m,尾标记为 n。第 i 个数为第 i 颗珠子的头标记(1≤i≤N),当 i<N 时,第 i 颗珠子的尾标记应该等于第 i+1 颗珠子的头标记。

2024-06-15 20:56:36 590

原创 石子合并(C++)

将 n 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分。1、选择一种合并石子的方案,使得做 n−1 次合并得分总和最大。2、选择一种合并石子的方案,使得做 n−1 次合并得分总和最小。输入第一行一个整数 n ,表示有 n 堆石子。第二行 n 个整数,表示每堆石子的数量。对于 100的数据,有1≤n≤200。第一行为合并得分总和最小值,第二行为合并得分总和最大值。

2024-06-15 20:53:34 598

原创 十进制转换成八进制(递归)

用递归算法,把任一给定的十进制正整数转换成对应的八进制数输出。输出一个正整数,表示转换之后的八进制的数。输入一个正整数,表示需要转换的十进制数。

2024-05-31 21:59:19 513

原创 求斐波那切数列(C++)

斐波那切数列 0,1,1,2,3,5,8,13,21,34,55……从第三项起,每一项都是紧挨着的前两项的和。求出斐波那契数列的第n项数。输入所求的项数n, n<=33。

2024-05-31 21:57:51 435

原创 区间和(C++)

每行有三个正整数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-29 21:46:06 593

原创 第一个大于或等于(二分查找与二分答案)

第一行两个整数N和M(1<=M<=N<=100000),分别表示有序整数序列数字的个数和询问的次数。接下来一行一共有N个整数,表示整数序列上的数字,保证数字是有序的。最后M行,每行一个整数表示要询问的数字x。给出N个已经从小到大排好的有序整数序列(可能会有相同的数字),然后有M次询问,每次询问一个数字X, 表示需要找出整数序列中第一个大于或等于整数x的数在整数序列中的位置。对于每个询问都输出一个对应的结果,数据保证每个询问都有解。

2024-05-29 21:34:53 470

原创 A Simple Problem with Integers(C++)

C、lrx :给定 l,r,x ,对于所有 i∈[l,r] ,将 a[i] 加上 x (换言之,将 a[l],a[l+1],…Q、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],…C、lrx :对于所有 i∈[l,r] ,将 a[i] 加上 x;保证 1≤l≤r≤n,∣x∣≤106。

2024-05-27 21:58:50 344

原创 寻找等于x的数的位置(二分查找与二分答案)

第一行两个整数N和M(1<=M<=N<=100000),分别表示有序整数序列数字的个数和询问的次数。接下来一行一共有N个整数,表示整数序列上的数字,保证数字是有序的。最后M行,每行一个整数表示要询问的数字x。数字大小范围都在[0,200000]。给出N个已经从小到大排好的有序整数序列(没有相同的数字),然后有M次询问,每次询问一个数字X, 表示需要找出等于整数x的数在整数序列中的位置。对于每个询问都输出一个对应的结果,数据保证每个询问都有解。

2024-05-22 21:53:10 500

空空如也

空空如也

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

TA关注的人

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