bzoj 1783: [Usaco2010 Jan]Taking Turns【贪心+dp】
2018-06-30 16:13
344 查看
不知道该叫贪心还是dp
倒着来,记f[0][i],f[1][i]分别为先手和后手从n走到i的最大值。先手显然是取最大的,当后手取到比先手大的时候就交换
#include<iostream> #include<cstdio> using namespace std; const int N=700005; int n,a ,w=n; long long f[2] ,mx; int read() { int r=0,f=1; char p=getchar(); while(p<'0'||p>'9') { if(p=='-') f=-1; p=getchar(); } while(p<='9'&&p>='0') { r=r*10+p-48; p=getchar(); } return r*f; } int main() { n=read(); for(int i=1;i<=n;i++) a[i]=read(); for(int i=n;i>=1;i--) { f[0][i]=mx,f[1][i]=f[1][w]; if(f[0][i]<=f[1][w]+a[i]) { f[0][i]=f[1][w]+a[i]; mx=f[0][i]; w=i; f[1][i]=f[0][i+1]; } } printf("%lld %lld\n",f[0][1],f[1][1]); return 0; }
相关文章推荐
- [博弈 DP] BZOJ1783: [Usaco2010 Jan]Taking Turns
- BZOJ 1783 [Usaco2010 Jan]Taking Turns
- BZOJ1783: [Usaco2010 Jan]Taking Turns
- bzoj1783 [Usaco2010 Jan]Taking Turns
- 【bzoj1783】[Usaco2010 Jan]Taking Turns
- bzoj 1783: [Usaco2010 Jan]Taking Turns
- bzoj 1783: [Usaco2010 Jan]Taking Turns
- [bzoj1783] [Usaco2010 Jan]Taking Turns
- Bzoj 1783: [Usaco2010 Jan]Taking Turns
- BZOJ 1783 [Usaco2010 Jan]Taking Turns
- BZOJ 2097 USACO 2010 Dec Gold Exercise 奶牛健美操 二分答案 树形DP 贪心
- 【bzoj1827】[Usaco2010 Mar]gather 奶牛大集会 树形dp+贪心
- BZOJ 1596: [Usaco2008 Jan]电话网络 树形dp||贪心
- 【BZOJ】2021: [Usaco2010 Jan]Cheese Towers(dp)
- [BZOJ1596] [Usaco2008 Jan]电话网络(树形DP || 贪心)
- [BZOJ2097][Usaco2010 Dec]Exercise 奶牛健美操(二分+树形dp+贪心)
- [BZOJ1596][Usaco2008 Jan]电话网络(贪心||树形dp)
- 【bzoj2097】[Usaco2010 Dec]Exercise 奶牛健美操 二分答案+树形dp+贪心
- 【BZOJ】2020: [Usaco2010 Jan]Buying Feed, II (dp)
- [BZOJ2097][Usaco2010 Dec]Exercise 奶牛健美操(二分+树形dp+贪心)