zstu-4243 牛吃草】的更多相关文章

这题上次补了以后忘记写博客了,现在补一下. 有两个注意点,第一是两圆相交的模板.可以通过任意一种情况手推出来. 第二是,实数二分要注意不用ans记录为妙,因为可能因为eps过小,导致ans无法进入记录答案的语句中(ans过大可能又会有误差),直接用一个l或者r记录一下即可. 代码如下: #include <stdio.h> #include <algorithm> #include <string.h> #include <vector> #include…
题目链接:http://poj.org/problem?id=2459 题目大意:有C头牛,下面有C行,每头牛放进草地的时间,每天吃一个草,总共有F1个草,想要在第D的时候,草地只剩下F2个草. 解题思路:模拟啊,就像砍树一样的问题,把每天失去的草计算出来,从最后一天往前推. #include <cstdio> #include <cstring> int C,F1,F2,D; ]; int main() { while (scanf("%d%d%d%d",&a…
贴一发两圆相交面积模板 #include<bits/stdc++.h> #define pi acos(-1.0) using namespace std; ; double _abs(double x) { ) return -x; else return x; } struct point { point(,){x=_x; y=_y;} double x,y; }p1,p2; double R; double AREA(point a, double r1, point b, double…
bzoj1742[Usaco2005 nov]Grazing on the Run 边跑边吃草 bzoj3074[Usaco2013 Mar]The Cow Run 题意: 数轴上有n棵草,牛初始在L位置(bzoj3074的牛初始在1位置),每移动一个单位需要+1s.而每过1s没吃的草腐败度会+1,问吃完所有草的最小腐败度.n≤1000. 题解: 很神的dp.f[l][r][0/1]表示从第l棵草吃到第r棵草,之后到达l/r.则 f[l][r][0]=min(dfs(l+1,r,0)+(n-r+…
dp... dp( l , r , k )  , 表示 吃了[ l , r ] 的草 , k = 1 表示最后在 r 处 , k = 0 表示最后在 l 处 . -------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream>   #define rep…
题目描述 John养了一只叫Joseph的奶牛.一次她去放牛,来到一个非常长的一片地,上面有N块地方长了茂盛的草.我们可以认为草地是一个数轴上的一些点.Joseph看到这些草非常兴奋,它想把它们全部吃光.于是它开始左右行走,吃草.John和Joseph开始的时候站在p位置.Joseph的移动速度是一个单位时间一个单位距离.不幸的是,草如果长时间不吃,就会腐败.我们定义一堆草的腐败值是从Joseph开始吃草到吃到这堆草的总时间.Joseph可不想吃太腐败的草,它请John帮它安排一个路线,使得它吃…
传送门 区间dp入门题. 可以想到当前吃掉的草一定是一个区间(因为经过的草一定会吃掉). 然后最后一定会停在左端点或者右端点. f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]表示已经吃了[i,j][i,j][i,j]的草,最后停在左/右端点. 利用费用提前计算的思想转移就行了. 代码: #include<bits/stdc++.h> #define N 1005 #define ll long long using namespace std; ll f[N][N][…
挺好的区间dp,状态设计很好玩 一开始按套路设f[i][j],g[i][j]为吃完(i,j)区间站在i/j的最小腐败值,后来发现这样并不能保证最优 实际上是设f[i][j],g[i][j]为从i开始吃j个,站在这段区间的左/右端点的 * 最小所有草增加的腐败值 * ,因为这些腐败之最后也是要算进去的,所以直接夹在里面就可以保证最优 #include<iostream> #include<cstdio> #include<cstring> #include<algo…
Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11402   Accepted: 4631 Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his h…
分析: 首先,连续选择一段必定最优... 区间DP,f[i][j]表示从i开始,连续j个被吃掉了,并且,牛在i处,g[i][j]则表示在i+j-1处 f[i][j]可以从g[i+1][j]和f[i+1][j]转移,g[i][j]可以从g[i][j-1]和f[i][j-1]转移,转移方程: f[i][j]=min(f[i+1][j]+(n-j+1)*(a[i+1]-a[i]),g[i+1][j]+(n-j+1)*(a[i+j-1]-a[i])):g[i][j]同样... 附上代码: #includ…