自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

2333:jzqjzq的博客专栏

我的新博客:https://jzqjzq.coding.me/欢迎来玩!

  • 博客(180)
  • 收藏
  • 关注

原创 单调队列——Luogu3088 [USACO13NOV]Crowded Cows

https://www.luogu.org/problem/show?pid=3088 单调队列的裸题吧(虽然我好像也是第一次自己写出单调队列) 按照位置排序以后直接上两遍单调队列处理出前面和后面分别是否能够达到条件 其他我就不说了吧#include<bits/stdc++.h>using namespace std;struct ppap{ int x,y;}a[100001]

2017-04-14 08:42:34 384

原创 图论——BZOJ4239 巴士走读

http://www.lydsy.com/JudgeOnline/problem.php?id=4239 我们的4.12模拟赛T3 我写了很久又调了很久的spfa最后被硬刚到80分再也上不去了。。。 思路是把每辆车看做点,如果一辆车能换乘另一辆车就连上一条边 代码就不贴了吧(反正也看不懂) 网上看题解发现一种非常神奇的做法 我们维护到达每个点的最迟出发时间d和乘上每辆车的最迟出发时间di

2017-04-13 20:22:21 630

原创 hash——BZOJ4236 JOIOJI

http://www.lydsy.com/JudgeOnline/problem.php?id=4236 我们的4.12模拟赛T2 直接把J个数-O个数还有O个数-I个数用hash存一下历史最早值 如果发现原本hash值已有说明符合答案要求直接求出长度取max即可 map也可以#include<bits/stdc++.h>using namespace std;typedef long

2017-04-13 19:58:51 278

原创 树状数组——BZOJ4240 有趣的家庭菜园

http://www.lydsy.com/JudgeOnline/problem.php?id=4240 我们的4.12模拟赛T1 和找逆序对差不多。。。 把序列变成合唱队形差不多就行了 一开始的想法是直接左边逆序对数和右边正序对数合并找最小 这样只有10分QAQ。。。 正确的思路是直接找数i在前面的逆序对数和后面的正序对数取小累加 用树状数组维护一下,时间复杂度O(nlogn)#in

2017-04-13 19:53:47 247

原创 最小割——BZOJ1001 [BeiJing2006]狼抓兔子

http://www.lydsy.com/JudgeOnline/problem.php?id=1001 啊我还能说什么。。。 dinic网络流直接过了 那个建无向边时两个方向都建边权大小,这个我一开始没注意。。。 也没怎么深究那个转成最短路的东西 其实啊,转成最短路估计比直接暴力打网络流要简单吧。。。#include<bits/stdc++.h>using namespace std;

2017-04-11 20:25:04 379

原创 线段树/莫队——BZOJ1878/Luogu1972 [SDOI2009]HH的项链

http://www.lydsy.com/JudgeOnline/problem.php?id=1878 https://www.luogu.org/problem/show?pid=1972 隔了一段时间用新方法重做此题。。。 这个可以看做离线区间查询问题,一段时间以前,我把这题当做是线段树来做 具体思路:把询问按照右端点从小到大排序,然后一个一个插入 意思是说按照项链的真实情况插入

2017-04-11 08:19:35 371

原创 树套树——BZOJ3196/Luogu3380 二逼平衡树

http://www.lydsy.com/JudgeOnline/problem.php?id=3196 https://www.luogu.org/problem/show?pid=3380 tyvj原题:传送门 这么多乱七八糟的操作,交给平衡树好了 再加上区间,外面套个线段树好了 不过呢,可能我写得太渣了吧,splay一直TLE 没办法,换了个非旋式Treap搞搞掉算了。。。#inc

2017-04-10 10:29:03 326

原创 莫队——BZOJ3289 Mato的文件管理

http://www.lydsy.com/JudgeOnline/problem.php?id=3289 是离线的好开心啊 为什么说开心呢,这种题,碰到离线,就可以莫队了呀 求逆序对嘛,来发树状数组 首先我们可以求出1~i-1区间内比i大的数,然后前缀和搞搞就是啦 接下来交给分块莫队 ps:一开始T了n发找不到问题后来才发现是块搞错了。。。#include<bits/stdc++.h>

2017-04-07 18:49:25 275

