自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OZY的博客

lalal

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

原创 bzoj3517: 翻硬币

思路很妙的一道题啊!! 首先每个格子只能翻一次,这个小学生都知道 于是一开始我想跑广搜。。但1000*1000的地图肯定不行啦。。 所以我们假定最后要翻成00,那么对于每一个格子,翻还是不翻设为x[i][j]x[i][j],可以得到以下方程: x[1][j]x[1][j]^x[2][j]x[2][j]^……^x[n][j]x[n][j]^x[i][1]x[i][1]^x[i][2]x[

2017-07-31 20:56:15 387

原创 bzoj2241: [SDOI2011]打地鼠

这题的话,先是暴力很容易想到 然后加点判断,可以使复杂度小很多 然后本来还想加个二维树状数组的优化的。。 但由于数据水就没有这个必要了#include<cstdio>#include<cstring>const int MAX=1<<30;const int N=105;int a[N][N];int A[N][N];int n,m;int sum=0;int ans=MAX;

2017-07-31 17:07:34 355

原创 bzoj1821: [JSOI2010]Group 部落划分 Group

一看就是二分加乱搞嘛。。 一开始想的是二分这条边是不是答案 但是仔细想想,好像不太行。。 因为这条边不行,前面可能可以。。不满足二分性 于是我们换个角度看问题,我们二分的不是这条边,而是这条边的值行不行 这就满足二分性了#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<iostre

2017-07-31 16:30:15 333

原创 bzoj1853: [Scoi2010]幸运数字

这题其实不是很难 我们通过观察可以发现,其实幸运数字很少,大概就是2^10个 那么我们可以吧幸运数字全部弄出来。。 那么剩下怎么办呢。。 容斥原理啊!! 于是我就不是很会了,因为我不是很会用容斥原理求多个。。 于是我就去补了一发。。 http://blog.csdn.net/qq_36797743/article/details/76445451 然后我就开始写了。。 于是T了一发

2017-07-31 15:47:15 239

原创 容斥原理

之前知道简单的容斥原理。。但是多个还真的不是非常会。。今天遇到了一个题,就卡在这里了。。 于是去补了一发问题提出给出范围n 然后给你m个数 问你在1~n这个范围类,满足i是m个数中其中一个数的倍数的i个个数解法常见的写法有三种,dfs,队列数组,位运算。 然后队列数组没找到怎么写。。void dfs (LL x,LL now,LL lalal)//现在的值是多少 取到第几个数了

2017-07-31 15:42:33 342

原创 bzoj1801: [Ahoi2009]chess 中国象棋

挺好的一个DP题 我们可以知道每行每列只要不超过有2个跑就是和法的#include<cstdio>#include<cstring>typedef long long LL;const LL N=105;const LL MOD=9999973;LL f[N][N][N];//前i行 有j列是没有棋子的 有k列是有一个棋子的有多少种方案LL n,m; int main()

2017-07-31 12:43:56 211

原创 bzoj2132: 圈地计划

网络流好题。。 和happiness很想 然后大概想到等效建图。。 于是我又没有弄出来。。 做那题的时候太久了。。已经哈哈 首先将图黑白染色,使(i+j)&1的为白点X,其他为黑点Y,满足白/黑点集之内无相邻关系。 对于白点,连边(S,X,A)(X,T,B) 对于黑点,连边(S,Y,B)(X,Y,A) 两相邻黑白点之间连无向边(CA+CB) 表示

2017-07-30 17:35:05 276

原创 bzoj1221: [HNOI2001] 软件开发

感慨:网络流的题真是神奇啊 一开始拆点,想了几个建法,但不知出了这个问题就有了那个问题。。 于是看了看题解 1、从S向每个Xi连一条容量为ri,费用为0的有向边。 2、从每个Yi向T连一条容量为ri,费用为0的有向边。 3、从S向每个Yi连一条容量为无穷大,费用为p的有向边。 4、从每个Xi向Xi+1(i+1<=N)连一条容量为无穷大,费用为0的有向边。 5、从每个X

2017-07-30 16:55:44 292

原创 bzoj 1433: [ZJOI2009]假期的宿舍

感觉最近做水题做得太多,整个人会不会也变水啊。。 这题就建下图,跑最大流,然后看看是不是满流就好了#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<algorithm>const int M=500000;const int N=200;const int MAX=1<<30;usi

2017-07-30 16:07:09 158

原创 bzoj4956: I

月赛的zz题*2 就搞一个表。。然后用Floyd弄一下连通性就好了。。 然后全部都是暴力。。#include<cstdio>#include<cstring>int m,n;bool g[30][30];int P (char x){return x-'a'+1;}void solve (){ char s1[55],s2[55]; scanf("%s%s",s1,s

2017-07-30 15:21:51 300

原创 bzoj 4952: E

月赛的水题啦。。 一看就是二分答案嘛。。然后暴力check 但是答案的范围的话可以乱开。。 但我算了一下,我觉得是±2∗106±2*10^6 这个大家可以想一下为什么然后一开始敲漏了一个0,WA地我怀疑人生#include<cstdio>#include<cstdlib>#include<cstring>const int N=1005;int n;double t;double

2017-07-30 15:04:32 357

原创 bzoj 3624: [Apio2008]免费道路

这题一看,不是一句话题意,不想做。。 题意就不说了吧。。 首先想到的肯定是最小生成树。。 然后我就想起了以前的某道题。。好吧,记不大清了。。那么怎么做呢?我一开始的想法是贪心替换。。 就是先把图构好,然后用0去换1 也就是先把全部1跑一次,然后把0跑一次,先把必要的0拿出来,然后再在剩下的0里面选替代1的。。 然后随手给自己的替代方法举了个反例。。 那怎么办呢 首先把,第一步中不要的

2017-07-29 21:26:36 279

原创 bzoj2561: 最小生成树

挺好的一道题。。 因为要是他连通的两个点有别的方式连通比他优的话,他就不会被选到 所以把比他优的边放到图里,跑最大流就好了。。 一开始还开了单向边WA了几发。。#include<cstdio>#include<algorithm>#include<queue>#include<iostream>#include<cstring>using namespace std;const i

2017-07-29 16:58:47 216

原创 bzoj 2144: 跳跳棋

顶级大神题QAQ 完全没思路了这次。。然后就去膜了题解。。感觉我很诚实啊 感觉真是神奇啊。。我们先把棋子排序,这样好搞一点 首先,题目有要求,不可以跳过别人 那么这也就是说,两边的棋子只有一个是可以动的,但是中间向左向右跳都可以 当然,也有左右都不能动的情况 所以一个点就有三种扩展方式啦! 然后动的方式是可逆的,这个没有问题。。 于是问题可以想象为一棵树,向上跳是两旁的跳,然后儿子就

2017-07-29 16:09:22 343

原创 bzoj1149: [CTSC2007]风玲Mobiles

这题的突破口就是高度不能相差超过1.。 于是就可以随便做了#include <cstdio> #include <cstdlib> #include <iostream> const int MAX=1<<30;const int N=100005;int l[N],r[N];int maxx=-MAX,minn=MAX;int mymax (int x,int y) {ret

2017-07-29 12:00:39 298

原创 bzoj 1797: [Ahoi2009]Mincut 最小割

是又是一道好题啊!首先,我觉得可以很容易可以想到一个O(m∗玄学)O(m*玄学)的复杂度,但对于这一题,每条边都跑一次肯定是不现实的做法。。 然后我就不会了于是去看题解。。发现居然有结论。。 我就把结论总结一下吧结论1(用于解决第一问):对于一条边,要是有一种割集包含他的话,那么他肯定是满流的。但如果他是漫流的,不一定有一个割集包含他。证明: 我们先证明:如果一条边不是满流的,那么肯定没有割集

2017-07-29 11:13:13 278

原创 [Noi2017]游戏

2-SAT的题啦 考虑到x很小,我们只需要暴力枚举x是什么就好了,然后每个点就两种状态,2-SAT模型啦! 总的复杂度O(3d∗n)O(3^d*n) 然后呢,建图的时候,将一些边建好,剩下的与x有关的到时候再建,可以减少很多复杂度。。要不可能会超。。但是uoj的数据一般般,不这么做也行,然后bzoj根本就没有spj然后我这个写法不是哪里出了一点点小问题,uoj95分,还有一个点WA了。。看了半

2017-07-28 18:06:22 358

原创 bzoj 2843: 极地旅行社

树链剖分

2017-07-28 15:03:31 270

原创 bzoj 1997: [Hnoi2010]Planar

也是一个2-sat的题。。 然后注意这题是双向边,所以并查集搞搞就好了,TJ都不用写了 但是我这代码不知道为什么WA1了。。留坑。。 反正方法是这样了#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;const int N=10005*2;const i

2017-07-28 11:37:39 290 2

原创 bzoj 1823: [JSOI2010]满汉全席

2-SAT的大水题啊! 因为每一个材料只有两个可能,于是就很模型了啊。 模型是两个不可以都不选 模型二:两者(A,B)不能同时不取 那么选择了A’就只能选择B,选择了B’就只能选择A 连边A’→B,B’→A于是就可以很愉快地做出这题啦!#include<cstdio>#include<cstring>const int M=1005*2;const int N=105*2

2017-07-28 10:43:33 294

原创 bzoj1831: [AHOI2008]逆序对

这题吧,一开始以为有什么对于填的数字的结论,但是想来想去,觉得还有很多没填的数字会造成影响,于是不行。。看了下题解,是序列有结论那我们就继续想啊! 如果有两个位置a和b,a在b前面 a填了x,b填了y,要是x比y小的话,要是把x和y交换的话,逆序对肯定会变多 这个很好证的,我就不证了。。 乱七八糟地推导一下,就发现是一个递增序列 这样的话就可以DP了 时间的话是O(nk)O(nk),具体

2017-07-27 22:13:04 293

原创 bzoj 3208: 花神的秒题计划Ⅰ

这题就是一个大大大水题。。 全部都是暴力就可以了啊啊啊啊啊然后一开始我想了一个可以应为三个修改都很多,但询问少的。。 对于C操作,就直接搞,O(1)O(1) 对于B和S操作,我们可以弄一个二维的树状数组,被维修就+1,解除就-1,然后快速查询一下这个点是不是0就好了。。但这个方法不可以有重叠,要是有重叠的话要不能按时间顺序。。似乎要求有点多,但是肯定还可以优化的啦!! 这样的话只要询问少,什

2017-07-27 20:47:50 326

原创 字符串难题

这道题是我出的啦。。 一开始是给小朋友做得暴力题。。于是我改造了一下。。题目描述:给出n个字符串,求只出现在k个字符串中的子串最长有多长输入描述第一行两个整数n,k接着下来n行,每行一个字符串,全部由小写字母组成输出描述一个数,表示有多长样例输入3 2abckdeabcdeabc样例输出2样例解释答案为de。abc虽然很长,但是出现在了三个子串中,所以不能当作答案数据范围2

2017-07-27 17:31:49 615

原创 poj3683

题意:有n对新人要举行仪式,每对都有两个时间段可以选择,问是否可以所有新人的仪式时间不重叠 然后还要输出方式今天听智杰dalao说今年noi考了2-sat 然而我听都没听过TAT。。 于是今天下午就去颓了一下下 是真的在颓要学的人可以看看这篇吧,挺好的。。 http://blog.csdn.net/jarjingx/article/details/8521690其实我看的不是很认真因为我在颓

2017-07-27 17:25:31 318

原创 bzoj 1483: [HNOI2009]梦幻布丁 线段树合并

题意很简单,但是没有数据范围,这就是这题最难的地方考虑线段树合并。。 就是随便搞搞 相信大家都会。。就是这个数据范围很坑爹。。。经过我无限WA和RE 我得出了以下结论: 1.数字可以很大 2.n不超过10W 3.询问非常非常多,比10W不知道高到哪里去了通过结论1和2,我们知道可以用离散化 然后由由于性质3,上面一句作废,因为我开了100W的数组都没装下这个东西。。也可能是我的姿势不对

2017-07-27 13:36:46 534

原创 bzoj 3562: [SHOI2014]神奇化合物

大水题来啦!! 就是一个暴力题啊!!! 一开始想到了。。。 但是由于我太弱了,觉得10000*10000会超时,于是就GG了。。 不知道为什么。。我都做了这么多题了。。还不是非常清楚多少复杂度会超时。。看来还是我太弱了啊这题的解法: 离线缩点啊!!! 然后因为询问少,所以有些边是永远在的,吧这些搞着先就好了 时间O(q∗q+q∗n)O(q*q+q*n)code:#include<cst

2017-07-27 10:22:15 341

原创 bzoj4933: 妙

这题做了挺久,反正我不会做,一开始以为是可并堆。。然后不会 哈哈,去请教了Claris大佬 以下是一个悲伤的故事 Claris: K短路但是我这么菜。。看了一脸懵逼啊(其实那时候我连K短路都不会) 于是我就说,能不能详细点 Claris:把树转成图 然后求K短路好吧QAQ,上面就是详细版本了,莫名感觉被D飞。。能不能再详细一点啊【不要脸】 于是Claris无奈地给了画了一张

2017-07-26 15:33:09 541

原创 偏离路 k小路模板 poj2449Remmarguts' Date

首先呢,前几天学了A*算法来弄k小路。。 但是我很快就发现A*实在是太慢太慢太慢了。。 完全是可以被卡到O(nk)O(nk)的 又由于题目的需要,这样的复杂度已经无法满足我们的需求 于是就去学了另外的方法,但由于网上的资料实在是少之又少。。 于是我就去找了一下大牛 感谢Claris大佬!百忙之间抽空给了我论文与他的模板!!非常感谢!! 论文名字是《俞鼎力-堆的可持久化与k短路》,想学的

2017-07-18 16:33:27 457

原创 1598: [Usaco2008 Mar]牛跑步 A*方法

题意就是求第k短路。。 特地找的这道题来做 至于怎么找,就是A* 不会A*的朋友不要慌,因为我也不会。。 定义看看就好 f(n)=g(n)+h(n) f就是估价函数 正确性显然,主要是怎么弄出后面两个 我们从n点出发,当到达i点时 g值就是现在的路程 h值就是他最少还要多少距离才能到终点 当然,我也有疑惑,这个h有什么用啊! 其实你只要想一下,你现在走的远,不一定就不优

2017-07-17 15:20:32 407

原创 3931: [CQOI2015]网络吞吐量

这是一道水题。。 题意有点羞涩难懂,自己慢慢看吧。。 只需要一开始跑最短路然后建图网络流就好了。。 然后呢,最短路可以有多条,一开始我的做法比较傻,开了个数组来存。。 然后时间很慢,空间很大,编译TLE了#include<cstdio>#include<queue>#include<algorithm>#include<cstdlib>#include<cstring>using

2017-07-16 17:29:58 218

原创 3174: [Tjoi2013]拯救小矮人

今天晚上本来是做作业的。。。但是手痒又来敲了一题。。。作业当然就没做了。。。早知道晚上想打题还不如打CF。。然后就开始看这题了,一眼——智障模拟题嘛。。于是开始码码码。。。 肯快就码玩了。。还手动除了几个样例,感觉很对啊,于是就叫了。。 WA。。。WA。。。。还是WA。。。。。 QAQ这评测机子有毒吧。。。 当时我用的是这份代码(变态的我已经全部加了LL)#include<cstdio>#

2017-07-15 22:01:07 248

原创 2809: [Apio2012]dispatching

没写完,占坑#include#include#define swap(x,y) {int tt=x;x=y;y=tt;}const int N=100005;int n,m;int b[N],c[N];//薪水 领导力 struct qq{int x,y,last;}e[N];int num,last[N];void init (int x,int y){ num++;

2017-07-15 17:02:24 293 1

原创 bzoj 1367: [Baltic2004]sequence

左偏树的大难题。。 只能逼自己看论文咯,我有什么办法啊 这个的话,我建议可以看ppt,感觉ppt比word那个稍微好一点点。。至少有图 然后就没什么了。。 哦,还有一个常用的技巧,看代码吧,有注释#include<cstdio>#include<cstring>typedef long long LL;#define swap(x,y) {int tt=x;x=y;y=tt;}con

2017-07-15 16:20:00 353

原创 有关左偏树的使用与理解

合并操作这是属于一个左偏树的基本操作了吧。。这里就不做解释了 时间O(logn)O(logn)int Merge (int x,int y){ if (x==0) return y; if (y==0) return x; if (v[x]>v[y]) swap(x,y);//保证x可以做根 r[x]=Merge(r[x],y); if (d[r[x]]>

2017-07-15 14:54:25 393

原创 bzoj 1455: 罗马游戏 左偏树入门

左偏树第一题,纪念一下 大概讲一下左偏树吧。。 首先它是一个可以合并的堆,因此是可并堆的一种 什么叫可以合并呢 就是说现在给你两个堆,我现在要你将他们合并起来,变成一个新的堆 要是一般的写法我们是要讲所有数拿出来,再重新插进去 但很显然这样的时间是过不去的。。 于是就有了这个东西 至于可并堆别的实现方法,(⊙v⊙)嗯,还不会。。至于为什么叫左偏树呢,就是因为他左偏的性质 左偏啊,就

2017-07-15 11:54:34 331

原创 bzoj 4152: [AMPPZ2014]The Captain

这题的话大概就是一个最短路。 一开始我想先按x排序,接着推过去,但是发现有点慢。。 因为我可能要扫很多地方 那我们不妨再把y排序,也推过去。。 但似乎问题没有解决 上面都是废话 最后我们发现一个点只与与他x,y坐标相邻的点可能有贡献。 于是就连边跑SPFA 但是似乎这题的人卡SPFA,所以要加一个堆优化 code:#include<cstdio>#include<iostream

2017-07-14 15:28:56 298

原创 bzoj3879: SvT 后缀自动机

这一题看了一下,首先反应SAM,肯定是最近SAM做的太多了。。 那么lcp自然就是倒串求LCA啊 嗯,感觉很对 接着再一看,数据有点大 好像不太好。。 那我们有虚树啊! 于是这题就成功地水过去了 感觉这题好题啊,把我最近学的东西都用上了,当然没有线性基。。 但这也说明我最近学得都很扎实,大概可能可以熟练运用了#include<cstdio>#include<cstdlib>#in

2017-07-14 12:59:15 448

原创 bzoj 4004

大概写一下吧。。其实主要判断的思路就是一个高斯消元你每放一个数进去就消一下接着维护一个类似于线性基的东西然后这题要卡精度,开long double和1e-6就好了。。code: #include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;iostream&gt;#include&lt;cstring&gt...

2017-07-14 11:06:34 279

原创 4917: Hash Killer IV

今天晚上本来是做作业的。。。但是手痒又来敲了一题。。。作业当然就没做了。。。早知道晚上想打题还不如打CF。。然后就开始看这题了,一眼——智障模拟题嘛。。于是开始码码码。。。肯快就码玩了。。还手动除了几个样例,感觉很对啊,于是就叫了。。WA。。。WA。。。。还是WA。。。。。QAQ这评测机子有毒吧。。。当时我用的是这份代码(变态的我已经全部加了LL)#include#includetyped

2017-07-14 10:01:39 356

原创 4568: [Scoi2016]幸运数字

又是一道线性基的题目。。我们只需要对这棵树维护一个倍增的线性基就可以了,方法类似于LCA的求法至于怎么合并两个线性基,我们只需要将两个基的全部数字拿出来,然后在重新插进去一个新的基就可以了注意细节。。我一开始因为数组开小了还WA了一发。。code:#include#include#define swap(x,y) {LL tt=x;x=y;y=tt;}typedef

2017-07-14 09:58:08 361

空空如也

空空如也

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

TA关注的人

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