自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 搜索+图论1 练习答案+思路

搜索+图论1 练习答案。

2025-02-05 15:56:22 154

原创 Codeforces Round 834 (Div. 3) C题 Thermostat

这道题真的有点抽象了,我只能说,首先我们要合理的推断出它其实是只有0,-1,1,2,3这几种情况的,然后我们思考如何来对应哪种情况首先a点和b点位置相同的情况,这时不需要进行跳跃,移动,直接结果就是0然后讨论a不可能到达b的情况,这时有两种可能,要不a点不能跳,从a到达不了任何的点,要不就是可以跳但是到达不了b点,跳最远肯定是从l或是r开始跳,要是b点距离l和r都太近了,那么是不行的,这两种情况都是-1,不可到达。

2024-10-07 20:15:44 240

原创 AtCoder Beginner Contest 373 D题 Hidden Weights

关于图论与dfs在图上的搜索这道题的意思是,这个题让你给n个顶点赋一个值,然后要满足这m条边的关系,即 xvj−xuj=wj其实还应满足 xuj-xvj=-wj,两者应该是同时成立的,其实这道题就是用深搜就可以了,因为每一个点只访问一次,然后要访问它的所有邻居,直到再也不能到达新的顶点为止;

2024-10-06 12:21:39 220

原创 每日练习 4332: 数学大佬带带我啊

0x3f3f3f3f的十进制是1061109567,是10^9级别的,而一般场合下的数据都是小于10^9的,所以它可以作为无穷大使用而不致出现数据大于无穷大的情形。

2024-10-02 16:12:58 346

原创 ACM 纳新每日一题 4330: 你会字符串嘛 题解

char是用于表示单个字符的基本数据类型。ASCII 是一种标准的字符编码,定义了字符与其整数值之间的映射关系。char类型和 ASCII 之间存在紧密的联系,计算机通过 ASCII 值来存储和处理字符。i>=0;i--)i

2024-10-01 15:56:27 882

原创 ACM 纳新每日一题 4329: 三进制

也可以使用字符数组来存储然后逆序输出就可以,这样符合进制转化的思路,直接将模的结果存储起来然后逆序输出就好。递归的代码比较简洁,但是理解起来难度较大。首先我们要学习的是数制转化。

2024-09-30 12:29:10 462 3

原创 ACM纳新 每日训练 4326: 你买黑神话了吗?

讲解都放在代码的注释当中了。

2024-09-29 18:26:20 193

原创 计241 作业2:C程序设计初步

C语言支持整数除法和浮点除法。在进行除法运算时,注意检查除数是否为零,以避免程序崩溃。根据不同的数据类型,结果的类型也会有所不同。通过理解这些基本概念,可以在C语言中有效地进行除法操作。

2024-09-28 19:07:30 1002

原创 计231 作业1:熟悉C语言实验环境

这道题注意一下换行应该就没有什么问题了,一共三行,用三个printf来打印三行的内容即可。这个把题干要求输出的内容复制粘贴过来就好,注意空格。这个直接输出就好,没什么好说的吧。

2024-09-28 17:36:32 415

原创 AtCoder Beginner Contest 369 D - Bonus EXP 动态规划

这道题为什么要用动态规划呢,其实,对于第i个怪物,我们有打与不打两种处理方式,而对于打,我们是获得两倍的经验值,还是一倍的经验值,与我们打了奇数只怪物还是打了偶数只怪物有关了,因此我们定义dp[i][0] 为前i只怪物总共打了偶数次,dp[i][1] 为前i只怪物总共打了奇数次,而dp[i]又与dp[i-1]有关,如果i-1 次打了奇数次,第i次是偶数次,说明这个怪物打了,而且是偶数个打的要暴击为两倍,如果i与i-1 的奇偶性相同,则说明这只怪物没有打,获得0的经验值。

2024-09-06 19:42:10 424

原创 牛客周赛 Round 56 异或故事

首先,这道题考察位运算中的异或,何为异或,一句口诀,相同为0,不同为1,将数字化为二进制的表示形式,然后让其按位进行异或操作,关于异或我们需要知道,a^b^c=a^(b^c)

2024-08-24 14:37:06 354

原创 位运算 二进制中1的个数 __builtin_popcount 和 lowbit

给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。

2024-08-17 15:18:54 306

原创 河南萌新联赛2024第(五)场:信息工程大学 D 题区间问题 1

第一行一个整数 n,表示数的个数,其中 n<=10^5;第三行一个整数 q ,表示操作数, q<=10^5;1. 将区间 [L,R] 上的所有数加上 d。第二行 n 个整数,表示 n 个数的初始值;(过程数据保证在long long之内)每一个操作2,对应一行输出,即查询的值。1 L R d,表示区间修改;2. 查询第 x 个数的值。

2024-08-16 22:02:54 308