原创 堆/平衡树——Luogu1801 黑匣子_NOI导刊2010提高(06)

https://www.luogu.org/problem/show?pid=1801 那个,这个标题一开始我以为是飞机上的黑匣子。。。 进入正题,输出第k小 我们来脑洞大开一下,因为k是递增的,所以过程相当于不可逆 那么我们可以考虑开两个二叉堆,一个小根堆,一个大根堆 我们限制大根堆的大小为k-1(即要求的第k小-1) 每次插入先入大根堆,如果大根堆大小超过k-1,把大根堆顶的数扔

2017-04-07 08:30:05 426

原创 树套树——BZOJ3110/Luogu3332 [ZJOI2013]K大数查询

http://www.lydsy.com/JudgeOnline/problem.php?id=3110 https://www.luogu.org/problem/show?pid=3332 带插入的区间k值啊。。。 这个啊,用主席树我不会做,这个我只会树套树 外层权值线段树,内层区间线段树 把k大改成k小很简单,取反即可哦 然后介绍一下思路 外层修改和查找时的过程等同于找链,类似于

2017-04-06 14:53:41 426 1

原创 主席树——BZOJ3673/BZOJ3674 可持久化并查集(加强版)

http://www.lydsy.com/JudgeOnline/problem.php?id=3674 据说3673因为没有加强版而直接用暴力水掉了? 用主席树可以搞出来一个可持久化数组,然后就可以干很多的事情…… 于是我们可以维护一个可持久化并查集 具体不说了 这里多维护一个深度就好了,其他没啥区别 然后居然没有数据范围?! 然后自己凑一下,大约10^7数组可以过 唉,毒瘤数据结

2017-04-05 21:35:08 474

原创 浅谈主席树和区间第k值

主席树,是一种高级数据结构,是线段树的高级形式 主席树的全名应该叫做可持久化线段树 顾名思义,这种数据结构可以持久化,也即可查询历史记录 至于为什么要把这种数据结构叫做主席树,我就不多说了(我是不会告诉你我其实也不知道啊) 首先声明:本贴中的修改指单点修改我们先来说说主席树的来源吧。 一开始的关于记录历史记录(也就是可持久化)的做法是:建多个线段树分别存储,然后直接找对应的线段树即可 但

2017-04-05 14:46:48 949

原创 二分图匹配——BZOJ1059/Luogu1129 [ZJOI2007]矩阵游戏

http://www.lydsy.com/JudgeOnline/problem.php?id=1059 https://www.luogu.org/problem/show?pid=1129 我们可以很快的把这题转化成二分图匹配 具体我不多说了。。。 然后直接上模板(我发现我以前写的是假的dinic) 具体见前一篇飞行员匹配:http://blog.csdn.net/jzq233jzq/

2017-04-03 21:48:08 286

原创 暴力——BZOJ2241/Luogu2484 [SDOI2011]打地鼠

http://www.lydsy.com/JudgeOnline/problem.php?id=2241 https://daniu.luogu.org/problem/show?pid=2484 暴力模拟即可 我们可以直接枚举r和c,然后暴力按题意判断。。。 再加个附加判断:最优和能够打完全部地鼠 这样居然是能AC的。。。 时间复杂度:额。。。玄学吧 (算了这种水题少刷一点。。。)#

2017-04-03 21:27:51 324

原创 SPFA——Luogu1073 [NOIP2009]最优贸易

https://www.luogu.org/problem/show?pid=1073 首先能够买进卖出的地点一定与起点和终点连通 我们可以从起点正向SPFA找出在可以走到的范围内能够买进的最小代价,然后从终点反向BFS找出哪些点能够走到终点,最后的答案是:max(本地代价[i]-买进最小代价[i])(i能够走到终点)然后SPFA模板改一下好了#include<bits/stdc++.h>us

2017-03-31 15:59:51 400

原创 数学——Luogu1072 [NOIP2009]Hankson 的趣味题

https://www.luogu.org/problem/show?pid=1072 首先关于最大公约数和最小公倍数的一个很重要的定理:gcd(a,b)*lcm(a,b)=a*b;这个东西在这里是个很有用的东西 我们来推一下公式: x 和 b0 的最小公倍数是 b1,即lcm(x,b0)=x*b0/gcd(x,b0)=b1 继续转化公式得:gcd(x,b0)=x*b0/b1 从这里

