【BZOJ 5048 塌陷的牧场】】的更多相关文章

Time Limit: 25 Sec  Memory Limit: 256 MBSubmit: 77  Solved: 34[Submit][Status][Discuss] Description 农夫小Q将他的奶牛们饲养在一个长n宽m的矩形网格牧场中.行从上到下依次编号为1到n,列从左往右依次编号为1 到m.为了防止奶牛们逃跑,小Q在牧场外圈安装了一排电网,只要奶牛走出这个n*m的矩形,就会触电死去.在牧 场中,有e个格子塌陷了,一旦奶牛踩在上面,就会掉下去摔死.小Q为了饲养尽可能多的奶牛,…
Description 农夫小Q将他的奶牛们饲养在一个长n宽m的矩形网格牧场中.行从上到下依次编号为1到n,列从左往右依次编号为1 到m.为了防止奶牛们逃跑,小Q在牧场外圈安装了一排电网,只要奶牛走出这个n*m的矩形,就会触电死去.在牧 场中,有e个格子塌陷了,一旦奶牛踩在上面,就会掉下去摔死.小Q为了饲养尽可能多的奶牛,在每个没有塌陷的 格子上,都饲养着一头奶牛.tangjz偷走了小Q的口哨,并用口哨向奶牛们依次施放了q条指令,每条指令包含两个 参数d和k,d表示上下左右之一的方向,k表示前进…
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 379  Solved: 216[Submit][Status][Discuss] Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走,第i条边连接第Ai,Bi块牧场,第i条边的长度是Li(1<=Li<=1…
一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了.. ---------------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<queue> #include<cstring> #include<iostream>   #define rep( i…
题面:[USACO08OCT]牧场散步Pasture Walking 题解:LCA模版题 代码: #include<cstdio> #include<cstring> #include<iostream> using namespace std; ,max_log=; ][max_log+],edge_head[maxn+],num_edge=,c,Dep[maxn+],u,v,w,A,B; ]; struct Edge{ int to,nx,dis; }edge[(m…
Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走,第i条边连接第Ai,Bi块牧场,第i条边的长度是Li(1<=Li<=10000). 这些边被安排成任意两头奶牛都可以通过这些边到达的情况,所以说这是一棵树. 这些奶牛是非常喜欢交际的,经常会去互相访问,他们想让你去帮助他们计算Q(1<=q<=1000)对奶牛之间的距离. Input *…
http://www.lydsy.com/JudgeOnline/problem.php?id=1602 || https://www.luogu.org/problem/show?pid=2912 题目描述 N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走,第i条边连接第Ai,Bi块牧场,第i条边的长度是Li(1<=Li<=10000). 这些边被安排成任意两头奶牛都…
翻翻吴大神的刷题记录翻到的... 乍一看是一个树链剖分吓瓜我...难不成吴大神14-10-28就会了树剖?orz... 再一看SB暴力都可过... 然后一看直接树上倍增码个就好了... 人生真是充满着大起大落= =! 擦树上倍增不会写了= =!... 写个STLCA算了...…
感觉……做克老师的题,都很神仙…… 还有去年一个人坐在家里写挂60分算法的惨痛记忆,凭借着一点点记忆重新写这道题. 感觉这并查集真的很神仙,仍然不会算最后的α的复杂度……自己想感觉无论如何都要挂个log 考虑到每个格子移动相当于所有障碍物反向移动,我们可以把边界也当成是障碍物,利用并查集来维护障碍物移动后位置中间还有多少个可以删减的答案,处理完这些答案就好了. 由于一共$n * m$个数据点每个最多被删减一遍,所以并不会超时. Code: #include <cstdio> #include…
题意:id=1602">链接 方法:深搜暴力 解析: 这题刚看完还有点意思,没看范围前想了想树形DP,只是随便画个图看出来是没法DP的,所以去看范围. woc我没看错范围?果断n^2暴力啊.想个卵. 于是写了暴力,暴力预处理每两个点间距离就好了. 尽管比别人慢了100ms?无卵用. 然后查了下正解,正解是求lca,最好还是设1为根,dis[i]代表根到i的距离,则对于询问x,y的答案就是dis[x]+dis[y]-2*dis[lca(x,y)]. 看起来好高端,然而暴力大法好! 代码: #…
本来想爆手速写个树剖,然而快下课了就手残写了了个n方的短小-- 暴力把查询的两个点中深的一个跳上来,加上边权,然后一起跳加边权就行了 #include<iostream> #include<cstdio> using namespace std; const int N=1005; int n,q,h[N],cnt,fa[N],va[N],de[N]; struct qwe { int ne,to,va; }e[N<<1]; int read() { int r=0,f…
bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草——背包 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int read(){ ,f=,c=getchar(); ; c=getchar();} +(c-'); c=getchar();} return ans*f; } ],k; int main() { h=read(); n=…
DP/斜率优化 斜率优化基本题……等等,好像就没啥变化啊= = 嗯目测这题跟仓库建设差不多?写题的时候倒是没想这么多……直接推了公式. $$f[i]=min\{f[j]+cal(j,i)+a[i]\}$$ 哦麻烦的还是这个$cal(j,i)$ 我们令$s[i]=\sum_{k=1}^{i}b[k], c[i]=\sum_{k=1}^{i}(b[k]*k)$ 则有$cal(j,i)=(s[i]-s[j])*i-(c[i]-c[j])$(问我怎么想到的?这个嘛……像这题这种要求“阶梯形求和”的,基本…
题意 n个点,需要再一些点建立控制站,如果在第\(i\)个建站,贡献为\(a[i]\).假设前一个站为\(j<i\),则\([j+1, i]\)的点的贡献是\(\sum_{k=j+1}^{i} (i-k) b[k]\).同时要求第\(n\)个点建站.求最小贡献.(\(n \le 10^6\)) 题解 设\(d(i)\)表示前\(i\)个且在第\(i\)个牧场建控制站的最小贡献 则 \[ d(i) = min( d(j) + cost(j+1, i) ) + a[i] \] 则\(ans = d(…
3437: 小P的牧场 Description 背景 小P是个特么喜欢玩MC的孩纸... 描述 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定的花费(毕竟在控制站到牧场间修建道路是需要资源的嘛…
http://www.lydsy.com/JudgeOnline/problem.php?id=1602 一开始以为直接暴力最短路,但是n<=1000, q<=1000可能会tle. 显然我没有看到树的性质,树边只有n-1,且一个点一定能到达另一个点 所以我们求出lca,然后记录从根到每个点的距离,然后答案就是d[u]+d[v]-2*d[lca(u, v)] 然后blabla就出来了 #include <cstdio> #include <cstring> #inclu…
Description 大雨侵袭了奶牛们的牧场.牧场是一个R * C的矩形,其中1≤R,C≤50.大雨将没有长草的土地弄得泥泞不堪,可是小心的奶牛们不想在吃草的时候弄脏她们的蹄子.  为了防止她们的蹄子被弄脏,约翰决定在泥泞的牧场里放置一些木板.每一块木板的宽度为1个单位,长度任意.每一个板必须放置在平行于牧场的泥地里.    约翰想使用最少的木板覆盖所有的泥地.一个木板可以重叠在另一个木板上,但是不能放在草地上. Input 第1行:两个整数R和C. 第2到R+1行:每行C个字符,其中"*'代…
Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地.FJ打算在牧场上的某几格土地里种上美味的草,供他的奶牛们享用.遗憾的是,有些土地相当的贫瘠,不能用来放牧.并且,奶牛们喜欢独占一块草地的感觉,于是FJ不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边.当然,FJ还没有决定在哪些土地上种草. 作为一个好奇的农场主,FJ想知道,如果不考虑草地的总块数,那么,一共有多少…
题目 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 491  Solved: 218 [Submit][Status] Description The farm has many hills upon which Farmer John would like to place guards to ensure the safety of his valuable…
链接 1735: [Usaco2005 jan]Muddy Fields 泥泞的牧场 思路 这就是个上一篇的稍微麻烦版(是变脸版,其实没麻烦) 用边长为1的模板覆盖地图上的没有长草的土地,不能覆盖草地 每个点(x,y)只有选择x或者y才能被覆盖 还是最小点覆盖,证明在上一篇 横边和竖边得遍历一遍求出,因为不能越过草地嘛 然后左边横边,右边竖边,开心的跑最大流就可以 代码 #include <bits/stdc++.h> #define iter vector<int>::itera…
3437: 小P的牧场 Time Limit: 10 Sec  Memory Limit: 128 MB Description 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定的花费(毕竟在控…
传送门 显然考虑 $dp$,设 $f[i]$ 表示前 $i$ 个牧场都被控制的最小代价 那么枚举所有 $j<i$ ,$f[i]=f[j]+val[i][j]+A[i]$ $val[i][j]$ 表示控制站从 $i$ 一直控制到 $j+1$ 需要的代价 考虑怎么算这个东西,设 $S[i]=\sum _{j=1}^{i}B[j]$,$T[i]=\sum _{j=1}^{i}(B[j]*j)$ 那么 $val[i][j]=(S[i]-S[j])*i-(T[i]-T[j])$ 然后直接展开斜率优化就好了…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3437 [题目大意] n个牧场排成一行,需要在某些牧场上面建立控制站, 每个牧场上只能建立一个控制站,每个控制站控制的牧场 是它所在的牧场一直到它西边第一个控制站的所有牧场 它西边第一个控制站所在的牧场不被控制,如果它西边不存在控制站, 那么它控制西边所有的牧场,每个牧场被控制都需要一定的花费, 而且该花费等于它到控制它的控制站之间的牧场数目乘上该牧场的放养量, 在第i个牧场建立控制站…
http://www.lydsy.com/JudgeOnline/problem.php?id=3394 裸的floyd.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #include <queue> using namespace std;…
小P的牧场[题目描述]背景:小P 是个特么喜欢玩MC 的孩纸...小P 在MC 里有n 个牧场,自西向东呈一字形排列(自西向东用1…n 编号),于是他就烦恼了:为了控制这n 个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定的花费(毕竟在控制站到牧场间修建道路是需要资源的嘛~),而且该花费等于…
Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地.FJ打算在牧场上的某几格土地里种上美味的草,供他的奶牛们享用.遗憾的是,有些土地相当的贫瘠,不能用来放牧.并且,奶牛们喜欢独占一块草地的感觉,于是FJ不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边.当然,FJ还没有决定在哪些土地上种草. 作为一个好奇的农场主,FJ想知道,如果不考虑草地的总块数,那么,一共有多少…
http://www.lydsy.com/JudgeOnline/problem.php?id=1619 首先不得不说,,题目没看懂.... 原来就是找一个下降的联通块.... 排序后dfs标记即可.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #inc…
[算法]最近公共祖先(LCA) [题解] 点x,y到最近公共祖先z的距离之和相当于x,y到根的距离减去两倍z到根的距离, 即ans=dis[x]+dis[y]-2*dis[z] 记得边数组要开两倍!!!T_T #include<cstdio> #include<algorithm> using namespace std; ; ; ]; ],n,q,cnt,head[maxn]; bool vis[maxn]; void insert(int u,int v,int w) {cnt…
[算法]状压DP [题解]对于上一行的每个状态,每行进行DFS. #include<cstdio> #include<algorithm> #include<cstring> #define ll long long using namespace std; ,maxN=,MOD=; ll f[][maxN]; int n,m,x,h; bool map[maxn][maxn]; void dfs(int p,int now,int pre){ if(p==m){ f[…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1605 题意: 平面直角坐标系中,有n个点,m个标记(坐标范围1~1000). 你可以发出口令,让所有点整体向东.南.西.北四个方向中的任意一个方向移动,口令分别记作'E','S','W','N'. 每当一个点碰到一个标记,则答案+1.(保证初始时没有点在标记上) 你最多可以发出t次口令. 问你答案最大是多少,并输出字典序最小的口令序列. 题解: 表示状态: dp[i][j][k] = m…