原创 洛谷 P3374 【模板】树状数组 1 单点修改加区间查询

如题,已知一个数列,你需要进行下面两种操作:将某一个数加上 x求出某区间每一个数的和。

2024-08-16 20:37:20 208

原创 河南萌新联赛2024第(五)场:信息工程大学 J 平方根

利用数据类型转化自动向下取整的特性。

2024-08-16 17:55:16 336

原创 河南萌新联赛2024第(五)场:信息工程大学 哥德巴赫猜想

1742 年 6 月 7 日,哥德巴赫写信给当时的大数学家欧拉,提出了以下的猜想:任何一个大于 9 的奇数都可以表示成 3 个质数之和。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。从此,这道数学难题引起了几乎所有数学家的注意。哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的“明珠”。利用素数筛将50000以内的素数全都筛出来,然后再枚举三重循环就行,50000以内的素数有5000个,因为循环会加很多限制条件,所以不会超时。现在请你编一个程序验证哥德巴赫猜想。

2024-08-16 17:44:45 301

原创 Codeforces Round 916 (Div. 3) D 题 Three Activities

种情况其中再去掉一些重复的,为什么要取前3呢,假设说a这项活动把第一天占用了,对于b这项活动,第一天不能用了,还有第二大和第三大,对于c这项活动如果它的前两大的下标都和a,b重复了,他还可以取第三大,因此几乎总是可以取每个数组中的最大值。只要是不同的三天就可以,这样的话,我们只需要将a中人数由大到小的下标取前3,b中人数由大到小取前3,c中从大到小取前3,然后枚举,一共是。给定三个数组 a,b,c,找三个互不相同的整数 i,j,k,使得 ai+bj+ck 的值最大。

2024-08-08 16:55:43 1016

原创 动态规划板子题----最长上升子序列

复杂度分析: j 在0~i 滑动 ,复杂度为O(n);i 的变化范围也为O(n);给出一个由 n(n≤5000)个不超过 106 的正整数组成的序列。定义状态dp[i] 表示一第 i 个 数为结尾的最长递增子序列的长度,那么有。第一行,一个整数 n,表示序列长度。第二行有 n 个整数,表示这个序列。最终答案是 max{dp[i] }。取出一些数字排在一起,这些数字是。分别取出 1、2、3、4 即可。最长上升子序列是指,从原序列中。

2024-08-08 15:15:07 369

原创 Codeforces Round 916 (Div. 3) C题 Quests

有 n 个任务,在完成 i 任务时,i 之前的所有任务都必须完成。同时,可以多次完成某个任务。总共可以做 k 次任务,第一次完成 i 任务的贡献为 ai​ ,后面完成 i 任务的贡献为 bi​ ,求最大贡献。这是一道贪心的题目,开始的时候我还使用动态规划去做这道题,发现不太适合,这时我有想起来这道题前两天刚做的。贪心(greedy)

2024-08-08 12:30:16 1306

原创 牛客 河南萌新联赛2024第(四)场:河南理工大学 C题

首先我们要先从它的题目当中抽离出这道题的本质,他要考的是什么,这明显是一道排列组合的问题,那么怎么安排就尤为重要了,只要看出他是怎么安排的,剩下的只要将排列组合的模板套进去就可以了。我们看一共有m位志愿者,n个岗位需要分配,每个岗位至少需要a[i]人,先满足每个岗位所需的a[i] 个人后,剩余的人,有n种选择,因为其说所有岗位需求志愿者的总和不超过志愿者的总和且志愿者间无差别,因此套用球盒模型的话,就相当于将 n 个相同的小球放入 m个不同的盒子当中,且允许有空格。一个数字,表示可能的分配情况总数。

2024-08-07 21:35:53 491

原创 牛客 河南萌新联赛2024第(四)场:河南理工大学 B题

这道题要我们求同或的最大值,我们都知道同或是二进制位运算,同或呢是异或的非,因此,我们有知道1^a 等于 a的非,所以呢,只需要将两数异或然后再与全1的数即(2的m次幂-1 )进行异或就可以得到 两数同或得结果了。知道了如何计算同或,那么怎么才行使得同或的结果最大呢,我们都知道,同或运算的规则是相同为1,那么如何使结果最大呢,我们就让数字从小到大进行排序,然后相邻的两数进行同或即可,对于两个整数A和B,它们的同或结果是通过将A和B转换为二进制表示,然后对每个位进行同或运算得到的。an(保证ai <2^m)

2024-08-07 20:07:48 646

原创 Codeforces Round 943 (Div. 3) D. Permutation Game

长度为 n 的排列是由 1 到 n 之间的 n 个不同整数按任意顺序排列而成的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是一个排列( 2 在数组中出现了两次),[1,3,4] 也不是一个排列( n=3 ,但数组中有 4 )。每个测试用例的第一行分别包含整数 n 、 k 、 PB 、 PS ( 1≤PB,PS≤n≤2⋅105 , 1≤k≤109 )--排列长度、游戏持续时间、起始位置。,pn 和一个数组 a1,…,pn ( 1≤pi≤n) - 排列 p 的元素。