2017-03-31 15:29:14 326

原创 K短路——BZOJ1975/Luogu2483 [SDOI2010]魔法猪学院

http://www.lydsy.com/JudgeOnline/problem.php?id=1975 https://daniu.luogu.org/problem/show?pid=2483 首先我们要想到把这题转化成求k短路 这个怎么说呢。。。先看题目一句话 iPig 的总能量是有限的,所以最多能够转换的样本数一定是一个有限数既然要求每种转换方式都不相同,那就不可能是最短路然后贪

2017-03-31 09:31:12 1206

原创 MST——BZOJ1016 [JSOI2008]最小生成树计数

http://www.lydsy.com/JudgeOnline/problem.php?id=1016 我们来分析一下这个最小生成树 如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的 因为说相同边权的边的编号不影响最小生成树的大小,这个我们就可以算进多个答案了 所以我们可以先把边排序,跑一遍Kruskal记录一下相同边权的边对答案产生影响的数目还有起始终止位置(排序后)

2017-03-31 09:08:44 325 1

原创 最短路——BZOJ1656 [Usaco2006 Jan] The Grove 树木

http://www.lydsy.com/JudgeOnline/problem.php?id=1656 题目可能没讲清楚(或者没翻译清楚),这个树林是一个连通块 因为要绕树林一圈求最短路,我们可以任意取一棵树,然后向下画一条射线表明一条关键的分界线 每个点记录两个状态,1表示走过这条分界线一次,0表示没走过这条分界线 然后分别记录最短路 走过了才有可能绕

2017-03-29 22:25:02 498

原创 搜索+剪枝——CODEVS1288 埃及分数

http://codevs.cn/problem/1288/ 我不知道这到底算是IDA*还是迭代加深DFS+剪枝。。。 应该是后者吧 我们可以直接暴力找出小于目前数的最小分子为1的分数 但是这个枚举可能无限 我们来一个不知道是不是剪枝的东西 if(b*(rp+1-p)<=a*i)break;如果接下来累加分数还要小于答案那么直接返回就好了 然后限制一下层数 最后关于一个数据的坑点

2017-03-29 16:15:47 314

转载 搜索——BZOJ3990/Luogu3322 [SDOI2015]排序

http://www.lydsy.com/JudgeOnline/problem.php?id=3990 https://www.luogu.org/problem/show?pid=3322 部分文字转自lc233,博主添加文字会另外注明 http://blog.csdn.net/largecub233/article/details/67633368 假设分块的长度是2^i 那我们把i

2017-03-29 09:15:56 354

原创 搜索——BZOJ3632 外太空旅行

http://www.lydsy.com/JudgeOnline/problem.php?id=3632 sb的博主表示再次被C++的恶心之处坑到了 (博主:看来还是P党大法好) 有两种做法:蒙特卡罗随机+贪心(我好像以前xjb写过不过肯定不会写啊。。。博主这么蒻)状态压缩暴搜+最优性剪枝我很聪明地选择了第二种 首先我们发现n<=50,而2^50并不会爆long long 所以我们以

2017-03-28 20:52:07 325

原创 折半搜索+hash——CODEVS1735 [NOI2001]方程的解数

NOI2001的题可以搜索A掉啊 http://codevs.cn/problem/1735/ 看到数据有点萎。。。因为暴搜的时间复杂度150^6 那么试试折半搜索???我们把全部数折半(前n/2个和后n/2个)然后分别暴搜 前半部分的答案可以保存在hash表中,方便与后半部分合并 时间复杂度完美优化到150^3 然后hash的模数再好好注意一下 然后就结束了#include<bits/stdc

2017-03-28 14:58:01 356

原创 IDA*——BZOJ2824/Luogu2534 [AHOI2012]铁盘整理

http://www.lydsy.com/JudgeOnline/problem.php?id=2824 https://www.luogu.org/problem/show?pid=2534 IDA*好题啊 这题可以想到搜索 但是我是一开始没有想到这个估价函数啊。。。 最优性剪枝:直接估价可以选“相邻点差值>1的对数”,实际所需步数是不小于这个估价的。 很巧妙是不是>_<(其实很显然啊

