自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GDOI2018-4月训练总结

正经的事情来了      今天已经是不晚的day0了,在这里对前面做过的事情做一下总结。      从绿茵操场到颓废教室,从挥汗运动到机房乱搞,我们在这升级了,在这完成了使命。      记得我第一天,最早一个踏进机房的大门,打开了电脑,点开了C++,乱打了一坨模版,却不知自己的目标就在远方。中午去了利和颓星巴克,回来就开始考试了,因为考试并不是很优秀,令我进步的念头愈发强烈。      我在第二...

2018-04-28 16:47:31 249

原创 学习笔记第四节:莫队算法

前话      有时候我们对于一些区间求解问题,总是想不到什么方法去解决。      有人说线段树来记录状态,但是使用线段树是状态的转移就不能是O(1)。这时候线段树就没有了自己的优势,如 [国家集训队]数颜色 一题。用线段树维护则显得麻烦。正题      所以,我们在这里引入一种新算法:莫队。      传说能解决一切区间问题的算法(优雅的暴力)      我们尝试着用暴力来做一下此题[国家集训...

2018-04-27 13:47:10 288

原创 [USACO09FEB]改造路Revamping Trails,洛谷之提高历练地,分层图最短路

正题      [USACO09FEB]改造路Revamping Trails      ”Dp吧“      题意十分简洁,就是求一个有向图去除k条边的权值后的最短路。      我们很容易就想到了一种分层图的做法(就是暴力)。      分层图只是将Dp的思路图像化罢了。      d[x][p]表示x点之前,一共改造p条道路的最小费用。      那么d[x][p]就可以拓展出 d[y][p...

2018-04-24 10:33:59 415

原创 借教室,洛谷之提高历练地,暴力??差分

正题      借教室      我们每加入一个区间,就将这个区间都加上dj,没错,我们只要看一下当前点的权值是否大于ri即可。      lazy优化+读入优化强行卡过// luogu-judger-enable-o2#include<cstdio>#include<cstdlib>#include<cstring>#include<iostre...

2018-04-24 10:15:58 219

原创 [ZJOI2006]物流运输,洛谷之提高历练地,预处理状态压缩+DP

正题      [ZJOI2006]物流运输      对于每一天,它可以跟上一天不一样,也可以跟上一天一样,那么不一样的话就要用上一天的最小值+转换一次的费用+走一次的费用。一样的话,就是上一天这样走+走一次的费用。      用f[i][j]表示前i天,经过j状态的点的最小值。      j是一个二进制状压数,一共有m-2位,表示1到m路径上经过的点(肯定会经过1和m).      所以我们可...

2018-04-24 09:51:38 213

原创 情书,洛谷之提高历练地,强连通分量

正题      给你一份情书      这题就是裸裸的字典树。      对于一个句子,我们把每一个单词提取出来,放进字典树内,如果有完全匹配的单词(存单词时标记一下最后一个节点),那么我们就加一,输出ans即可,注意要开一个bool数组来存储是否出现过单词。#include<cstdio>#include<cstdlib>#include<cstring>...

2018-04-24 09:32:50 247

原创 [HNOI/AHOI2018]游戏,第三次模拟赛,暴力+优化?玄学

正题      [HNOI/AHOI2018]游戏      我们可以知道,两道门之间的点可以到达的区域是一样的,所以我们可以使两道门之间的点变为一个区间,然后它询问什么,我们就做什么。      每个区间拼命往外拓,我们知道,区间的左右两边都是门,所以左右两边都有一个区间,那么当且仅当它们的门的钥匙在当前的区间内,才能拓展区间。      很容易可以知道,我们把一个区间拉进当前区间,说明那个区间...

2018-04-24 09:09:34 370

原创 瓜瓜的时空旅行,第三次模拟赛,dfs序+线段树维护最小值

题目描述       西瓜们生活在编号 1⋯n 的 n个平行时空中,2n−2 台时光机将这些平行时空联系在一起。一台时光机有 3个整数参数 u,v,t 表示从时空 u 可以花费 t 的时间穿梭到时空 v。为了确保时空之间可以相互穿梭,同时方便作为现世的 1号时空的通行,西瓜们将这些时光机进行分工:前 n−1 台.时光机确保从 1号时空可以直接 / 间接抵达任意时空,后 n−1台时光机负责从 2⋯n...

2018-04-24 08:14:00 276

原创 [HNOI/AHOI2018]道路,第三次模拟赛,树形DP

正题      [HNOI/AHOI2018]道路      这题想了半天打了个贪心一点分都拿不到...      其实这一题看到“任意乡村可以通过不超过40条道路到达首都。”所以说这个题的深度最大是40层,也就是说,每个乡村路径上的铁路和公路的总和一共也就40条。      所以我们要猜想它的时间复杂度。      20000*40*40=32000000.实际上是没有那么多的。      记忆...

2018-04-24 07:33:53 377

原创 [HNOI2012]矿场搭建,洛谷之提高历练地,强连通分量

正题      [HNOI2012]矿场搭建      点双连通分量??边双连通分量??      不懂??     其实这题也没那么麻烦,代码也没那么长~     我们先找割点,然后分类讨论一下。     我们dfs找出与当前节点(枚举)在同一连通块的点,如果是割点就不用往下搜了,那么我们求出来的就是,割点被炸掉之后的连通分块。     当 当前连通分块的割点有两个及以上时,那么无论炸掉那个点,...

2018-04-22 15:21:08 228

原创 [USACO15JAN]草鉴定Grass Cownoisseur,洛谷之提高历练地,强连通分量

正题      [USACO15JAN]草鉴定Grass Cownoisseur      这一题好像很烦,因为要处理“反向走一次”这个东西。      但是我们好像枚举就可以啊~~      首先要缩点,因为环内的两个节点都可以互相到达。      缩完点之后,我们就想,怎么才可以满足这个条件。      其实就是要想,建一条边之后成环嘛.      那么反转一条边后所形成环的大小就等于1所在连...

2018-04-22 15:05:29 287

原创 [USACO5.3]校园网Network of Schools,洛谷之提高历练地,强连通分量

正题      [USACO5.3]校园网Network of Schools      第一问:求至少从多少个节点开始,可以遍历整个图。      第二问:求至少加上多少条边,使得无论从哪个节点开始,都可以遍历整张图      首先声明先缩环成点。      第一问就是求入度为0的点即可,因为不是入度为0的话,那么肯定可以从另外一个点传递信息过来。      第二问好像很烦,要求的是加上多少条边...

2018-04-22 14:49:30 253

原创 [POI2008]BLO-Blockade,洛谷之提高历练地,强连通分量

正题      [POI2008]BLO-Blockade      这一题很神奇啊~      我们来想想两个点不能连通和强连通有什么关系。      那么其实很明显,如果当前点所遍历到的子节点不能遍历到祖先节点,那么说明子节点只能通过该点来去到祖先节点,这样产生的有序点对数量就是son[x]*(n-son[x]-1)*2,(假设当前点为x,则儿子节点即为son[x])      所以可以延伸出...

2018-04-22 14:24:13 289

原创 [HAOI2006]受欢迎的牛,洛谷之提高历练地,强连通分量

正题      [HAOI2006]受欢迎的牛      其实这道题就是求缩点之后,入度为0的环的大小。      我们跑一便Tarjan缩点之后,记录每个点所在环的编号和大小即可。#include<cstdio>#include<cstdlib>#include<cstring>#include<stack>#include<vect...

2018-04-22 14:07:55 201

原创 跑路,洛谷之提高历练地,倍增

正题      跑路      这题看上去好像无从下手,又有重边,又有自环,但是想一想,其实都是一样的。      我们可不可以先处理一下一步可以到达的边,当然,一步可以到达当且仅当i到j的路径长度为2的x次方,如果x不为0,那么就肯定存在一个k,使得i到k的路径长度为2的x-1次方,k到j的路径长度为2的x-1次方。      我们用一个数组tf[i][j][x]来表示i到j是否有一条路径长度为...

2018-04-20 14:51:22 244

原创 [HNOI2006]鬼谷子的钱袋,洛谷之提高历练地,神奇的解法

正文      第四题:[HNOI2006]鬼谷子的钱袋      由这题我们可以想到二分的性质,一个数一定可以被2的幂次方相加而得。      那么很容易就可以知道,当一个数是偶数的时候,把它分为两部分相等的数来进行递归。      当一个数是奇数时,我们就要把除以2之后较小的数往下传递。      这样才可以使得分解的数较小。      然后因为分解出来的数是从大到小的,所以在归的时候把它加进...

2018-04-20 14:38:43 248

原创 有趣的数,洛谷之提高历练地,神奇的解法

正题      有趣的数有趣的你      这一题一点也不有趣,跟我们班的可爱的同学们解释了半天,我们来理解理解。      我们来找一下规律,当n是几位的时候,它带来的贡献(在k前面的数)是多少。没错,很容易发现绿色的部分是当n的位数小于k的位数时,带来的贡献是,k的前n位-10的n-1次方加一。否则就直接是(k-10^(k-1))*(10^(n-k)),那么我们就可以算出来n是几位数,按理推出...

2018-04-20 14:17:25 252

原创 开车旅行,洛谷之提高历练地,倍增

正文      第二题:开车旅行      这题贼难~。      首先我们要知道当前点的最短路和次短路的长度和所跳到位置,这样我们用倍增才好解决。。。      我们就想着把它排序,因为排完序之后他的绝对值的最小值一定存在于排完序队列中的上一个(last),上上个(lastest),下一个(next)和下下个(nextest)。(四个东西)      那么我们又要保证当前的 这四个东西 都 存在...

2018-04-20 11:57:50 232

原创 货车运输,洛谷之提高历练地,倍增

正题       第一题:货车运输       这道题很经典啊~~       直接建立倍增关系式求LCA即可。       不妨设i的第2^j个爸爸是f[i][j],而这条路径上的最小值设为mmin[i][j]。       f[i][j]=f[f[i][j-1](i的2^(j-1)次方爸爸)][j-1]的第j-1次方个爸爸。       那么mmin[i][j]=min(mmin[i][j-1...

2018-04-20 11:48:01 248

原创 [SDOI2008]烧水问题,洛谷之提高历练地,神奇的解法

正题      第二题:烧水问题      相信你们的主要问题是没有理解好题目。      题目说的是“每一杯水被烧过一次即可"。所以说,一杯水烧完以后的最大价值,是给别人热量。      那么我们就想到了尽量给别人热量的方法。      一杯水:420000J      两杯水:210000J(将第一杯水烧开)+105000J(用第一杯水将第二杯水升高50度,然后再用105000J升到100度)...

2018-04-20 07:49:53 215

原创 独木桥,洛谷之提高历练地,神奇的解法

正题      这题很搞笑啊~~      下面是转载洛谷 I_am_wx的题解。      你在桥上看风景,看风景的人在轰炸机上看着你。      首先自行脑补一下,假装你正在20000米高空的轰炸机上用高倍显微镜望远镜默默欣赏士兵离开,你会发现什么东西?一堆花花绿绿的迷彩服在移动。(不是鬼片!不是鬼片!不是鬼片!重要的事情说三遍)       那么当两个士兵撞在一起时,从你的视角看会发生什么?...

2018-04-20 07:39:54 240

原创 [SHOI2009]会场预约,洛谷之提高历练地,线段树树状数组基础

正题       第四题:[SHOI2009]会场预约      这题要做的操作就是,每次加入一个区间,删除与之有交的区间,输出个数。另外一个操作就是,输出当前的区间。      我们可以用set来完成这个操作,找出右节点比当前区间左节点大(或等于)的区间,如果找出来的区间的左节点比当前区间的右节点还要小的话,那么就删除这个区间。代码<教教你怎么用set>#include<cst...

2018-04-19 19:12:32 285

原创 [JSOI2008]最大数,洛谷之提高历练地,线段树树状数组基础

正题      第一题:[JSOI2008]最大数      这道题是可以用倍增维护最大值来做,每次加入一个点,维护一遍倍增数组(ST表)logn复杂度。      我也没拦着你用线段树加点。。。#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include&...

2018-04-19 09:23:50 201

原创 [AHOI2009]维护序列,洛谷之提高历练地,线段树树状数组基础

正题      第三题:[AHOI2009]维护序列      这道题是线段树的模板,只要用lazy记录一下即可,注意处理两个lazy(加和乘)的时候,注意运用乘法分配律。#include<cstdio>#include<cstdlib>#include<cstring>#define LL long longint n,m;LL mod;stru...

2018-04-19 09:12:01 213

原创 TYB之边路打野,第一次模拟赛,树的直径+LCA

正题      众所周知,队长tyb天天看主力队员ozy打王者。有一天,他突然觉得无聊了,于是开发出船新版本,王者农药之打野英雄传。简单来说,深谙oi的tyb队长将地图做成N个点的树,在每条树边上有wi的野怪。因为ozy不屑于做重复的题,所以他每次出发都会走简单路线,即每条边最多经过一次。ozy刚从王者一路连跪到青铜,忙着上分,没时间研究tyb的地图。现在他想知道,从xi出发,最多能打多少野怪。 ...

2018-04-18 21:35:31 297

原创 LZJ的圣剑,第二次模拟赛,贪心

正文      题目描述:你正想出去走走,但是突然来了一只怪物,幸运的,你有N把剑,每把剑有两个属性,分别是ai和bi。ai表示握着这把剑的攻击力,你可以握着这把剑攻击怪物任意次数,bi表示把这把剑扔向怪物的攻击力,这把剑扔向怪物后,怪物会受bi点伤害,然后你就失去了这把剑这个怪物最多能承受H点攻击,即在受到H点攻击或以上,就会消失请问让怪物消失的最少攻击次数。      那么我们就会想到贪心,肯...

2018-04-18 19:19:53 302

原创 TYB之鞋子大冒险,第一次模拟赛,离线+链表

正题       题目描述:他现在要通过一个长度为n的通道,但每个格子上都有陷阱,会对TYB造成ai点伤害。于是他弄来了 双鞋子,第i双鞋子都附上了跳跃提升 、摔落保护 和保护 ,表示穿着它,TYB一步最多可以跨越di格,落地时不会受到摔落伤害,且不会受到a<=si的陷阱的伤害。注意:此处附魔效果和真正的MC中不同!现在TYB想问你,对于每一双鞋子,能否只靠它无伤从 走到 。保证 a1=an...

2018-04-18 16:32:29 390

原创 TYB电竞队选名字,第一次模拟赛,字典树最长公共前缀

正文      题目描述:身为电竞队队长的TYB今天要召开电竞队会议啦!由于TYB觉得再电竞队里面,叫原名不太合适,应当取一些电竞队专属名字。比如说,clearlove,PDD,狗贼叔叔,UZi,faker之类的。TYB经过冥思苦想,想到了n个十分酷炫的名字。电竞队也有恰好n个人。所以人和新的专属名字是一一对应的。现在要把这些专属名字分配给每一个同学,每一个同学分配到一个专属名字,每一个专属名字必...

2018-04-18 14:22:41 665

原创 跳跃的TYB(杰克),第一次模拟赛,贪心

正文       众所周知,TYB师兄是一个十分认真学习的人,比方说,他初中的时候每天都学习到深夜,以至于他的手机每天都要偷偷拿到电脑室充电。跳一跳就是一款他最喜欢玩的游戏。但是由于他的是盗版的,于是游戏的规则有了一点点变化。当前TYB正站在X坐标轴原点上,他的朋友圈里面最高的记录是 ,于是他也想跳到坐标 上。但是他又想给别人一点面子,所以只能刚刚好跳到 上,不能超过别人。第一次跳跃的距离是1,但...

2018-04-18 13:48:36 375

原创 最长公共子序列,洛谷之提高历练地,提高模板-nlogn数据结构

正题      让你用Dp做,FFT了吧。(Fast,Fast,TLE).      n的平方明显是不行的。我们来尝试一下新的方法,我们把第一个序列从1到n来编号int x;scanf("%d",&x);where[x]=i;我们把他们的值所对应的编号记录下来。 接着,我们把另外一个序列的值改成所对应的编号s[i]=where[x];我们现在就可以直接搞一便最长上升子序列即为答案,为什...

2018-04-17 10:57:14 201

原创 线段树(该段求段+lazy)优化,洛谷之提高历练地,提高模板-nlogn数据结构

正文      这个东西挺简单的吧,线段树就不细讲了,主要讲讲lazy。      懒嘛~      如果当前覆盖整个区间,那么我们就用lazy把它那个值记录下来,然后,如果不是完全覆盖当前区间,那么我们就把它下放,乘的话那你就用一下乘法分配律搞一下即可#include<cstdio>#include<cstdlib>#include<cstring>i...

2018-04-17 10:47:46 182

原创 树状数组(改段求点) ,洛谷之提高历练地,提高模板-nlogn数据结构

正题      该段求点看似很难,如果我们可以一次性把i到n都加上某个数就好了~~      不难想到用差分的思想,我们每次处理一下当前这个数与前面一个数的差值,那么通过统计这个数组的前缀和就可以完成我们的操作。      比如说我们用一个diff[i]来表示i与i-1的差值,那么p[i]=sigma(diff[j])(j=[1~n]);想想是不是。      那么sigma这个操作我们用树状数组...

2018-04-17 10:30:30 208

原创 树状数组(改点求段) ,洛谷之提高历练地,提高模板-nlogn数据结构

正文      这题知道树状数组的肯定秒打咯~     我们首先要清楚lowbit(x)这个数组的含义,指的是,x最后的一个1及其后面的0组成的二进制数。如lowbit(1001001101100(2))=100(2)=4lowbit(1010101101010000(2))=10000(2)=16;      所以我们可以肯定的是lowbit一定是一个2的幂次方数。      在树状数组里面表示...

2018-04-17 10:15:47 212

原创 种树,洛谷之提高历练地,堆

正题      第五题:种树      这题看上去很烦,实际上也很烦。。。      那么我们第一个想到的就是用堆维护最大值。      我们把多步拆成多个一步来求解,当k=1的时候,那么答案就是最大值。      当k=2时,要么就是多选一个不相邻的,要么就是同时选相邻的,为什么旁边两个要么同时选要么同时不选呢?可能存在选其中一个再选与其不相邻的一个吗?很明显是不可能的,因为当前选出来的已经是最...

2018-04-16 11:42:57 163

原创 最小函数值,洛谷之提高历练地,堆

正题      第四题:最小函数值      我们还是仿照第三题的做法,我们先维护一个大根堆,使大根堆里面有m个元素,然后每次加入新的x,看一下是否小于堆顶,如果可以,那就更换堆顶,这样我们就可以保证是最小的m个,那么当没有元素可以加到堆内,就是我们的结束。#include<cstdio>#include<cstdlib>#include<cstring>...

2018-04-16 11:28:04 196

原创 序列合并,洛谷之提高历练地,堆

正文      第三题:序列合并      我们很容易就可以得到一个结论,将A,B从小到大排序后,可以满足A1+B1<=A1+B2<=A1+B3...      我们也可以满足A1+B1<=A2+B1<=A3+B1...      那么我们选出一个最小的,那么第二小的只可能存在于Ai+1 + Bj   或者   Ai + Bj+1;%%%      所以我们排一次序后,把A...

2018-04-16 11:18:09 239

原创 [HNOI2003]操作系统,洛谷之提高历练地,堆

正题      第二题:[HNOI2003]操作系统      我们看到了“优先级最高”这几个字,我们就想到了用堆来维护bool operator<(const node y)const{ if(rank==y.rank) return begin>y.begin; return rank<y.rank;} 我们这样就可以来维护优先级高的在前面先做,优先级一样高的先做到达时...

2018-04-16 10:55:04 228

原创 黑匣子_NOI导刊2010提高(06),洛谷之提高历练地,堆

正题      这题在维护第i大的值上运用了巧妙的方法。      第一题:黑匣子_NOI导刊2010提高(06)      我们用一个大根堆和一个小根堆来分别维护前i小的和剩余的,那么答案很明显,就是当前拥有前i小元素的大根堆的堆顶。我们每次把新的元素加入小跟堆,然后让大根堆和小根堆互换相斥元素。(就是小的往大根堆跑,大的往小跟堆跑)代码<注意操作>#include<cstdi...

2018-04-16 10:48:07 153

原创 [NOI2002]银河英雄传说,洛谷之提高历练地,并查集

正题      第四题:[NOI2002]银河英雄传说      这道题看上去很简单,做起来却对ij之间飞船的数量给搞混了。那么我们很容易就可以知道,要求ij之间的飞船个数,只要我们知道j前面有多少飞船,i前面有多少飞船即可,直接用abs(d[i]-d[j])-1即可。      恶心就恶心在维护d值上。      首先我们要讨论初始化,用d来记录i前面有多少个飞船,初始值设为0,that[i]来...

2018-04-15 16:38:12 247

原创 [JSOI2008]星球大战,洛谷之提高历练地,并查集

正题      第三题:[JSOI2008]星球大战      这道题的大意是,给出一些边,然后每次删去某些点,求删去点后的联通块。      我们当然想到的是:并查集的操作以加点为主(没见过删点)。。      然后我们就想到要倒过来做,我们假设现在已经删完点了,逐个加点进去判断是否在同一个联通块,用一个tot来记录当前联通块数量,明显每加一条连接两个不同集合的边,总集合数就会少1.然后把答案记...

2018-04-15 16:07:43 228

空空如也

空空如也

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

TA关注的人

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