自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于整除和取模运算的定义

简单来说,就是一个整数a,可以表示为一个任意整数b乘一个任意整数n加上一个任意整数r,比如3,就可以表述为1乘2加1,而这个r,就是a mod n所求出来的数。对于任何一个整数a和任何一个正整数n,存在唯一的整数q和r,满足0 ≤ r<n且a=qn+r。a(读作:d整除a)含义是,存在某个整数k,使得a=kb,任何整数均可整除0。算法导论上有一个对mod的完美解释,我觉得这值得我记录下来。为除法的商,值r=a mod n为除法的余数。a当且仅当a mod n=0。...

2022-08-07 20:20:19 469 1

原创 闲谈随笔:缓冲

一篇闲谈,没什么好看的

2022-08-06 20:30:10 181

原创 2022.8.1:黑白棋子

这一题是来自YBTOJ的题目,题目中运用到了贪心,缩点和分类讨论的思想。

2022-08-01 19:11:08 319

原创 2022.8.1:小学数学

这一题是来自YBTOJ的题目,题目中运用到了贪心的思想和排序算法。

2022-08-01 18:43:49 145

原创 2022.7.31:航班延误

这一题是来自YBTOJ的题目,题中运用到了拓扑排序和二叉堆的使用。

2022-07-31 21:11:11 522

原创 【NOIP 2014 提高组】寻找道路

NOIP2014提高组的题目:寻找道路,代码以及思路

2022-07-18 20:34:18 188

原创 闲谈随笔:这是一份心得

一份心得

2022-07-16 17:20:40 100

原创 ybtoj 构造完全图 最小生成树 kruskal

题目描述样例数据范围解题思路可以看到极限数据是1e5,所以考虑nlogn算法。完全图:一个图中每一对顶点都直接相连图论题,犹豫不决先画图,然后根据题目要求构造一遍画出来是这样 (不要在意箭头,这是个无向图)然后思考一下怎么构造,发现2和3之间的权值必须比1大,否则最小生成树不唯一假如2和3之间权值是1,那么生成的最小生成树完全可以不要1和3连着的边,可以选2和3的边,一样能生成一个树,所以我们发现,加入的权值必须大于题目所给的原最小生成树权值根据这样的思想,我们能构造出这样一个边权

2022-02-13 09:29:02 454

原创 ybtoj 躲避拥挤 并查集

题目样例数据范围解题乍一看是图,但是并查集。其实画个图就知道了用微软白板画的,鼠标作画。可以看到3和5之间是5705的人气值,当询问6000时,就会有(5,3)和(3,5)这两个组合满足题目条件,像这种求连通的题呢,就可以用并查集了,不难发现,3和5一开始属于两个并查集,但满足条件之后贡献出了两个答案,那么3和5这个并查集与2这个并查集合并之后的贡献是多少呢?是2乘1再考虑反方向走再乘2对吧,所以现在就有了6个答案(2+4)。但是这题如果每次询问都去重做一遍,可能会爆掉,所以考虑离

2022-02-12 15:53:31 493

原创 ybtoj 子串拆分 KMP算法

太久没打KMP了,都快忘光了,还特意去复习了一下。题目要求一个ABA形式的子串,KMP的PMT恰巧可以求出一个字符串真前缀与真后缀的集合之交集中,最长元素的长度,那接下来就是枚举一下子串了#include <bits/stdc++.h>using namespace std;int main() { string n; cin>>n; n=' '+n; int m=n.size(); int t,len;cin>>t; int next[16000.

2022-02-12 14:15:13 419

原创 ybtoj 特殊数列 哈希 hash

第一问比较简单,第二问比较难#include<bits/stdc++.h>using namespace std;const int P=313;const int MOD=1000007;int a[1086],b[100086];int Hash[2000086];bool vis[2000086];bool use[2000086];int viv[2000086];int H(string s){ int cnt=0; for (int i=0;i<s..

2022-02-11 14:11:06 352

原创 ybtoj 攻击法坛 二分

一开始以为是贪心加二分,结果不是,是二分加DP,具体思路是二分L,然后开两个数组f1f2,用n方的时间算出在当前L下从第i个点开始能到达第f1[i]个点,f2同理,然后dp呢就开个二维数组, dp【i】【j】表示当前使用了i次法杖和j次二倍法杖#include<bits/stdc++.h>using namespace std;int a[2086];int f1[2086],f2[2086],dp[2086][2086];int main(){ int n,R,G; cin&.

2022-02-10 09:55:30 317

原创 ybtoj 最小时间【二分】