2017-03-28 10:02:11 654

原创 贪心——Luogu1315 [NOIP2011]观光公交

https://www.luogu.org/problem/show?pid=1315 这是一题贪心题 首先在不放加速器的时候所有乘客的旅行时间总和是一定的。。。 因为每个站的出发时间一定是本站最后一位乘客上车时间(好吧不一定也有可能最后一名到了车还没到。。。) 所以应该是max(本站最后一位乘客上车时间,车到站时间)我们需要合理地安排加速器使所有乘客的旅行时间总和最小 那么这个加速器啊就

2017-03-27 20:51:07 360

原创 浅谈矩阵乘法

先来一段百科 矩阵乘法是一种高效的算法,可以把一些一维递推优化到log(n ),还可以求路径方案等,所以更是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。一个矩阵说穿了就是一个二维数组。一个n行m列的矩

2017-03-27 15:39:14 457

原创 树形DP——BZOJ1060/Luogu1131 [ZJOI2007]时态同步

http://www.lydsy.com/JudgeOnline/problem.php?id=1060 https://www.luogu.org/problem/show?pid=1131 怎么说呢,看懂了明白了以后呢就变得很简单了 题目给定了根,因此我们只需要从根开始遍历 我们可以定义状态:f[i]表示从第i个节点到叶子结点的最长距离 叶子结点f[i]为0 其他结点的状态转移方程是

2017-03-27 14:10:39 329

原创 DP——Luogu2563 [AHOI2001]质数和分解

https://www.luogu.org/problem/show?pid=2563 比较裸的动态规划 完全背包嘛 我们可以把质数先给筛出来(不要看我用了欧拉筛,其实在这道题等于大材小用)然后直接DP 状态转移:f[j]+=f[j-pri[i]](pri是质数) 设个边界条件f[0]=1就好啦#include<bits/stdc++.h>using namespace std;int

2017-03-27 09:14:25 571

原创 AC自动机——Luogu3121 [USACO15FEB]审查(黄金)Censoring (Gold)

https://www.luogu.org/problem/show?pid=3121 这题嘛。。。AC自动机 我们在匹配的时候可以开一个栈,一开始栈内为空,匹配时依次加入字母的位置,当匹配完成时把这个单词弹出继续操作就好了 其他没啥变化 具体看这段代码啦inline void getans(int l){ int now=0; for(int i=1;i<=l;i++){

2017-03-26 19:46:53 379

原创 并查集/DFS——BZOJ1529/Luogu3420 [POI2005]SKA-Piggy Banks

http://www.lydsy.com/JudgeOnline/problem.php?id=1529 https://www.luogu.org/problem/show?pid=3420 从POI找到一题比较水的。。。 题目意思其实可以很快的转化成求连通块个数 所以我们可以用灌水或者并查集很快地解决 先贴并查集:#include<bits/stdc++.h>using namesp

2017-03-26 19:29:02 233

原创 计算几何瞎暴力——Luogu1227 [JSOI2008]完美的对称

https://www.luogu.org/problem/show?pid=1227 比较水的省选题了。。。 有以下几个既定事实此题若想完美对称,则对称点一定只有一个(很显然对吧)若1成立,这个对称点确定为最中间两个点的对称点(如果是奇数个点即为最中间的那个点)所以我们可以为坐标进行双关键字排序(横纵坐标从小到大)然后取中间点的对称点暴力判断即可 其实啊,更方便的是选第一个点和最后一个

2017-03-26 17:44:31 384

原创 线段树——BZOJ1012/Luogu1198 [JSOI2008]最大数

http://www.lydsy.com/JudgeOnline/problem.php?id=1012 https://www.luogu.org/problem/show?pid=1198 经典老题现在才AC。。。 这题方法很多,有单调栈,有线段树,有树状数组…… 我是用线段树写的 其实就是胜者树求区间最大 我们建一棵大小为m的线段树,然后插入节点和询问都是模板了#include<b

2017-03-24 11:06:06 311

原创 IDA*——Luogu1379 八数码难题

https://www.luogu.org/problem/show?pid=1379 很经典的一道题现在才AC。。。 和骑士精神那题差不多 IDA*嘛,限制搜索层数然后启发式搜索。。。 一个最优性剪枝:计算每个方块(空格除外)与目标位置的横纵坐标之差的绝对值之和m,如果m不足以在k步之内走到目标位置,剪枝 然后就可以愉快地AC了#include<bits/stdc++.h>using

