hdu 4283 动态规划 类似括号匹配

来源:互联网 发布:古风静态头像psd源码 编辑:程序博客网 时间:2024/05/21 22:30

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4283

题意:

You Are the One

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 450    Accepted Submission(s): 246


Problem Description
  The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attract a lot of boys and girls. Now there are n boys enrolling in. At the beginning, the n boys stand in a row and go to the stage one by one. However, the director suddenly knows that very boy has a value of diaosi D, if the boy is k-th one go to the stage, the unhappiness of him will be (k-1)*D, because he has to wait for (k-1) people. Luckily, there is a dark room in the Small hall, so the director can put the boy into the dark room temporarily and let the boys behind his go to stage before him. For the dark room is very narrow, the boy who first get into dark room has to leave last. The director wants to change the order of boys by the dark room, so the summary of unhappiness will be least. Can you help him?
 

Input
  The first line contains a single integer T, the number of test cases.  For each case, the first line is n (0 < n <= 100)
  The next n line are n integer D1-Dn means the value of diaosi of boys (0 <= Di <= 100)
 

Output
  For each test case, output the least summary of unhappiness .
 

Sample Input
2  512345554322
 

Sample Output
Case #1: 20Case #2: 24
 

Source
2012 ACM/ICPC Asia Regional Tianjin Online

#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int dp[102][102],t,n,num[102],sum[102],cas=1;// dp[i][j] 表示i  在区间[i,j]中 是第k个选出来的!!int main(){    cin>>t;    while(t--)    {        cin>>n;        int i,j,k,tmp;        sum[0]=0;        for(i=1; i<=n; i++)        {            cin>>num[i];            sum[i]=sum[i-1]+num[i];        }        for(i=1; i<=n; i++)        {            for(j=1; j<=n; j++)            {                if(i==j) dp[i][j]=0;                else dp[i][j]=(1<<29);            }        }        for(k=1; k<n; k++)        {            for(i=1; i<=n-k; i++)            {                int r=i+k;                dp[i][r]=min(dp[i][r],dp[i+1][r]+num[i]*k);// 区间里的最后一个                dp[i][r]=min(dp[i][r],dp[i+1][r]+sum[r]-sum[i]);//区间里的第一个                for(j=i+1; j<=r; j++)                {                    dp[i][r]=min(dp[i][r],dp[i+1][j]+dp[j+1][r]+num[i]*(j-i)+(sum[r]-sum[j])*(j-i+1));                }            }        }        printf("Case #%d: %d\n",cas++,dp[1][n]);    }    return 0;}/*5  512345554322*/



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 痔疮肉球特别痒怎么办 长了个小痔疮怎么办 产后4天没大便怎么办 7个月孕妇痔疮怎么办 运动完恶心想吐怎么办 跑步后恶心想吐怎么办 肠子不蠕动严重便秘怎么办 怀孕八个月严重便秘怎么办 怀孕七个月便秘严重怎么办 怀孕两个月便秘严重怎么办 3岁宝宝上火便秘怎么办 7个月的宝宝贫血怎么办 9个月婴儿贫血怎么办 肛裂大便有血怎么办 生完宝宝肛门痛怎么办 肛周脓肿出血了怎么办 胃胀怎么办简单的办法 吃多了胃胀难受怎么办 胃窦炎胆汁反流怎么办 怀孕总胆汁酸高怎么办 胃里胆汁反流怎么办 苦胆水吐出来了怎么办 喝多了吐胆汁怎么办 吐出黄水苦水是怎么办 喝酒喝的一直吐怎么办 孕期总胆汁酸高怎么办 孕早期胆汁酸高怎么办 孕妇总胆汁酸高怎么办 宝宝一天吐了6次怎么办 肛周脓肿破了怎么办 肛周脓肿发烧了怎么办 肛周脓肿便血该怎么办 婴儿得肛周脓肿怎么办 水痘长在龟头上怎么办 轻度萎缩性胃炎伴肠化怎么办 肺癌晚期腿肿了怎么办 胸骨剑突按压痛怎么办 22岁有白头发怎么办 血热导致掉头发怎么办 36岁脱发严重该怎么办 血热引起的脱发怎么办