UESTC 1218 Pick The Sticks (dp )
来源:互联网 发布:淘宝号怎么买到 编辑:程序博客网 时间:2024/05/16 10:29
http://acm.uestc.edu.cn/#/problem/show/1218
题目: 一根长为m的长木板和一些小木棒,每一根小木棒有它的长度和价值,这些小木棒要放在长木板上并且每一根小木棒的重心要在长木板上(可以露出一半的长),最大价值是多少。
让人联想到01背包,但是又有些许的不同。#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int N=4e3+10;typedef long long LL;LL dp[N][5]; // 0,1,2分别表示露在外面的木棍数量LL a[1010],v[1010];int main(){ //freopen("cin.txt","r",stdin); LL n,t=0,m,len; cin>>n; while(n--){ scanf("%lld%lld",&m,&len); len=len*2; LL ans=0; for(int i=0;i<m;i++){ scanf("%lld%lld",&a[i],&v[i]); a[i]=a[i]*2; ans=max(ans,v[i]); } memset(dp,0,sizeof(dp)); for(int i=0;i<m;i++){ for(int j=len;j>=a[i]/2;j--){ dp[j][1]=max(dp[j-a[i]/2][0]+v[i],dp[j][1]); // outside dp[j][2]=max(dp[j-a[i]/2][1]+v[i],dp[j][2]); // 不放就仍然使用原值 if(j>=a[i]){ dp[j][0]=max(dp[j-a[i]][0]+v[i],dp[j][0]); //inside dp[j][1]=max(dp[j-a[i]][1]+v[i],dp[j][1]); dp[j][2]=max(dp[j-a[i]][2]+v[i],dp[j][2]); } } } for(int i=0;i<3;i++){ ans=max(ans,dp[len][i]); } printf("Case #%lld: %lld\n",++t,ans); } return 0;}
注意: 那个双重循环里的第二层循环如果写成 for(int j=a[i]/2;j<=len;j++) //这种遍历会造成数据污染(滚动数组),除非再开一维。另外,因为输出格式不对,%lld--写成-->%I64d 居然出现了(Restricted Function on test 1)瞬间惊呆了我。
0 0
- UESTC 1218 Pick The Sticks (dp )
- UESTC 1218 Pick The Sticks
- UESTC 1218 Pick The Sticks
- Pick The Sticks UESTC
- UESTC 1218 Pick The Sticks (2015 CCPC)
- UESTC Pick The Sticks (背包变形)
- hdu5544 Pick The Sticks(dp)
- HDU 5543 Pick The Sticks(DP)
- HDU 5543 Pick The Sticks【三维dp】
- HDU5543 Pick The Sticks [背包dp变形]
- HDU5543-Pick The Sticks
- Pick The Sticks HDU
- 2015年CCPC D题 Pick The Sticks(DP)
- ccpc Pick The Sticks(dp特殊处理)
- HDU 5543 Pick The Sticks (DP 01背包)
- HDOJ 5543 Pick The Sticks (简单DP)
- HDU 5543 Pick The Sticks
- hdu 5543 Pick The Sticks
- 【Android】边框旁的文字实现模糊效果
- apache虚拟主机简单的配置
- 百度地图自定义气泡
- linux修改文件所属用户和组
- Chromium Weekly 2
- UESTC 1218 Pick The Sticks (dp )
- Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
- windows如何打开命令行到当前目录
- Oracle查看当天创建的所有表
- Android中常见的热门标签的流式布局的实现——云标签
- EventBus.getDefault.post()不能传入基本数据类型,如int,double
- 页面旁边客服区伸缩效果
- qwt6.1.2静态编译
- 记录有些低落的一天