2017-03-24 10:31:45 381

原创 ZJOI2017一试酱油试水记

坐等zyy初三dalao省选90分 我就是去试水的。。。day0(3.20) 早上在sxyz机房做了一题二分图(见前面题解) 感谢(a掉)lzq提供帮助。。。 中午草草的吃完饭坐车去温州一个下午车程,块状链表似的隧道一个接一个,风景还是不错的 到温州发现红太阳宾馆没房间了。。。 ∑表了一顿宾馆的人以后我们换到了一个对面的四星级酒店 。。据∑说这是历届住过的最好酒店。。 去温州中学吃晚

2017-03-24 09:35:05 1461

原创 IDA*——BZOJ1085/Luogu2324 [SCOI2005] 骑士精神

从ZJOI2017讲课学来的新东西。。。 这题也就是启发式搜索(或者称A*) 。。哦不对,是IDA*(迭代加深启发式搜索)我们找到空位置以后直接搜索状态直到目标状态 但是显然的,暴搜是过不掉这题的 一个最优性剪枝:计算不在目标位置的骑士个数m,如果m不足以在15步范围内把所有骑士归位,剪枝(写出这个DFS就升级成为A*了) 但是这样好像还是会T啊(不过我没试过) 题中有说,步数大于15步

2017-03-24 08:27:43 554

原创 二分图匹配——Luogu2756 [网络流24题]飞行员配对方案问题

https://www.luogu.org/problem/show?pid=2756 二分图匹配的裸题 不过我不会匈牙利算法。。。。 于是我打了个dinic最大流过掉了 具体做法就是设一个超原点和一个超汇点, 然后超原点与每一位外籍飞行员连一条流量为1的边 超汇点与每一位英国飞行员连一条流量为1的边 然后跑一遍最大流就好了。。。记录方案我卡了很久 在此感谢lzq大佬指教(woc把我

2017-03-20 10:49:07 359

原创 胜者树(线段树RMQ)——Luogu1816 忠诚

胜者树是一种特殊的线段树 这个东西支持查询区间查询极值,修改某值 听老师说这个东西可以代替二叉堆。。。 和线段树写法一样的 我们以找区间最小值为例 建树:void build(int l,int r,int nod){ if(l==r)t[nod]=a[l];//叶节点 else{ int m=(l+r)/2;//中间点 build(l,m,

2017-03-17 15:15:40 315

原创 Trie——Luogu2292/BZOJ1212 [HNOI2004]L语言

https://www.luogu.org/problem/show?pid=2292 http://www.lydsy.com/JudgeOnline/problem.php?id=1212 一题Trie字典树 这题原本标算是AC自动机!!!(好像说是因为文章长度有1M) 其实也不用AC自动机,Trie上面乱搞也能过。。。 (会不会是出题人为了吓吓人写了文章长度233) 我们开个数组f

2017-03-17 14:38:07 290

原创 NOIP普及2016悲惨翻车记

其实博主一直是个蒟蒻。。。初赛(day -……(我没数过)) 想当年刷pj,初赛都过不了。。。。(就差2分还是3分) 今年(应该是去年),总算是考进了复赛,不过也只有93QAQ 要知道,zj分数线一向很高 前年却因为指针炸掉(从此以后我曾发誓好好学指针到现在还是不会用。。。) 最后程序填空二分最后答案填错55555……复赛(day1)AM 因为pj是下午开赛,我们上午八点从sx去衢州

2017-03-17 11:08:27 818 2

原创 Trie——BZOJ4567/Luogu3294 [Scoi2016]背单词

http://www.lydsy.com/JudgeOnline/problem.php?id=4567 https://www.luogu.org/problem/show?pid=3294 比较有趣的Trie题目之一(而且还挺新的) 我们可以按照各串的后缀建一棵Trie树,然后dfs序遍历出需要的点并标记(指那些位于各串结尾的节点,这些是有用的) 接着我们来考虑题目中的三种情况:如果存

2017-03-17 09:51:12 431

空空如也

空空如也

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

TA关注的人

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