2024-08-07 12:04:05 348

原创 Codeforces Round 920 (Div. 3) A~E 题

贪心求解,我们有两个字符串b和f ,b串表示现在每个箱子的状态,f串是目标箱子的状态,我们用两个数字x和y, x表示需要移走的猫的数量,y表示需要添加的猫的数量,对于需要移走的数量不为0的情况下,优先让其去满足添加猫的数量,这样只用一次操作就可以满足两个位置,所以先内部满足,内部满足之后,如果还需要移走猫或者添加猫的话,直接加上需要移走猫的数目或者需要添加猫的数目。有一个棋盘,上面有两个棋子,一个称作 a,一个称作 b,a 可以向下,左下,右下走,b 可以向上,左上,右上走。多组测试数据,t≤100。

2024-08-06 20:22:31 1256

原创 Codeforces Round 957 (Div. 3) D. Test of Love

这道题,我们初步看有点像模拟,模拟跳跃的整个过程,但会发现整个过程下来是比较麻烦的,我们考虑动态规划,dp[i] 是到达位置 i所需的 最小游泳距离,最后看看dp[n+1] 和 k 之间的大小关系即可。站在木点 i 上,你可以跳到 min⁡(n+1,i+j(0≤j≤m))min(n+1,i+j(0≤j≤m)) 上,可以跳入水中或者另一个木头,但是不能跳到鳄鱼上。如果这两种运动方式都无法到达 n+1 号点,或是经过了超过 k 个水点,则失败,反之成功。在水 i 上,你能且仅能到达 i+1 号点。

2024-08-05 21:15:59 1207

原创 Codeforces Round 719 (Div. 3) D 题 Same Differences

我们对原式进行移项可得,要求 ai - i = aj - j 的 对数, 这可以利用哈希,映射法来求解这个问题。为什么我可以通过先加cnt[a[i]-i] 再, cnt[a[i]-i]++, 得到答案呢, 比如a[i]-i 等于 9 的一共有 9个,然后我们要从其中取两个, 那不就是排列组合的C92, 嘛 就是 Cn2, 0+1+2+3+.....n-1 ,因此可以使用我代码中的方法来求解;

2024-08-05 14:36:57 464

原创 关于 Codeforces 的界面问题

如果你出现了上述问题的话,你就下拉界面到最底层,点击 desktop version 即可恢复。

2024-08-04 11:34:55 395

原创 AtCoder Beginner Contest 365 A~D 题

D题的话,在比赛当中我没有做出来,我是用贪心做的,就是再如果有可能赢的情况下就让他赢,因为题干已经说了,他不可能输,因此,他每局只有赢或者是平两种情况,我就让他如果这句可以赢的那种抉择如果上一局没有使用的话,就让其在这一局中使用,让他赢,否则就平,这种策略的话,只考虑了眼前的一步,因为你的决策可能会对后续的出法产生影响,因此要使用动态规划,来求取最优解。i /th字符 S 表示青木在 i /th对局中的棋步:R "表示 "石头","P "表示 "纸","S "表示 "剪刀"。请确定高桥的最大胜局数。

2024-08-04 09:35:59 1026

原创 组合数类型结合模的应用 && YTUOJ 4294 && Codeforces Round 943 (Div. 3) D 题

首先,我先对于我这篇文章所起的题目进行解释,为什么这篇文章叫组合数结合模的应用,今天我来讲解引进一类题型,这类题型呢涉及模 mod 的应用,然后呢,最终类似于组合数Cn2, 就是有n种是符合的,我们用这n种当中选出2种,结果是(n*(n-1)/2)其实也就是 0+1+2+3+......n-1 ,因此这类题型一般是结合map来实现的。在第一题当中已经结束过了,不再赘述, (a[i] +a[j] )mod x= 0 ,对于一个输入a, 于其配对的是 (x-a mod x) mod x .

2024-08-02 04:08:43 626

原创 Codeforces Round 943 (Div. 3) B 题

这道题,如果划为最本质的题型的话,这就是一道字符串的匹配问题,子串问题,看看a是不是b的子串,不过这里的a,指的并不是题干直接给你的a,而是a的前缀,a的前k个是不是b的子串,k尽可能的大,就是a作为子串和b匹配的最大长度。

2024-07-31 21:51:26 332

原创 Atcoder 364 D - K-th Nearest

Problem StatementThere areN+QpointsA1,…,AN,B1,…,BQA1​,…,AN​,B1​,…,BQ​on a number line, where pointAihas a coordinateai​and pointBjhas a coordinatebj.For eachj=1,2,…,Q, answer the following question:LetXbe the point among A1​,A2​,…,AN​t

