标签: 区间dp

hdu4570 http://acm.hdu.edu.cn/showproblem.php?pid=4570

题意:这题题意理解变态的。转自大神博客:

这题题意确实有点难懂,起码对于我这个英语渣渣来说是这样,于是去别人的博客看了下题目意思,归纳起来如下:

给出一个长度为n的数列,将其分成若干段,要求最小,其中ai是每一段数列的第一项,bi是每一段的长度,l为将数列分成l段。

比如样例:n=7,A={1 2 4 4 5 4 3},将其分成1 2 4| 4 5| 4| 3,则其所用空间为1*2^3+4*2^2+4*2^1+3*2^1=38,而如果分成1 2| 4 4 5| 4 3,则其所用空间为1*2^2+4*2^3+4*2^2=52,比38大。

思路:区间DP

用dp[i][j]表示第 i 层到第 j 层用的最少内存

初始化工作是,根据题目, 数据保证答案中的压缩不会超过20层,所以 当 j-i 小于20的时候,dp[i][j]初始化为 a[i]* 2&(j-i+1), 否则初始化为一个INF

方程 dp[i][j]= min(dp[i][j], dp[i][k]+dp[k+1][j] )   i<=k<j

自WA点: 构造解时候,i 和 j都该逆序遍历

 #include <iostream>
#define N 65
using namespace std; const long long INF = 1LL<<;
long long dp[N][N],a[N]; int main()
{
int _;
cin>>_;
while(_--)
{
int n,i,j,k;
cin>>n;
for(i=;i<n;i++) cin>>a[i];
for(i=;i<n;i++)
for(j=i;j<n;j++)
if(j-i<) dp[i][j]=a[i]*(<<(j-i+));
else dp[i][j]=INF;
for(i=n-;i>=;i--)
for(j=n-;j>=i;j--)
for(k=i;k<j;k++)
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]);
cout<<dp[][n-]<<endl;
}
return ;
}

【hdu4570】Multi-bit Trie 区间DP的更多相关文章

  1. HDU4570:Multi-bit Trie(区间DP)

    Problem Description IP lookup is one of the key functions of routers for packets forwarding and clas ...

  2. hdu 4570 Multi-bit Trie 区间DP入门

    Multi-bit Trie 题意:将长度为n(n <= 64)的序列分成若干段,每段的数字个数不超过20,且每段的内存定义为段首的值乘以2^(段的长度):问这段序列总的内存最小为多少? 思路: ...

  3. HDU 4570---Multi-bit Trie(区间DP)

    题目链接 Problem Description IP lookup is one of the key functions of routers for packets forwarding and ...

  4. Codechef STREDUC Reduce string Trie、bitset、区间DP

    VJ传送门 简化题意:给出一个长度为\(l\)的模板串\(s\)与若干匹配串\(p_i\),每一次你可以选择\(s\)中的一个出现在集合\(\{p_i\}\)中的子串将其消去,其左右分成的两个串拼接在 ...

  5. HDU 4570(区间dp)

    E - Multi-bit Trie Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  6. hdu-5653 Bomber Man wants to bomb an Array.(区间dp)

    题目链接: Bomber Man wants to bomb an Array. Time Limit: 4000/2000 MS (Java/Others)     Memory Limit: 65 ...

  7. 【BZOJ-4380】Myjnie 区间DP

    4380: [POI2015]Myjnie Time Limit: 40 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 162  Solved: ...

  8. 【POJ-1390】Blocks 区间DP

    Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5252   Accepted: 2165 Descriptio ...

  9. 区间DP LightOJ 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...

随机推荐

  1. python 基础 7.4 os 模块

    #/usr/bin/python #coding=utf8 #@Time   :2017/11/11 3:15 #@Auther :liuzhenchuan #@File   :os 模块.py im ...

  2. ios导航栏问题

    http://m.blog.csdn.net/article/details?id=47395605

  3. 时间写入文件名 nohup 原理 Command In Background your shell may have its own version of nohup

    echo 123 > `date +%Y-%m-%d-%H.tmp` echo 123 > /home/`date +%Y-%m-%d-%H.tmp` nohup --help [root ...

  4. 限制线程数 Limit the number of threads started by colly 随机延迟

    random delay | Colly http://go-colly.org/docs/examples/random_delay/

  5. JAVA Exception处理

    原文地址:http://blog.csdn.net/hguisu/article/details/6155636 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用 ...

  6. Django 后台管理 之登录和注销

    Session:     session是服务器端生成保存的一个键值对 , session内部机制依赖于cookie . 用户登录后返回给客户端一个随机字符串,客户端带着随机字符串访问服务器,用于验证 ...

  7. ant 内存空间不足

    在报错的标签中加入属性maxmemory="1024m" fork="true" 再添加标签 <jvmarg value="-Xmx2048m& ...

  8. HDU 1032 The 3n + 1 problem (这个题必须写博客)

    The 3n + 1 problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  9. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals)

    题目链接:http://codeforces.com/contest/828 A. Restaurant Tables time limit per test 1 second memory limi ...

  10. python- 常见算法 python内置模块

    1.冒泡排序 需求:请按照从小到大对列表 [13, 22, 6, 99, 11] 进行排序 原理:相邻两个值进行比较,将较大的值放在右侧,依次比较! li=[39,11,43,88,765,9]for ...