自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洛谷 P3406 海底高铁

使用前缀和记录每段铁路经过的次数,因为n个站点只有n-1段铁路,所以尾记得-1。注意到,经过一段铁路与从小到大或从大到小无关,所以用经典前缀和就可以了。

2023-08-31 21:31:46 129

原创 堆优化的dijkstra算法

dijkstradijkstradijkstra算法简述:定义dis[i]dis[i]dis[i]表示节点iii到起点的距离dis[i]dis[i]dis[i]在初始时,除起点外,全部为极大值每一次寻找dis[i]mindis[i]_{min}dis[i]min​,并用其更新与之相连的每个节点。伪代码:for(每个顶点)找出dis最小的顶点x(没有访问过);for(每个与x相连的顶点y) dis[y]=min(dis[y],dis[x]+x与y相连边的边权)}考虑优化寻找dismindi

2021-07-27 23:33:20 353

原创 浅谈链式前向星

写在最前:笔者其实对链式前向星的理解并不是很深刻,老是忘记怎么写,每次都要看模板。而最近的一次,模板出现了问题。于是,记录下正确的写法。所用如下:数组 head[i]head[i]head[i] 大小为点的数量 head[i]head[i]head[i]:最后一条起点为i的边的序号变量 e_cnte\_cnte_cnt 最终大小(加边操作全部结束后)为边的数量 e_cnte\_cnte_cnt:维护每条边的序号结构体 e[i]{to,next,weight}e[i] \left\{to,nex

2021-01-24 23:34:22 182

原创 洛谷 P3958 奶酪

读题,不难想到深搜。然后加上一个 vis 数组记录这个地方有没有来过,如果来过肯定就不再来了同时,你还需要注意“坐标的 绝对值不超过 1,000,000,000”,记得算两点距离的时候要改成 long long 类型#include<bits/stdc++.h>#define reg register#define ll long longusing namespace std;int t;struct node{ int x; int y; int z;}che[100

2020-12-04 19:58:37 128

原创 OI中部分常用latex语法

表示多个式子为同一部分abc{abc}abc{abc}换行aba\\baba\\b分数ab\frac{a}{b}ba​\frac{a}{b}点乘a⋅ba \cdot ba⋅ba \cdot b叉乘a×ba \times ba×ba \times b点除a÷ba \div ba÷ba \div b西格玛(sigma)∑abc\sum\limits_{a}^{b}{c}a∑b​c\sum\limits_{a}^{b}{c}∑abc\sum_{a}^{b}{.

2020-11-27 21:45:06 216 1

原创 求最大值最小与最小值最大的二分模板

①当二分区间为[l,mid]与 [mid+1,r]时:while(l<r){ int mid=(l+r)/2; if(check(mid)) { r=mid; } else { l=mid+1; }}最大值最小化②当二分区间为[l,mid-1] 与[mid,r]时:while(l<r){ int mid=(l+r+1)/2; if(check(mid)) {

2020-09-13 19:52:45 286 1

原创 回首我的初中生活·机器人

约是五年级,小学里有了机器人社团,结果就几个人报名,除了我还都只是三四年级的学弟(贲姓同学,后来第一次比赛后就因为成绩退出了,王朗迪(后来也曾见过会提及),奚梓原,杨利)。当时是参加的 ArduinoArduinoArduino,南通地方的比赛,结果挺惨的,如果可能,将来会有关于小学的回忆录,到时候在详细写写,后来也搞过中鸣,但时间不长,五年级便结束了;而到了六年级,以为课业繁重,便没有再搞机器人,结果证明我错了,想来也挺后悔的。到了初中,因为一些原因,所以能够到海陵的机器人社团参与活动。而紫石的同学们的

2020-08-30 15:36:44 359

原创 洛谷 P1967 货车运输

前置知识:生成树,并查集,倍增求LCA化简题意:求图上两点之间路径上边权最小的边(由于最终生成的是树,所以路径唯一)。注意两点可能是不连通的。大致:先用最大生成树重新建边,然后用并查集判断一下两点是否在同一个联通块,之后用倍增在求LCA的时候维护边权的最小值最大生成树:由于要找边权最小的边,所以尽量在生成树的时候选大边(sort排序改一下就行了)并查集:生成树使用克鲁斯卡尔算法,因为从数据可以得出是稀疏图,不建议使用皮姆算法其实是我不会#include<bits/stdc++.h>u

2020-08-30 14:49:27 121

原创 浅记我的高中生活(逐步更新)

时间戳:2020/8/15逐步更新(如果有时间的话是,频率近似每周,不行的话就得高考完了,因为住宿和学习任务繁重的原因)军训的经过。(此部分在学校里写过大致的总结(由于赶时间,有些地方不详细,有空打出来))宿舍的同学们。(tql)校本培训的经过。(讲座,跑操)我对于自己现状的看法(我真的认为我水平很低,从各方面来看也确实如此,但其余同学都不承认(可我觉得所有人明明都比我优秀))...

2020-08-15 14:15:19 277

原创 洛谷 P1234 小A的口头禅

首先,由样例得出,斜着的 hehehehehehe 是不合法的。那么,就有上下左右四种情况,逐一特判即可(注意要判断是否越界)#include<bits/stdc++.h>using namespace std;int n,m,ans;char a[1007][1007];void judr(int i,int j){ if(j+3<=m) if(a[i][j]=='h'&&a[i][j+1]=='e'&&a[i][j+2]=='h'&amp

2020-07-25 12:39:53 178

原创 洛谷 P3884 二叉树问题

题意中的两点距离需要稍微思考一下,很容易想到 lcalcalca,然后注意一下本题中距离的定义;深度,跑 lcalcalca所需要的dfs已经跑过了每个点的深度;宽度,一开始想用统计子树的方法,然后发现递归可能不太好写 我写不出来,突然发现直接桶排一下就行了,而数据也非常适合桶排。数据较小,所以 lcalcalca中的 iii 其实开到8就行,个人写的9#include<bits/stdc++.h>using namespace std;int n;int dep_max,wid_ma

2020-07-24 22:37:28 149

原创 openjudge 7610 出现次数超过一半的数

比较简单。一开始想用set+vector,然后发现实现可能比较困难,于是用了桶排。看到一个用sort排序然后看次数的,有一个点没过,没看出来问题。代码会贴在最下方,读者可以提出问题所在。下面先是自己的代码#include<bits/stdc++.h>using namespace std;int n;int t[200];bool flag;int main(){ cin>>n; for(int i=1;i<=n;++i){ int x;cin>&

2020-07-23 22:27:27 258

原创 洛谷 P5461 赦免战俘 题解

想起了CSP-J2019完善程序的第一题,都是一个矩形分成四个矩形,可以借鉴下思路:递归。设置函数,记录此时矩形的边长是2的第几次幂和左上角的坐标。每次都把左上角的部分赋值,然后继续搞左上角,左下角,右上角,右下角。提前处理一下2的若干次幂的值,这样大大节省了调用pow函数的时间。#include<bits/stdc++.h>using namespace std;int a[1050][1050];//记得要比2^10大,否则REint b[17]={1,2,4,8,16,32,6

2020-07-20 16:53:55 354

原创 回首我的初中生活·初一 (争取今年写完)

初一从很早起,就对紫石十分熟悉了——家就在学校后。记得那还是在上幼儿园时,每日早晨总是听着7:25的下课铃起床,吃早餐。往往的,还能够看见宿舍楼道里穿行的学生,总是形色匆匆;也曾看见过他们胸卡,想起来颜色似乎一直在变,自己的初二胸卡颜色与当今初二胸卡颜色也是不同的。那个六年级的暑假,早已淡忘了,但初中入学的情景却还历历在目。走入教室,那扑面而来的,经历过一夏的闷热而具有的发霉味,让我在三年后的今天还能感受到。过程也还算顺利,题目并不十分难,中午还与其他几名原先认识的同学一起吃了饭。吃饭时,突然意识到数

2020-07-17 03:37:33 206 1

原创 洛谷 P5738 歌唱比赛

按照题意模拟即可。没有必要开数组和结构体之类,直接用中间变量替代就行#include<bits/stdc++.h>using namespace std;int n,m;double ans,sum,maxn,minn;//虽然题目没说,但个人认为double保险int main(){ cin>>n>>m; for(int i=1;i<=n;++i){ sum=maxn=0,minn=0x3f3f3f3f; //一定要记得初始化!

2020-07-17 02:59:08 837

原创 回首我的初中生活·前言

前言与其说是纪念,倒不如说是忘却罢了。想起小学,大部分记忆似乎确实是早已随风逝去了;再看初中,倘若不用这种方式记录下来,也终会有这样的一天。本文写作的目的,也并非为了博君一视,更多是为了让将来的我,在回忆初中时能够有话可说。...

2020-07-15 21:01:27 185

原创 寒假集训 P1161 飞越原野

JSOI2019冬令营,这题只会输出impossible骗10分,如今也算圆了当时的梦吧读题发现:宽搜。因为要求最短时间,这和宽搜的长处很像,而且又是一个类似走迷宫的题。标记当前状态:横坐标,纵坐标,目前已用的时间,余下的能量。宽搜一定要记得判重! 开一个三维数组,定义为每一坐标(横加纵)和余下能量,如果已经出现过这种状态,那么就舍去。Q:为什么不需要记录时间?A:因为能量不同,最后的总时...

2020-03-01 11:22:32 282

原创 洛谷 P2671 求和

想要OI学得好,数学肯定不能少看来我是永远也学不好了依照题意,模拟。三重循环枚举 x,y,z,复杂度约为 O(n^3)代码略.不难发现,其实三元组与中间的 y 并没有关系。所以,我们只需枚举 x 与 z 即可,复杂度约为 O(n^2) 。附代码:(40分)#include<iostream>using namespace std;int n,m;int ans...

2020-02-25 22:07:59 181

原创 洛谷 P1323 删数问题

其实,这是由两条题目凑在一起,拼接而成的一条题目。而这两题,在JS夏令营冬令营,NT国庆冲刺营中都有出现。分别是丑数(队列部分的题目)和删数问题(没错,名字一模一样)(贪心部分题目)后一题可参考我写的题解。把本题拆分成两部分。首先,把这些元素全都找出来并拼接在一起,然后,逐渐删去。找元素由于题中说是“最小的k个元素”“从小到大”,所以是依次添加元素,而每次都 O(n) 去找目前最小的...

2020-02-16 22:38:04 415

原创 洛谷 P1078 文化之旅

深搜,剪枝。个人认为此题与棋盘其实非常相似用一个数组记录到达某个国家的最小距离(初值无穷大),就可以把大于等于该距离的剪枝掉(注意等于也必须减去,否则极有可能玄学错误)#include<bits/stdc++.h>using namespace std;int n,k,m,s,t,ans=0x3f3f3f3f;int cou[107],cul[107][107],dis[10...

2020-02-11 20:02:47 110

原创 洛谷 P1019 单词接龙 题解

肺炎时节家家闭,提交OJ处处WA到处都是坑以下部分“前者”代指目前的龙,“后者”代指现在正在判断的单词重叠的部分越小越好,这样接的龙才长(就是贪心,一开始贪反了。。。)“相邻的两部分不能存在包含关系”其实在一些情况下是可以的,比如两者相同且首尾字母相同时:tact->tact,或者是前者的最后一字母和后者的第一个字母相同时:superbus->super记得同一个...

2020-02-05 23:27:00 190

原创 洛谷 P1346 电车

最重要的事情是读题!切换开关的状态后,它会自动复原我也不知道这是什么鬼开关把每个节点看作是点,轨道看作是边。转换一次开关状态看作边权为1。由于题中n的范围是100,所以可以用最暴力好写的Floyd算法#include<bits/stdc++.h>using namespace std;int n,s,e;//end是保留字int d[107][107];//存图int m...

2020-01-23 18:20:29 117

原创 CSP-J 2019 游记

成功爆零(真的)从县政府门前出发。一路驱车,在服务站还遇到了其他地区的同学(具体哪个学校不记得了)。有个大爷竟然认为我是去旅游的。。。到了南航,到(纪念碑?)去让所有人拍了张照片,然后直奔食堂。不得不说南航是真的大。食堂差评那么多人来吃饭(都是CSP的啦),竟然只有一个地方收费。。。然后等了大约半小时才吃上饭。话说菜还是相当不错的,然而最后没有全吃下去。。。然后就去比赛了到了门口发现草稿...

2020-01-22 17:28:28 231 2

原创 洛谷 P1926 【小书童——刷题大军】

强烈要求注明数据范围!否则洛谷将会臭名昭著(逃01背包求出最短要多少时间及格,然后贪心给题目排序,从时间少的开始做起#include<bits/stdc++.h>using namespace std;int f[157],a[17],b[17];//最大数据给出的时间是150//所以原来f开107本地过了,然而洛谷IDE挂了,并不知道为什么//f存每个时间内得到的最大分数...

2019-11-11 21:12:06 666

原创 洛谷 P1803 【凌乱的yyy / 线段覆盖】

话说个人觉得前面的几篇并不是很好,其实没有那么难,代码也没有那么长很久以前就看到了,但貌似一直认为自己的算法是错误的,结果交上去发现是正解首先按照时间排序(贪心):结束时间早(尽可能不影响后面的比赛)的在前,若结束时间相同,则开始时间晚(尽可能不影响前面的比赛)的在前。(如果两者的判断顺序反了,就把最后一场比赛放到前面来了)由于n<=1000000,所以sort一下即可把目前的结束时...

2019-11-03 20:15:18 238

原创 洛谷 P2672 【推销员】

如果当前点在最大距离点左边,只加上推销疲劳值如果当前点在最大距离点右边,还要在加上两倍距离差,并更新最大距离点首先很容易想到一个贪心:找在最大距离左边最优的点与右边最优的点进行比较(写成程序就是两个if),取最优。并且还要判断该点没有去过。最后如果取了右边的点要更新最大距离点。于是有了这份程序:#include<bits/stdc++.h>using name...

2019-11-01 21:24:11 145

原创 洛谷 P2118 【比例简化】

先看题面,发现很不可做。这比例还得是范围内,还要尽量准确,这怎么找?然后看了一眼数据范围,发现很可做由于l<=100,直接双重循环枚举a’和b’就行了#include<bits/stdc++.h>using namespace std;double minn=0x3f3f3f3f;//存当前能取到的最小值int mina,minb;//a'和b'int a,b,l;...

2019-10-31 22:31:29 363

原创 OpenJudge 9265 取数游戏

唉。。。还是看了一下讨论区才猛然醒悟。取任意多个数,那么包括取0个数!!!推导过程:手算设f[i]表示到当前这个数为止,所有的种类一开始以为是f[i]+=fj然后发现错了,于是毅然手算推出了:f[1]=1,f[2]=2,f[3]=4.f[4]=7,f[5]=12,f[6]=20,f[7]=33得出:f[i]=f[i-1]+f[i-2]+1,然后发现与样例对不上了,交了一遍->0...

2019-10-29 21:40:36 396

原创 OpenJudge 6045 开餐馆

首先一看是动态规划毕竟是动态规划类里的题目然后看到位置逐渐递增,利润不统一,两个餐馆间有距离限制,就开始考虑应该是最长上升子序列的变种(就是写法差不多)设f[i]表示当前从起点到当前这家餐馆为止所能获得的最大利润那么最大利润肯定要从前面每一个餐馆去看,能不能开这家餐馆(如果都不能那么f[i]自然为本省的利润了)。然后考虑,现在在当前餐馆开业能获得的最大利润与在前面某个餐馆开业后再在此餐馆开...

2019-10-28 22:36:08 227

原创 洛谷 P1160 【队列安排】

很久以前看到,今天才做。苦于没有满足该性质的数据结构,于是——手工模拟(看了别人的题解,原来这算链表?)#include<bits/stdc++.h>using namespace std;int n,m;//由题struct node{ int r;//左边 int l;//右边}a[100007];void dcout(int k){//不断找右边的人 if(!a...

2019-10-27 20:12:39 240

原创 洛谷 P3956 【棋盘】

JS省里冬令营夏令营讲深搜都讲到了今天上午测试的题,15分,因为剪枝没剪干净,少了个等于号,于是本来能拿到的分也没拿到,唉主要思想dfs+剪枝#include<bits/stdc++.h>using namespace std;int m,n;//依照题目int a[107][107];//存颜色int vis[107][107];//存来到这个点最少花的金币int d...

2019-10-27 16:01:59 208

原创 洛谷 【[USACO1.1]贪婪的送礼者Greedy Gift Givers】

STL-MAP因为要存每个人的名字和钱,所以只想到了mapmap可以简单理解为将某两个量绑定(数组也行,但只能是数字与其他类型绑定),两个量任意类型都行;赋值可以直接用下标(自动申请空间)或插入(若已有绑定关系,则插入失败)#include<bits/stdc++.h>using namespace std;int np;//尽量按题目里的说法string a[17];//...

2019-10-26 13:13:35 143

原创 洛谷 P5534 【【XR-3】等差数列】

题目给你的是整数!整数!整数!直接long long,别给我整什么long double不然输出就很玄学小高斯告诉我们了等差数列求和公式:(首项+末项)X项数/2末项=首项+公差X(项数-1)说实话我都快忘了打一次写还写错了该去四年级进修下#include<iostream>using namespace std;long long x,y,z;//首项,第二项,末项...

2019-10-07 21:20:48 251

原创 洛谷 P1359 【租用游艇】

果然是道看你语文如何的题矩阵其实是这样的:a[i][j]表示i到j的路程,其中1<=i<=n,i<j<=n因为题目说“在下游的任何一个游艇出租站归还游艇”所以没有回头路……然后就是Floyd了#include<iostream>#include<string.h>using namespace std;int n;int a[207]...

2019-10-05 14:47:06 204

原创 洛谷 P1203 【[USACO1.1]坏掉的项链Broken Necklace】

真是不容易啊。。。坑点巨多算法:把字符串赋双,然后从每一个起点向后搜,然后再从每一个终点向前搜,每次与提前保存好的judge比对看是否是同一颜色#include<bits/stdc++.h>using namespace std;int n;string s;int size;int maxn;int main(){ cin>>n; cin>&g...

2019-10-02 09:51:58 137

原创 洛谷 P1568 【赛跑】

这题已经挂在我的任务列表里很久了。。。一直觉得很难红题果然不同凡响但敲了敲其实也还可以主要就是存储两人已走距离,指针遍历跑步,立个flag记录谁跑得快#include<iostream>using namespace std;int n,m;struct node{ int ti;//时间 int di;//每秒的距离}a[1007],b[1007];//两个人in...

2019-10-02 09:50:08 459

原创 洛谷 P2615 【神奇的幻方】

现在看来真的是很水的模拟,但以前觉得巨难啊用if按照题意模拟就行了,但是记得每个if间要用else连接!不然就会出现一个数字因满足多种条件而反复出现的例子!而且最好不要把规则上下颠倒,不然有可能出现错误#include<bits/stdc++.h>using namespace std;int n;int a[45][45];//记得数组开大一点int lx,ly;//...

2019-09-08 15:16:21 217 2

原创 洛谷 P1024 【一元三次方程求解】

论为什么暴力能出奇迹:由题得根的范围在-100~ 100间,又有根要精确到小数点后两位,所以,枚举-100.00~100.00即可时间复杂度为O(2*1e4),而现代计算机甚至能够每秒运算上千万次(最保守估计,先进的如i7应该已经过亿),所以暴力是没有问题的但也别每题都想直接暴力AC不过仍需要注意:判断两个浮点数相等的条件与数据类型#include<bits/stdc++.h>...

2019-09-08 15:14:54 314 1

原创 洛谷 P1957 【口算练习题】

洛谷题目难度都是假的读入:第一个用string读,判断是否是a,b,c,不是就用进制转换转成十进制数位数:负数的负号也算一个!0也算一位!(特判或用dowhile)下面是代码(没有写成子程序所以代码有重复之处,不要嫌长)#include<iostream>#include<string>#include<cmath>using namespace ...

2019-09-01 15:34:41 649

原创 洛谷 P1032 【字串变换】

主要思想:queue+map+set说一下读入:while(cin>>x>>y),这样就行了,按ctrl+z结束输入首先,我们很容易想到一种做法:用队列进行宽搜(用结构体/二维数组)map作为变换规则的储存器set用来查重每次在队首里找是否有能变换的部分,然后判重,入队于是就有了以下的代码#include<iostream>#include&...

2019-08-31 19:01:39 252

空空如也

空空如也

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

TA关注的人

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