BZOJ
文章平均质量分 55
NotFound1
这个作者很懒,什么都没留下…
展开
-
|BZOJ 2199|2-SAT|[Usaco2011 Jan]奶牛议会
BZOJ传送门 luogu免权限地址 2-SAT模板题,用2-SAT建图后,枚举每个议案能否通过#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std;原创 2017-02-04 23:20:37 · 820 阅读 · 0 评论 -
|BZOJ 2763|最短路|[JLOI2011]飞行路线
BZOJ 2763分层图最短路注意:priority_queue默认排序序列是从大到小的,所以重载小于符号时要a>b 以后权值一律写w,不要用v或c!#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>#define fo(i, j, k) for (i=(j);i<=(k)原创 2017-05-20 23:19:19 · 458 阅读 · 0 评论 -
|BZOJ 1649|二维背包|[Usaco2006 Dec]Cow Roller Coaster
BZOJ 1649 Luogu 2854 from: USACO 2006 Dec Sliver(USACO刷题第10题)显然是二维费用01背包。 但是直接做会超时,而且还有连接的限制。 根据题意可以知道只有在wi[i]+xi[i]=jwi[i]+xi[i]=j才需要考虑转移 那么我们设f[i][j]f[i][j]为铺到ii,成本为jj的最大有趣值 那么有下列转移方程 f[xi[i]+原创 2017-06-16 19:13:06 · 432 阅读 · 0 评论 -
|BZOJ 1634|贪心|[Usaco2007 Jan]Protecting the Flowers 护花
BZOJ 1634 Luogu 2878 from: USACO 2007 Jan Sliver(USACO刷题第11题)刚开始naive的认为比较函数是第一关键字dd第二关键字tt,狂炸的我..对于两头牛a,ba, b,他们的先后顺序不影响其他牛吃花的个数 那么考虑 aa在bb前面,那么吃的花为2∗d[b]∗t[a]2*d[b]*t[a] bb在aa前面,那么吃的花为2∗d[a]∗t[b原创 2017-06-16 19:49:10 · 531 阅读 · 0 评论 -
|BZOJ 1635|差分序列|[Usaco2007 Jan]Tallest Cow 最高的牛
BZOJ 1635 Luogu 2879 from: USACO 2007 Jan Sliver(USACO刷题第12题)之前看完题目想到差分约束,然后是个区间不知道怎么搞。。看完题解是差分序列。。 差分序列和差分约束并不是毫无关系啊。。差分约束运用于两个元素,差分序列运用于区间。。本题对于每个约束a,ba,b,如果a>ba>b,显然,交换不会影响结果 我们设f[i]f[i]为差分序列,然后原创 2017-06-17 11:37:37 · 605 阅读 · 0 评论 -
|BZOJ 1633|字符串DP|[Usaco2007 Feb]The Cow Lexicon 牛的词典
BZOJ 1633 Luogu 2875 from: USACO 2007 Jan Sliver(USACO刷题第13题)刚开始根本没想到DP,什么kmp,AC自动机,后缀数组都想了。。看了题解才知道 解决字符串的几大武器:(字符串DP,字符串Hash,KMP,AC自动机,后缀家族……)本题设f[i]f[i]为给定串前ii个字符进行处理后最少删除的字符数。 刚开始想了个超时的方法。。然后发现原创 2017-06-17 17:17:11 · 617 阅读 · 0 评论 -
|BZOJ 3531|树链剖分|动态开点线段树|[Sdoi2014]旅行
BZOJ 3531树剖以后每个宗教建立一棵线段树,节点太多用传统方法开数组肯定不行,这里进行改进,使用了动态开点线段树,即需要这个点再开这个点。#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i, j) memset(i, j, sizeof i)#define ll long l原创 2017-06-06 18:46:24 · 495 阅读 · 2 评论 -
|BZOJ 1656|BFS|[Usaco2006 Jan] The Grove 树木
bzoj 1656 luogu 2864 from: USACO 2006 Jan (USACO刷题第1题)一道BFS。之前没看题解没什么思路搜索,看了题解后发现可以随便找一棵树然后垂直于坐标轴作一条射线,该线内的方块不可到达(相当于障碍物)。BFS记录到达每个点的最短步数,之后再在这条射线上进行合并局部解,得到最后的最优解。本题咋一看就是一个BFS,但是他要求绕着树林走,那么画一条射线来分解原创 2017-06-11 16:13:18 · 484 阅读 · 0 评论 -
|BZOJ 1654|强连通分量|[Usaco2006 Jan]The Cow Prom 奶牛舞会
BZOJ 1654 Luogu 2863 from: USACO 2006 Jan Sliver(USACO刷题第2题)tarjan找强连通分量,最后输出强连通分量保含节点个数>=2>=2的强连通分量个数即可,几乎是模板题#include<cstdio>#include<cstring>#include<algorithm>#include<stack>#include<vector>原创 2017-06-11 17:21:10 · 459 阅读 · 0 评论 -
|BZOJ 1655|无限背包|高精度|[Usaco2006 Jan] Dollar Dayz 奶牛商店
BZOJ 1655 poj 3181 from: USACO 2006 Jan Sliver(USACO刷题第3题)很容易看出本题是个无限背包方案数的dp,但是本题数据大会爆long long,那就可以把dp数组拆分为两个数组,类似于高精度压位地做#include<cstdio>#include<cstring>#include<algorithm>#include<stack>#inc原创 2017-06-11 18:53:56 · 475 阅读 · 0 评论 -
|BZOJ 1652|区间DP|[Usaco2006 Feb]Treats for the Cows
BZOJ 1652 Luogu 2858 from: USACO 2006 Feb Sliver(USACO刷题第5题)显然DP。 设f[i][j]f[i][j]为左取ii个,右取jj个的最大值 初值: f[x][0]=∑i=1xvi[i]∗if[x][0] = \sum_{i=1}^{x}vi[i]*i f[0][x]=∑i=nxvi[i]∗(i−n+1)f[0][x] = \sum_原创 2017-06-12 19:12:14 · 360 阅读 · 0 评论 -
|BZOJ 1651|差分序列|[Usaco2006 Feb]Stall Reservations 专用牛棚
BZOJ 1651 Luogu 2859 from: USACO 2006 Feb Sliver(USACO刷题第4题)首先需要发现的是,覆盖次数最多的点就是答案 然后可以用线段树求解了 但是这里要介绍一个很有用的东西,差分序列 差分序列ff记录a[i]−a[i−1]a[i]-a[i-1]的值,aa为原序列 那么根据定义可以发现差分序列的前缀和就是原序列的数 那么输入a,ba,b, 我原创 2017-06-11 21:16:40 · 479 阅读 · 0 评论 -
|BZOJ 1660|单调栈|[Usaco2006 Nov]Bad Hair Day 乱发节
BZOJ 1660 Luogu 2866 from: USACO 2006 Nov Sliver(USACO刷题第6题)单调栈,对于每个数,他后面所有比他小的数(中间不能有大于他的数)都会对答案做出贡献。 那么我们可以用单调栈来维护这个”后面所有比他小的数(中间不能有大于他的数)”#include<cstdio>#include<cstring>#include<algorithm>#原创 2017-06-13 19:38:52 · 495 阅读 · 0 评论 -
|BZOJ 1661|暴力|[Usaco2006 Nov]Big Square 巨大正方形
BZOJ 1661 Luogu 2867 from: USACO 2006 Nov Sliver(USACO刷题第7题)枚举两个点,第二个点要在第一个点的右下,那么这样我们就可以根据一个公式来求另外两个点了。之后四个点求出来后判断四个点是否都可行,然后记录这四个点中J的数量,如果>=3>=3,则这个正方形就是可行的,更新答案即可。#include<cstdio>#include<cstring原创 2017-06-14 19:40:27 · 662 阅读 · 0 评论 -
|BZOJ 1648|DFS|[Usaco2006 Dec]Cow Picnic 奶牛野餐
BZOJ 1648 Luogu 2853 from: USACO 2006 Dec Sliver(USACO刷题第8题)记录一下每个牧场的奶牛个数,之后如果一个牧场有牛就dfs遍历,把遍历到的点的tot[i]tot[i]都加上这个奶牛数,然后最后统计每个牧场如果tot[i]=ktot[i]=k那么就是一个答案。#include<cstdio>#include<cstring>#include原创 2017-06-15 18:35:53 · 422 阅读 · 0 评论 -
|BZOJ 4196|树链剖分|线段树|[Noi2015]软件包管理器
BZOJ 4196树链剖分支持修改查找子树和到根的路径权值和即可解决,注意pushdown放前面注意lc,rc会爆的情况#include<cstdio>#include<cstring>#include<algorithm>#define fo(i, j, k) for (i=(j);i<=(k);i++)#define fd(i, k, j) for (i=(k);i>=(j);i--)原创 2017-05-20 20:43:48 · 393 阅读 · 0 评论 -
|BZOJ 4034|树链剖分|线段树|[HAOI2015]树上操作
BZOJ 4034树剖后线段树维护。 此题要修改子树的权,根据树剖性质子树是连续的一段,运用时间戳思想即可。注意开long long,第一次没开就WA了(痛不欲生)#include<cstdio>#include<cstring>#include<algorithm>#define fo(i, j, k) for (i=(j);i<=(k);i++)#define fd(i, k, j)原创 2017-05-19 20:28:22 · 437 阅读 · 0 评论 -
|BZOJ 1036|树链剖分|线段树|[ZJOI2008]树的统计Count
bzoj 1036树剖+线段树。第一个树剖题,终于AC#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define fo(i, j, k) for (i=(j);i<=(k);i++)#define fd(i, k, j) for (i=(k);i>=(j);i--)#define rd(a) sc原创 2017-05-15 19:53:53 · 375 阅读 · 0 评论 -
|BZOJ 1823|2-SAT|[JSOI2010]满汉全席
BZOJ传送门 经典2-SAT模型,注意输入#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std;const int MAXN = 100 + 5;str原创 2017-02-06 17:09:15 · 591 阅读 · 0 评论 -
|BZOJ 2028|平衡树|[SHOI2009]会场预约
BZOJ传送门 luogu免权限地址 Set求大于x的最小值的模板题。注意set.lower_bound()如果找不到就会返回set.end()#include<cstdio> #include<algorithm> #include<cstring> #include<set> #define ms(i,j) memset(i,j, sizeof i);原创 2017-02-05 17:32:34 · 735 阅读 · 0 评论 -
|BZOJ 2427|树形DP|强连通分量|[HAOI2010]软件安装
BZOJ传送门 根据题目可以构造一幅图,可以得知这个图是一些森林和环,我们对图缩点,建立虚结点,使所有没有入度的强连通分量连接虚结点,再进行树上背包即可。#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#include<stack> #define ms(i,j) memset原创 2017-02-07 18:09:21 · 529 阅读 · 0 评论 -
|BZOJ 2330|差分约束|[SCOI2011]糖果
BZOJ传送门 差分约束。 裸题不讲了。可以看我的差分约束学习笔记。 注意这题直接把所有点加进来做,否则TLE,还要开long long#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#include<queue>#define ms(i,j) memset(i,j, sizeof i原创 2017-02-11 18:17:22 · 479 阅读 · 0 评论 -
|BZOJ 1012|线段树|[JSOI2008]最大数maxnumber
BZOJ传送门 水题一道,线段树维护即可。(省选题出模板?)#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXM = 200000+5;int m原创 2017-02-11 22:03:27 · 543 阅读 · 0 评论 -
|BZOJ 2060|动态规划|Visiting Cows 拜访奶牛
http://www.lydsy.com/JudgeOnline/problem.php?id=2060luogu免权限地址:https://www.luogu.org/problem/show?pid=2996设状态f[i][0]为i点不访问,f[i][1]为i点访问f[u][1] += f[v][0]; //u点要访问,(u,v)有连边f[u][0] +=原创 2017-01-24 15:18:00 · 639 阅读 · 0 评论 -
|BZOJ 1593|线段树|Hotel 旅馆
http://www.lydsy.com/JudgeOnline/problem.php?id=1593luogu免权限地址:https://www.luogu.org/problem/show?pid=2894线段树记录4个信息:lm: 左端点开始最长连续空区间 rm: 右端点开始最长连续空区间sum:整个区间最长连续空区间lazy:lazy标记 (-1:没有标记 0:空原创 2017-01-26 11:24:54 · 588 阅读 · 0 评论 -
|BZOJ 3224|平衡树|Tyvj 1728 普通平衡树
BZOJ传送门 平衡树模板题,注意相同元素的处理。 Treap:#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std; struct node{原创 2017-02-04 12:53:52 · 648 阅读 · 0 评论 -
|BZOJ 2429|生成树|[HAOI2006]聪明的猴子
BZOJ传送门 最小瓶颈路,求一条路径,使得u−>vu->v路径上的最大边权最小。 可以知道,最小瓶颈路必在最小生成树上,所以用最小生成树求解 求出最小的最大边权后和每个猴子的距离比较即可 (PS: 之前还用dfs跑。。结果发现直接比较即可。。)/* Date: 04-03-17 10:27 bzoj 2429*/#include<cstdio>#include<algorit原创 2017-03-04 11:35:10 · 455 阅读 · 0 评论 -
|BZOJ 1452|树状数组|[JSOI2009]Count
BZOJ传送门 可以每一种颜色建一个二维树状数组,数据O(n2c)O(n^2c)的空间复杂度可以接受#include<cstdio>#include<cstring>#include<algorithm>#define ms(i,j) memset(i, j, sizeof i);using namespace std;int n,m,Q;int a[300 + 5][300 + 5]原创 2017-02-25 15:36:29 · 605 阅读 · 0 评论 -
|BZOJ 3211|树状数组|并查集|花神游历各国
BZOJ传送门 树状数组裸题,但是因为sqrt的速度很慢,所以我们在一个数为1或者为0就删掉它(用并查集维护) ps:交题时注意文件声明部分要注释掉!坑死了#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>#define ms(i,j) memset(i, j, si原创 2017-02-25 17:09:27 · 570 阅读 · 0 评论 -
|BZOJ 3183|记忆化搜索|[HAOI2016]食物链
bzoj传送门 Luogu免权限地址 裸搜索,根据生物学知识可得入度为0的结点是食物链开端,出度为0则是末端 为防止超时使用了记忆化#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i,j) memset(i,j,sizeof i)using namespace std;co原创 2017-03-19 21:13:55 · 556 阅读 · 0 评论 -
|BZOJ 1619|搜索|[Usaco2008 Nov]Guarding the Farm 保卫牧场
bzoj传送门 Luogu免权限地址 从高的地方开始BFS灌水#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i,j) memset(i,j,sizeof i)using namespace std;const int MAXN = 700 + 5;struct po{原创 2017-03-19 21:17:16 · 501 阅读 · 0 评论 -
|BZOJ 1477|扩展欧几里得算法|青蛙的约会
BZOJ传送门 luogu免权限地址 扩展欧几里得算法,由题可列(x+m∗t)≡(y+n∗t)(modL)(x+m*t)\equiv (y+n*t)\pmod L,其中tt为所求 由同余性质得:(x+m∗t)−(y+n∗t)=Lk(x+m*t)-(y+n*t)=Lk 变形得:(n−m)t+lk=x−y(n-m)t+lk=x-y,则转换为ax+by=cax+by=c的形式#include<cs原创 2017-02-02 22:08:09 · 787 阅读 · 0 评论 -
|BZOJ 1650|二分|贪心|[Usaco2006 Dec]River Hopscotch 跳石子
BZOJ 1650 Luogu 2855 from: USACO 2006 Dec Sliver(USACO刷题第9题)最小值最大,显然二分。 二分最小值最大距离,然后贪心处理。 这里我们在头尾各增加一个石头,贪心时先从第一个石头开始记为ll,然后往后扫描,当前扫描的石头记为rr,如果st[r]−st[l]<midst[r]-st[l]<mid的话,说明l,rl, r中间的石头就算都移走都不原创 2017-06-15 19:28:01 · 588 阅读 · 0 评论