UVa10003 cutting sticks
来源:互联网 发布:js input 光标位置 编辑:程序博客网 时间:2024/05/09 08:28
区间dp,基本裸题
dp[i][j] = dp[i][k] + dp[k][j] + val(j-i) ;
枚举给定的点即可
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#define min(a,b) (a<b?a:b)#define FOR(a,i,b) for( i = a ; i <= b ; ++i )#define CLR(arr,x) memset(arr,x,sizeof(arr))using namespace std;const int maxn = 100 ;const int inf = 0x3fffffff ;int a[maxn] , b[maxn] ;int temp[maxn][maxn] ;int n ,k;void init() { CLR(a,0) ; CLR(temp,0) ;}int dp(int l , int r ) { if( r-l==1 ) return 0 ; int& ans = temp[l][r] ; if( ans > 0 ) return ans ; ans = inf ; for( int i = l+1 ; i < r ; ++i ) { ans = min(ans, dp(l,i)+dp(i,r)+a[r]-a[l]) ; } return ans ;}void scan(){ scanf("%d",&k) ; int i ; a[0] = 0; a[k+1] = n ; FOR(1,i,k){ scanf("%d",&a[i]) ; } dp(0,k+1) ;}int main() { while(~scanf("%d",&n),n) { init() ; scan() ; printf("The minimum cutting is %d.\n",temp[0][k+1]) ; } return 0 ;}
0 0
- UVa10003 - Cutting Sticks
- uva10003 - Cutting Sticks
- UVA10003 - Cutting Sticks
- UVA10003 Cutting Sticks
- uva10003 Cutting Sticks
- UVa10003 cutting sticks
- uva10003 Cutting sticks
- uva10003 Cutting Sticks
- uva10003 Cutting Sticks
- UVa10003 Cutting Sticks
- uva10003 - Cutting Sticks(DP,区间)
- [动态规划]UVA10003 - Cutting Sticks
- uva10003 Cutting Sticks解题报告
- uva10003 - Cutting Sticks(简单动规)
- UVA10003---Cutting Sticks(简单区间dp)
- uva10003 - Cutting Sticks(区间dp)
- UVA10003 Cutting Sticks(区间 DP)
- UVA10003 Cutting Sticks(切棍子)
- 克隆虚拟机无法上网:显示无法连接到eth0
- 跟我一起学习MySQL技术内幕(第五版):(第三章学习日记17)
- ASP.NET MVC4 导出Excel问题
- Android UI(EditText)详解
- java project发布成运行jar包
- UVa10003 cutting sticks
- cocos2d-x 游戏嵌入到ios/android应用内部 - android篇
- 判断字符串是否为空
- java基础——了解Enum
- Umbraco 官方技术文档 翻译 四 、Creating media-创建媒体
- 六大Web负载均衡原理与实现
- 糗事百科简单爬虫
- Django UnicodeEncodeError解决
- 基于Cloudera Manager5.7配置MapReduce与HiveOnSpark压缩