zoukankan      html  css  js  c++  java
  • hdu 5115 区间dp ***

    题意:有n只狼,每只狼有两种属性,一种攻击力一种附加值,我们没杀一只狼,那么我们受到的伤害值为这只狼的攻击值与它旁边的两只狼的附加值的和,求把所有狼都杀光受到的最小的伤害值。

    枚举中间k作为最后杀死的狼

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<queue>
     7 #include<map>
     8 using namespace std;
     9 #define MOD 1000000007
    10 const int INF=0x3f3f3f3f;
    11 const double eps=1e-5;
    12 typedef long long ll;
    13 #define cl(a) memset(a,0,sizeof(a))
    14 #define ts printf("*****
    ");
    15 const int MAXN=1005;
    16 int n,m,tt;
    17 int a[MAXN],b[MAXN],dp[MAXN][MAXN];
    18 int main()
    19 {
    20     int i,j,k;
    21     #ifndef ONLINE_JUDGE
    22     freopen("1.in","r",stdin);
    23     #endif
    24     scanf("%d",&tt);
    25     int ca=1;
    26     while(tt--)
    27     {
    28         scanf("%d",&n);
    29         for(i=0;i<n;i++)
    30         {
    31             scanf("%d",a+i);
    32         }
    33         for(i=0;i<n;i++)
    34         {
    35             scanf("%d",b+i);
    36         }
    37         for(int d=0;d<n;d++)
    38         {
    39             for(i=0;i+d<n;i++)
    40             {
    41                 j=i+d;
    42                 dp[i][j]=INF;
    43                 for(k=i;k<=j;k++)
    44                 {
    45                    dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+a[k]+b[i-1]+b[j+1]);
    46                 }
    47             }
    48         }
    49         printf("Case #%d: %d
    ",ca++,dp[0][n-1]);
    50     }
    51 }
  • 相关阅读:
    spring boot 整合elasticsearch
    elasticsearch 高级查询
    elasticsearch 基本操作
    day9--回顾
    day9--多线程与多进程
    day9--paramiko模块
    day10--异步IO数据库队列缓存
    数据库连接池
    数据库事务的四大特性以及事务的隔离级别
    使用JDBC进行数据库的事务操作(2)
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4662070.html
Copyright © 2011-2022 走看看