很明显能想到二分t,然后问题的关键在于,二分了t之后怎么算出在当前t下的最大值,如果直接用sort肯定会爆,这里可以用另一个函数:nth_element,这个函数的用法跟sort差不多,但是多了一个参数,它的作用是在指定的1-n区间内把m位排好序,然后m左边的都比m小(假设是从小到大排序),右边都比m大,但是并不是有序的,也就是如果m是第三位,那第二位可能比第一位小,但是它们都比m位小,所以放在了前面,这个函数的时间复杂度是O(n),这样就能用二分过#include<bits/stdc++.h&..

2022-02-10 08:41:13 188

原创 出栈序列 贪心

#include<bits/stdc++.h>using namespace std;int a[1000086],q[1000086],b[1000086];int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } int maxn=INT_MIN; for(int i=n;i>0;i--) { maxn=max(maxn, a[i]); b[i]=m.

2022-02-09 16:00:46 422

原创 函数与参数

早在第一个程序:helloworld的时候我们就已经接触过了主函数,后面我们又学习了定义,那么你有没有想过,自己定义一个函数呢?函数类型 函数名称(参数){ 函数内执行的语句 函数返回值}这是一个函数所必须的,像我们的主函数,它的定义类型是int,名字是main,不需要传入参数,返回值一般是0。下面举一个不是主函数的例子int max(int a,int b){ if(a>=b)return a; if(b>=a)return b;}上面这个函数的作用是返回传入的

2021-11-24 13:23:04 189

原创 字符和字符串