2024-07-31 20:31:21 913

原创 Codeforces Round 929 (Div. 3) D 题

给我们一个数组a,然后你可以对数组a当中的元素进行任意调换顺序,最终得到数组b,然后题目想要知道这个数组b,是否满足从第1个元素模到第n个元素,是否可以使最终结果不为0,其实我们通过观察例子,不难发现,比如1 2 3 4 5 6 , 最终结果为1,其实就是1%2=1, 1%3=1,使得最终结果为0,我们可知,一个小数模一个大数的结果是那个小数,如果那个小数唯一的话,一定可以使最终结果不为0,因此当最小值唯一的时候一定是"Yes".

2024-07-31 17:22:27 1013

原创 洛谷 P1352 没有上司的舞会

某大学有 n 个职员,编号为 1…n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 ri,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。

2024-07-30 22:24:08 349

原创 Codeforces Round 933 (Div. 3) D 题

n个人围着坐成了一圈,然后开始的时候球位于第x个人手中,然后要进行m次传递,求m次传递后可能拿球的人。传球有顺时针和逆时针两种传球方式,假设第j个人持有球,如果是顺时针,则为(j+r+n)%n , 如果是逆时针,则为(j-r+n)%n。这道题我们使用动态规划来解决,怎么使用呢,一共不是m次投球嘛,我们让dp数组,代表经过m次投球后可能拿到求的人,如果dp[i]为1的话,此人就可能持有球。dp数组需要经过m次更新,每投一次求,就更新一次,即代表投了j次求后的可能持有球的人。

2024-07-30 18:15:24 1110

原创 Codeforces Round 933 (Div. 3) C 题

对于给定字符串s,你可以对其中的任意位置进行删除,使的s的子串中不含有"map",和"pie", 对于map和pie ,你只需要删除一个位置即可改变,但请尤其注意"mapie", 其既含有“map”,有含有“pie”,因此,相当于ans加了两次,在map时加了一次,在pie时加了一次,所以在遇到mapie时要ans--;类的成员函数,用于从一个字符串中提取子串。是 C++ 标准库中。

2024-07-30 17:25:18 937

原创 Codeforces Round 933 (Div. 3) A 题

有两个数组,分别是数组b和数组c,从数组b中挑选一个元素,从数组c中挑选一个元素,使得两个元素的和小于等于k,则满足条件,问满足条件的一共有多少种选法。使用暴力枚举的方案,一共是双重循环,时间复杂度是O(mn)。

2024-07-30 17:01:00 542

原创 Atcoder 356 C - Keys 二进制枚举

一共n把钥匙,每种钥匙都有2种情况,真和假,因此,一共就有2的n次幂种可能,我们枚举每一种情况,看看有多少种情况是符合题干的即可、如果全为假,即为000,如果全为真表示为111,是2的n次幂-1,故数字枚举0到2的n次幂-1,要求如果有>=k把钥匙和能开门这两个条件是要同时成立的,否则这个方案就不是一个合理的方案。__builtin_popcount(s&S[i])>=K 记录了s,和S[i]的二进制表示中,相同位置都为1的位数,有 2^N 种可能的钥匙组合,其中哪些是真钥匙,哪些是假钥匙。

2024-07-29 17:33:15 666

原创 Atcoder 356 B - Nutrients

我们有M项指标需要达到标准,然后一天吃N种食品,每种食品对每个指标都有一定的增值,我们要看看吃完N种食品,能否满足这M个指标。

2024-07-29 16:41:24 277

原创 Atcoder 356 A - Subsegment Reverse

这道题,就是给你一个数字N,然后你就可以的得到一个首项为1,公差为1的N项等差数列,然后对于这个数列,将第L到R 项进行翻转,之后再输出即可,题目内容很简单,如何快速简洁的来实现这道题目呢,首先考虑数组A的构建,我们可以使用iota 函数递增得到A,然后使用reverse 函数即可,注意reverse函数的使用方法,其[L,R),右区间不是封闭的,而且还要注意vector数组下标是从0开始的。

2024-07-29 15:31:27 371

原创 洛谷 P3390 【模板】矩阵快速幂

这是一道模板题,利用了矩阵的知识和快速幂的内容,在以后得矩阵加速中有重要的应用,因此这一部分还是要好好学明白的,注意函数的返回值的数据类型。

2024-07-28 22:27:48 162

原创 Atcoder 364-C - Minimum Glutton

因此我们让其按咸从大到小排序,让其按甜从大到小排序,看看哪种情况下他吃的菜的数目最少即可。题干要求使其吃尽量少的菜,他一但吃的甜大于X 或者 吃的咸大于Y ,那么他将不能吃了,

2024-07-28 19:13:45 582

空空如也

空空如也

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

TA关注的人

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