CodeForces Round #145(234F) - Fence
2013-10-02 14:11
441 查看
一开始用背包做,后来发现思路不正确。dp[i][j][k]表示第i个矩形涂颜色k后,颜色A的面积为j的最小值。
这个dp应该是很好想的,但是状态转移感觉还是比较绕的,注意。
参考/article/2097272.html
这个dp应该是很好想的,但是状态转移感觉还是比较绕的,注意。
参考/article/2097272.html
#include <iostream> #include <cstdio> #include <vector> #include <cmath> #include <stack> #include <map> #include <set> #include <queue> #include <cstring> #include <algorithm> using namespace std; #define L(t) t<<1 #define R(t) t<<1|1 #define eps 10e-7 const int maxn=40005; const int maxm=1005; typedef long long LL; int h[202]; int dp[2][maxn][2]; int main() { // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); freopen("in.txt","r",stdin); int n,a,b; scanf("%d%d%d",&n,&a,&b); int sum=0; for(int i=1;i<=n;i++) { scanf("%d",&h[i]); sum+=h[i]; // cout<<h[i]<<endl; } memset(dp[0],-1,sizeof(dp[0])); dp[0][0][1]=dp[0][0][0]=0; int k=1,c,mi; for(int i=1;i<=n;i++,k=k^1) { memset(dp[k],-1,sizeof(dp[k])); for(int j=0;j<=a;j++) { c=j+h[i]; mi=min(h[i-1],h[i]); if(dp[k^1][j][0]!=-1) { if(dp[k][c][0]==-1||dp[k^1][j][0]<dp[k][c][0]) dp[k][c][0]=dp[k^1][j][0]; if(dp[k][j][1]==-1||dp[k^1][j][0]+mi<dp[k][j][1]) dp[k][j][1]=dp[k^1][j][0]+mi; } if(dp[k^1][j][1]!=-1) { if(dp[k][c][0]==-1||dp[k^1][j][1]+mi<dp[k][c][0]) dp[k][c][0]=dp[k^1][j][1]+mi; if(dp[k][j][1]==-1||dp[k^1][j][1]<dp[k][j][1]) dp[k][j][1]=dp[k^1][j][1]; } } } int ans=maxn; k=k^1; // cout<<sum<<endl; for(int i=0;i<=a;i++) { // cout<<dp[k][i][0]<<endl; if(sum-i<=b) { if(dp[k][i][0]!=-1&&ans>dp[k][i][0]) ans=dp[k][i][0]; if(dp[k][i][1]!=-1&&ans>dp[k][i][1]) ans=dp[k][i][1]; } } if(ans==maxn) ans=-1; printf("%d\n",ans); return 0; }
相关文章推荐
- WEB测试--查看网页HTML源代码
- 单调性+二分+RMQ-poj-3419-Difference Is Beautiful
- 对话 UNIX: 关于 inode
- 使用CSS绘制三角形
- JScrollPane实现自动滚动到底部
- 经验分享:CSS浮动(float,clear)通俗讲解
- 关于webkit CSS (CSS3)的小结
- STS Attractive Features
- Fedora安装新内核删除久内核
- 一个简单的JavaScript Map
- js遍历jsonTree
- Hadoop DataNode启动之asyncDiskService
- 第五章--对连接应用样式
- JS 利用数组拼接html字符串
- Koala – 开源的前端预处理器语言图形编译工具
- CSS学习笔记--第一章
- jquery二级菜单动画效果的实现代码
- jquery随机增加文本框高度
- jQuery多组随机数的生成代码
- jquery随机展示头像的实现代码