我们都知道,计算机内部是由0和1组成的,也就是二进制,那么计算机是怎么表示字符‘a’的呢?ASCLL码ASCLL码(美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准。c++显示字符也依靠ASCLL码实现,下面贴个表可以在表中知道,每个字符都有其对应的ASCLL码值char c='a';//在c++中,赋值字符要加上单引号cout<<(int)c;//在变量前加括号,内加类型,意思是把变量的类型强制转换成括号内类型

2021-11-24 13:02:37 550

原创 跳出语句和定义域

跳出语句首先把c++里的一些跳出语句摆出来continue; //跳出一层循环break; //跳出一个循环return 返回值; //跳出一个函数goto 地方名称; //无条件跳到任意地方当我们执行一个for循环时for (int i=1;i<=10;i++){ if(i==5)continue;}这个循环就只会执行9遍,原因是当i等于5的时候,它跳出了这一层循环for (int i=1;i<=10;i++){ if(i==5)break;}这个

2021-11-22 13:28:54 459

原创 数组与循环

当我们向c++申请一个存储空间的时候,我们这么写int a;这样我们就申请了一个叫a的变量,它可以用来存整数但是如果要申请一堆存储空间呢?我们这么写int a[10];这样我们就申请了10个存储空间如果我们要调用第一个存储空间,就用a[0]来表示,第二个用a[1]表示,而第十个用a[9]表示,如果你只申请了十个空间,但是你的语句里出现了a[10]那么编译的时候可能会报错,运行的时候也可能会报错。诸如 变量[数字] 这种类型的 我们称之为 数组现在我们肯定要考虑,该怎么对它进行操作,对吧

2021-11-22 13:09:45 944

原创 三种判断语句

这篇博客要介绍两种判断语句,首先来看一下这个程序if和else在c++里,我们一般用if和else来进行判断if后接一个小括号,如果小括号里的值或者条件是真的,那么就会执行小括号后面的语句我在上一篇博客里已经说过了,在c++里,1是真,0是假,1是对,0是错,但是在if的判断里,我们一般不用1或者0,我们用逻辑运算符和变量像这一条语句里,a等于b吗?1很显然不等于2,所以这条语句是假的,那么if也就不会执行它后面的语句,转交给else处理。所以用我们的话来翻译这个程序就是,a等于1,b等于2,

2021-11-17 15:14:06 809

原创 定义类型和输入输出和基本运算

先看一个这样的程序前三行应该不用讲,我在第一个程序:你好世界已经讲过了哦,提一下,iostream里面包含的是cin和cout,我会在输入输出那边讲先讲定义和类型我们先来看第五和第六行这个加粗的int 和加粗的double 就是类型后面的a和b是变量变量不需要多讲吧,可以粗暴的理解为,你找c++开了一间叫a的房,里面能放固定类型的数字。int的意思是整型,也就是被int定义的变量,只能存整数,而且int定义的变量存储是有范围的只能存负的2的31次方到正的2的31次方,如果超过就会数据溢

2021-11-16 20:26:37 793

原创 第一个程序:你好世界

不说废话,直接开始正文,贴图这是一个用于输出 Hello,World! 的程序。请先自己在dev c++上抄一遍点击右上角的编译运行,然后再看下文我们来看看它由几部分组成首先是头文件库#include< > 是固定的语句,大于小于号里的是文件库的名字,你可能会不理解什么是文件库,这么说吧,c++把它的操作都放在了一些仓库里,你要用这些操作的时候就得去对应的仓库里拿,如果一次性全加,那么运行时候就会很臃肿,这个仓库就是头文件库,像我举例用的cstdio 里就包含了printf和sc

2021-11-16 17:00:45 1042

原创 拓展欧几里得和逆元

今天没办法水了,因为今天爆零了,所以我要考虑一下写点什么,最近两天都在讲关于编程中的数学,虽然符号一多我基本上就看不懂了,而且他讲的也比较快,我一个蒟蒻还没看懂他写了什么就讲下一个了,可以说是非常懵逼,然后下午的题目又不会,可以说是非常绝望,到了晚上还得写凑字数的博客,可以说是非常劳累。我只能贴点代码,然后说说它们的作用了拓展欧几里得作用求出ax+by=gcd(a,b)/分隔/(a和b是给定的)中x和y的一组解inline int exgcd(int a,int b,int &x,int

2021-10-03 19:36:15 76

原创 中转站,凑字

朴实无华的一天,国庆放假四天,我倒贴国庆两天来集训今晚上又是主动想写博客的一天(但是实在想不出写点什么,本人没有什么才华,也没有高超的技巧,就是个普普通通的信竞选手最近上了高中,之前初中难理解的东西,现在也差不多能理解了,今天,没什么好说的,只解决了一题最短路的问题题目是这样的:中转站题目描述Kiana最近兼职起了快递工作,每天早上她都会从家里出发,先到中转站去接今天要送的快递清单,再将快递送到相应的地址去。可乐城一共有n个地点,m条双向道路将这些地点连通,使得任意两个地点之间都能够通过道路

2021-10-02 20:00:29 194

原创 闲谈随笔 : 思绪万千

开学了,身为一名高中生,虽然我每天都能用电脑,但是我也没什么时间写博客了,之前想着说每天都写力扣的每日一题,但是后面觉得,力扣本身有题解这个功能,大家都在题目那边看,为什么还要来看我的呢,就此作罢,不过我也不知道自己该写点什么,只能写点闲谈随笔来凑点博客。马上就要初赛了,学校军训时间和初赛时间撞了一天(虽然初赛也只有一天)学校机房前半个屋子的灯都坏了,开不起来,只能把窗帘拉开了,但是晚上依旧是束手无策的,坐到后面去又不能登QQ,我QQ开了验证,手机也不可能带进学校现在本来是回家的时间,但是我却在机房一

2021-09-11 10:33:38 98

原创 力扣(LeetCode) 541. 反转字符串 II

题目链接题解对于c艹来说,翻转字符串很简单,只要调用reverse就行了,配合s.begin()获得字符串的起始位置然后翻转就好了代码class Solution {public: string reverseStr(string s, int k) { for(int i=0,n=s.size();i<n;i+=2*k) { reverse(s.begin()+i,s.begin()+min(i+k,n)); .

2021-08-20 13:25:51 115

原创 力扣(LeetCode) 345. 反转字符串中的元音字母

题目链接题解这题并没有很难,只要用两个指针,一个从头开始走,一个从尾巴开始走,然后碰到元音就停下来交换就好了代码class Solution {public: string reverseVowels(string s) { int i=0; int j=s.size()-1; while(i<j) { while(i<j&&s[i]!='a'&&amp.

2021-08-19 13:47:01 172

原创 力扣(LeetCode) 552. 学生出勤记录 II

题目链接今天的题比昨天难很多啊,很明显就是进阶版,题意昨天那篇博客解释过了,今天就不再解释一遍了,这题很明显是DP,记忆化搜索应该也行,但是我不确定是不是会爆掉,所以还是dp好点我们设dp【i】【j】【k】为第 i 天,缺席 j 次,连续迟到 k 次那么依次进行分析dp[i][0][0] = dp[i - 1][0][0] + dp[i - 1][0][1] + dp[i - 1][0][2] 。今天截止0次缺席,今天截止0次连续迟到:过去一定也是0次缺席,但过去可以有0,1,2次连续迟到,因.

2021-08-18 14:07:56 86

原创 力扣(LeetCode)551. 学生出勤记录 I

昨天休息了,并且仔细思考了该怎么继续下去,坚持是个好习惯,我选择上力扣每天刷一题题目:学生出勤记录题目链接题解这一题算是比较简单的一题,考察的是字符串的操作,学生获得出勤奖励只要满足两个条件:1.缺勤天数<2天 2.连续迟到天数<3天这里要注意的是连续两个字,如果出现这样的LALL学生任然可以获得出勤奖励,因为迟到并不连续,所以这题的解法就很清晰了遍历一遍字符串s,分别开两个变量记录A出现的次数和L出现的次数,假设它们是numa和numl如果s【i】等于A,那么numa加一,一

2021-08-17 14:06:31 99

原创 闲谈随笔十二

我今天的精神状况很不好,昨天我失眠了,我好久没失眠了,在遇到重大事件时,我或许会失眠,但这次并没有什么重大事件,可是我就是睡不着,直到晨曦升起,我才能开始闭眼,因为失眠的原因,大半夜把题目给打了,早上几乎都在补觉,但这违反了我的生物钟,我感到深呼吸令我的心脏不安,今晚我打算早睡,或许一天我能接受,但若连续如此我肯定会垮掉我本是不想买眼药水缓解疲劳的,因为眼药水开了要一个月内用完,过了这个时间微生物就会滋生,谁知道它会不会让我变瞎呢,但因为没有得到充足休息,我的眼睛实在是酸痛的不行,只好买了瓶眼药水缓解一下

2021-08-15 19:15:19 81

原创 闲谈随笔十一

今天是七夕,但是跟我这个臭打代码的没有任何关系,我又没有女友,只能四处看着孤寡青蛙乱叫今天的第四题一点排面都没有,身为最后一题,在赛后,ac的人比其他三题加起来还多,让人不禁怀疑题目的顺序是不是用脚决定的而且今天的成绩很差,本来预料应该差不多一百吧,八九十这样子,然后加起来也只有50,最后一题的dp推了大半天,第一题也耗费了很长时间,但是加起来也只有50我在洛谷开了个博客,打算把csdn的博客也同步过去,以后更新博客就更新两份了,或许以后还会在别的平台写博客呢我洛谷博客地址https://www.

2021-08-14 19:44:11 105

原创 闲谈随笔十

我需要的睡眠时间越来越多了,这是一件好事吗,除去夜晚必要的睡眠,在休息段我也需要小憩才能保证我的眼皮不打架,我的心脏不疲惫,我在写文章的时候才刚醒来没多久,一天经历三四次从睡眠中苏醒真不是一个好体验我今天的重心没有放在改题上,而是该死的模板上,在写第二题时,我能明显感觉脑海中的模板在如潮水般褪去,我只能重新去看,才能想起点滴。让我心怀疑惑的是,为什么那么多人喜欢用SPFA,有人给的推测是简单,但是我并不觉得它有简单多少,而且它很容易被卡,用这个算法就像让我用脚趾去撞碎一根刺一样心惊胆战,若是扎不进去还好

2021-08-13 19:49:49 98

原创 优化程序的一些小技巧

本文会介绍一些我所知道的小技巧,但是受限于noip,比赛不能用的技巧我都不会提及首先要介绍的就是快读和快写,众所周知,cin和cout是比scanf和printf慢的,但是如果还要进一步提升速度,就必须使用快读和快写,快读和快写的原理就是,在处理字符的时候,比处理数字更快,当然还有一种更快的,fread,但是写法很复杂,用途也没那么广,所以快读和快写是比较广泛的选择 int read() //快速读入{ int s = 0, f = 1; char ch = getchar(

2021-08-12 20:21:00 117 1

原创 闲谈随笔九

个人博客的计划泡汤了,并不是说搭建的操作很难,而是日后的使用也没有那么简便,至少没有在大网站写博客简便,但是看了那么多搭建个人博客的教程,很多人的目的也只是保留一点自己的隐私空间,不至于博客被莫名其妙删除,然后再也找不回来,我觉得这是有道理的,写了那么多博客,肯定是要保存好的,而且它也不像纸质书籍,多了占地空间大,网络上能放的东西可比纸上能放的多得多今天的模拟赛中规中矩,只不过第二题不再是dp了,前两题都是数论,我也没办法,我数学没那么强,只能尽我所能,前两题各拿了五十分,第四题本来可以骗分,但是我后来又

2021-08-12 19:43:11 303

原创 闲谈随笔八

今天不是一个好日子,早上打题,本来应该做提高组的题目,但是做错了,为什么呢,因为它发了两个名字差不多的pdf,我不知道是哪个,我还特意进去点了一下,发现一个上面啥也没写,一个写了提高班,我恍然大悟,哦,那这个写提高班的就是提高组的题目了吧,然后我就开始做了,我还觉得怎么比起前几天来有点简单呢?结果等我打了三个多小时差不多了,要交了,一上网站,咔擦,我发现提高组的题目和我写的题目不一样,我直接人就傻了,然后找老师反应了这个问题,但是还能怎么办啊,就只能交到普及组咯,它命名的这么不清不楚里面明明白白写着提高组却

2021-08-11 19:53:45 102

原创 闲谈随笔七

我起了,直接爆零了,有什么好说的?最近打模拟赛,基本上是都不会,事后也能搞懂一些,但是实战就是写不出来,第一题就能让我刚两个小时左右,第二题或者第三题就挑着哪个简单一点,简单一点的说不定能写出来,虽然搜索的确能拿个几分,但是我就是想写正解,可能需要稍微改一下策略而且早上让我挺难受的就是,急着去干饭,然后把笔记本给关掉了,吃完饭回来发现我打的一题代码还没保存呢,只有第一题打好了然后交上去了,就很难受生活是枯燥的,除了编程就是数学,最近网上打印的讲义也到了,初赛篇也看的好像后面只是题目了,可以考虑直接去网

2021-08-10 20:31:06 101

原创 基础数据结构——栈

今天介绍栈和队列栈是什么栈是只能在某一端插入数据或者删除数据的线性表可能有的人不知道线性表是什么,线性表其实就是一个长条这样式儿的,在线性表里,除了第一个和最后一个元素,其他元素都首尾相连,为什么我要说线性表呢,因为栈可以抽象成这样一个木桶状的东西,它只能在一端进行删除和插入操作,也就是这样它也就只能在头部进行操作,就像洗澡时把衣服一件一件脱进塑料桶里,然后洗衣服时只能从最上头开始拿一样,这就是栈了栈的定义和操作c++给我们提供了标准的栈结构定义方式如下#include<st

2021-08-09 20:39:55 126

原创 闲谈随笔六

前两天没有发博客,因为前两天放假了,所以休息了两天,今天重新写博客,技术性的可能有点写不了,至少得明天进入状态才能开始写。在家里集训对于自制力来说真的是一种莫大的考验啊,稍有不慎就会被周围的小事物吸引,但是克服还是能做到的,只是没办法一下适应而已。今天的四道题只拿了十分,其实也没出我所料,因为我本来就感觉题目很难,下午的时间都拿来看初赛的知识了所以一题也没改,因为要写博客的缘故所以先写博客再去改题。时间真快,转眼就从普及组转到提高组了,我也从初中升上了高中,面临的是更高难度的挑战,经历了中考的淘汰,高

2021-08-08 19:22:09 93

原创 [NOIP2004 提高组]合并果子(贪心,优先队列,小根堆一口气学会)

题目链接洛谷P1090题意意思就是给你一堆数(比如1 2 3)让你加到只剩一个数(1+2+3=6)每次加的代价是加出来的数(1+2=3 , 代价是3 ; 3+3=6 , 代价是6 ; 6+3为总代价)要求最小代价(引入一种思想:贪心)贪心贪心算法,其实根本不用讲,它的核心思路就是求出局部最优解,走一步算一步,每一步都选当前的最优解,根本不从整体上考虑,然后把所有局部解求出来合成整体解。举个例子,小红邀请小明和小军到小红家玩,但是小红家比较小,只能容纳两人从图上可以看出,小军无论怎么走都要.

2021-08-04 20:01:06 400

原创 silent 算法 递推递归

我一直不知道写什么,但是感觉学了很多东西,却又没几个掌握的,所以把学过的东西再拿出来讲一讲,兴许能加深理解,找到新的疑惑点什么的这次讲选的是递推递归,递推是一种算法,百度是这么介绍递推的递推算法是一种用若干步可重复运算来描述复杂问题的方法。递推是序列计算中的一种常用算法。通常是通过计算前面的一些项来得出序列中的指定项的值递推还有个兄弟,叫递归,百度是这么介绍递归的程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,

2021-08-04 15:07:08 211 2

原创 silent 闲谈随笔 5

今天感觉很不好,早上写完题去看直播讲解,结果讲过了饭点,讲解一结束我就跑向食堂,然而食堂早已人山人海中午吃完饭就想着安装个图形库进dev c++,我选择了ege,结果照着官网来,没办法编译,我又跑去下了dev c++5.15,一个大神调整了一些小东西后传上来的,里面自带了ege,结果我照着注释里说的去做,还是没办法编译,重启了dev c++还是没用,网上找来找去也没有能拯救它的办法,我就又尝试自己装ege,结果装完后打开dev c++提示缺少路径,找不到g++什么的,我就炸了...

2021-08-04 14:48:47 113

空空如也

空空如也

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

TA关注的人

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