hdu 4283 You Are the One (2012 ACM/ICPC Asia Regional Tianjin Online 1006 )
2012-09-10 14:04
405 查看
一开始的想法是贪心, 是错的。 最后是dp做的dp[x][y]表示第x位到第y位所需要的花费, 然后是转移方程 dp到x位的时候会有3个决策
1. x最先出栈;
2.x最后出栈;
3.先有i个出栈,然后x出栈,到剩下的出栈;
*/
1. x最先出栈;
2.x最后出栈;
3.先有i个出栈,然后x出栈,到剩下的出栈;
/*tmp = min( tmp, a[x]*i + dfs( x+1, x+i ) + dfs( x+i+1, y ) + (i+1)*(s[y]-s[x+i]) ); //
这一句中的(i+1)*(s[y] - s[x+i])是表示dp[x+i+1][y]之前有i+1个人先出栈了之后所要增加的花费
*/
#include<cstdio> #include<cstring> #define M 110 #define inf 1<<30 int dp[M][M], s[M], a[M]; int n; int min( int a, int b ){ return a > b? b: a; } int dfs( int x, int y ) { if( dp[x][y] != -1 ) return dp[x][y]; if( x >= y ) return dp[x][y] = 0; int tmp = dfs( x+1, y ) + s[y] - s[x]; //x位置最先出栈 for( int i = 1; i < y - x; ++i ){ //x位置前面有i个出栈 tmp = min( tmp, a[x]*i + dfs( x+1, x+i ) + dfs( x+i+1, y ) + (i+1)*(s[y]-s[x+i]) ); } tmp = min( tmp, dfs( x+1, y ) + a[x]*(y-x) ); //x位置最后出栈 return dp[x][y] = tmp; } int main() { int t = 0, T; scanf( "%d", &T ); while( T-- ){ scanf( "%d", &n ); s[0] = 0; memset( dp, -1, sizeof(dp) ); for( int i = 1; i <= n; i++ ){ scanf( "%d", a + i ); s[i] = s[i-1] + a[i]; } printf( "Case #%d: %d\n", ++t, dfs( 1, n ) ); } }
相关文章推荐
- 2012 ACM/ICPC Asia Regional Tianjin Online 1006_you are the one 解题报告
- hdu 4279 Number (规律题 2012 ACM/ICPC Asia Regional Tianjin Online )
- hdu 4276 The Ghost Blows Light(2012 ACM/ICPC Asia Regional Changchun Online )
- HDU4280 Island Transport(2012 ACM/ICPC Asia Regional Tianjin Online)
- HDU-2017 ACM/ICPC Asia Regional Qingdao Online-1003-The Dominator of Strings
- 2016 ACM/ICPC Asia Regional Dalian Online 1006 football game 1007 hdu 5873 hdu 5874
- hdu 4750 Count The Pairs 并查集+二分+递推(2013 ACM/ICPC Asia Regional Nanjing Online 1003)
- HDU 4033 4036 4039 The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest
- The 37th ACM/ICPC Asia Regional Tianjin Site Online Contest - A.B.J
- 2012 ACM/ICPC Asia Regional Tianjin Online [赛后解题报告]
- hdu 4740 The Donkey of Gui Zhou 深搜(2013 ACM/ICPC Asia Regional Hangzhou Online 1003)
- hdu 4762 Cut the Cake 概率(2013 ACM/ICPC Asia Regional Changchun Online 1004)
- hdu 4268 Alice and Bob(2012 ACM/ICPC Asia Regional Changchun Online 12年长春网络赛)
- HDU 4405 Aeroplane chess (概率DP)——2012 ACM/ICPC Asia Regional Jinhua Online
- hdu 4027 Can you answer these queries? The 36th ACM/ICPC Asia Regional Shanghai Site
- 2012 ACM/ICPC Asia Regional Tianjin Online-Faulty Odometer
- HDU 5443 The Water Problem 2015 ACM/ICPC Asia Regional Changchun Online
- 2012 ACM/ICPC Asia Regional Tianjin Online ——A very hard mathematic problem解题报告
- HDU 5883 The Best Path 2016 ACM/ICPC Asia Regional Qingdao Online
- HDU 5883 The Best Path (欧拉通路) 2016 ACM/ICPC Asia Regional Qingdao Online