bzoj5196 [Usaco2018 Feb]Taming the Herd(dp)
2018-03-04 14:42
295 查看
设dp[i][k][j]表示前i个位置有k个0,最后一个位置的数是j的最小代价。再处理出一个ans[i][k]表示前i个位置有k个0的最小代价转移,方便转移。复杂度O(n3)
#include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 110 inline char gc(){ static char buf[1<<16],*S,*T; if(S==T){T=(S=buf)+fread(buf,1,1<<16,stdin);if(T==S) return EOF;} return *S++; } inline int read(){ int x=0,f=1;char ch=gc(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=gc();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=gc(); return x*f; } int n,a ,dp ;//dp[i][k][j],前i个位置有k个0,最后一个位置的数是j的最小代价 int ans ;//ans[i][k],前i个位置有k个0的最小代价 int main(){ // freopen("taming.in","r",stdin); // freopen("taming.out","w",stdout); n=read();for(int i=1;i<=n;++i) a[i]=read(); memset(dp,inf,sizeof(dp));dp[1][1][0]=(a[1]!=0); memset(ans,inf,sizeof(ans));ans[1][1]=dp[1][1][0]; for(int i=2;i<=n;++i) for(int k=1;k<=i;++k){ dp[i][k][0]=min(dp[i][k][0],ans[i-1][k-1]+(a[i]!=0)); for(int j=1;j<i;++j) dp[i][k][j]=min(dp[i][k][j],dp[i-1][k][j-1]+(a[i]!=j)); for(int j=0;j<i;++j) ans[i][k]=min(ans[i][k],dp[i][k][j]); } for(int i=1;i<=n;++i) printf("%d\n",ans [i]); return 0; }
相关文章推荐
- 5196: [Usaco2018 Feb]Taming the Herd
- BZOJ3941 : [Usaco2015 Feb]Fencing the Herd
- bzoj 3367: [Usaco2004 Feb]The Big Game 球赛(DP)
- poj 3186 && bzoj 1652: [Usaco2006 Feb]Treats for the Cows(DP)
- 【BZOJ 1592】[Usaco2008 Feb]Making the Grade 路面修整 dp优化之转移变状态
- BZOJ 1652: [Usaco2006 Feb]Treats for the Cows( dp )
- |BZOJ 1652|区间DP|[Usaco2006 Feb]Treats for the Cows
- 【BZOJ1633】[Usaco2007 Feb]The Cow Lexicon 牛的词典【DP】
- |BZOJ 1633|字符串DP|[Usaco2007 Feb]The Cow Lexicon 牛的词典
- 【BZOJ】1652: [Usaco2006 Feb]Treats for the Cows(dp)
- 【DP】BZOJ1592-[Usaco2008 Feb]Making the Grade 路面修整
- BZOJ 3367: [Usaco2004 Feb]The Big Game 球赛( dp )
- bzoj 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典【dp】
- bzoj 5195: [Usaco2018 Feb]Directory Traversal【树形dp】
- bzoj 1592: [Usaco2008 Feb]Making the Grade 路面修整【dp】
- BZOJ 1592 Usaco 2008 Feb Making the Grade 路面修整 DP
- BZOJ 1592: [Usaco2008 Feb]Making the Grade 路面修整( dp )
- bzoj1592 [Usaco2008 Feb]Making the Grade 路面修整 dp
- [BZOJ1592] [Usaco2008 Feb]Making the Grade 路面修整(DP)
- BZOJ1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典 DP