Dire Wolf HDU - 5115
一开始很自然的想到了贪心,跑了一下贪心,发现无法处理某一段已经被选走的情况,根据数据范围,区间dp比较适合,能储存区间取样信息
设dp[i][j]为已经杀死区间[i,j]的最小值,可以得到转移方程,dp[i][j] = min(dp[i][k-1]+dp[k+1][j]+a[k]+b[i-1]+b[j+1]),也就是说选用k为中间点,合并i-(k-1),(k+1)-j两个区间,且这两个区间已经被选走,能产生的影响为这两个区间的另一侧,注意初始化将非法区域设为0
#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ((x)&(-x))
typedef long long LL;
typedef pair<int,int> pii; int a[], b[], dp[][]; void run_case() {
int n; cin >> n;
memset(dp, , sizeof(dp));
for(int i = ; i <= n; ++i) cin >> a[i];
for(int i = ; i <= n; ++i) cin >> b[i];
a[] = a[n+] = b[] = b[n+] = ;
for(int i = ; i <= n; ++i)
for(int j = i+; j <= n; ++j)
dp[i][j] = 0x3f3f3f3f;
for(int i = ; i <= n; ++i) dp[i][i] = a[i] + b[i-] + b[i+];
for(int i = n-; i >= ; --i) {
for(int j = i+; j <= n; ++j) {
for(int k = i; k <= j; ++k) {
dp[i][j] = min(dp[i][j], dp[i][k-]+dp[k+][j]+a[k]+b[i-]+b[j+]);
}
}
}
cout << dp[][n] << "\n";
} int main() {
ios::sync_with_stdio(false), cin.tie();
cout.flags(ios::fixed);cout.precision();
int t; cin >> t;
for(int i = ; i <= t; ++i) {
cout << "Case #" << i << ": ";
run_case();
}
//cout.flush();
return ;
}
Dire Wolf HDU - 5115的更多相关文章
- Dire Wolf HDU - 5115(区间dp)
Dire Wolf Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)Total ...
- HDU 5115 Dire Wolf 区间dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...
- 动态规划(区间DP):HDU 5115 Dire Wolf
Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...
- hdu 5115 Dire Wolf(区间dp)
Problem Description Dire wolves, also known as Dark wolves, are extraordinarily large and powerful w ...
- HDU - 5115 Dire Wolf (非原创)
Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...
- Dire Wolf(区间DP)
Dire Wolf Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)Total ...
- Dire Wolf——HDU5115(区间DP)
题意 就是有一对狼,每个狼有初始的攻击力,并且还能给左右两边的狼提供攻击力加成,当冒险家杀死一头狼的时候他也会受到这个狼目前攻击力的伤害 实例解析 33 5 78 2 0 有三头狼,刚开始第二头狼给他 ...
- Dire Wolf——HDU5115
Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...
- Hdu OJ 5115 Dire Wolf (2014ACM/ICPC亚洲区北京站) (动态规划-区间dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:前面有n头狼并列排成一排, 每一头狼都有两个属性--基础攻击力和buff加成, 每一头 ...
随机推荐
- Lenet 神经网络-实现篇(1)
Lenet 神经网络结构为: ①输入为 32*32*1 的图片大小,为单通道的输入: ②进行卷积,卷积核大小为 5*5*1,个数为 6,步长为 1,非全零填充模式: ③将卷积结果通过非线性激活函数: ...
- bugku 前女友
首先打开链接然后会发现 照常情况下进行分析 查看源码然后发现 在这一串文字后还有一个链接然后 发现链接被隐藏了然后我们将link 删除就会显示出来点开新的连接 然后会发现这个 (仔细一看好像是php中 ...
- 一起学Netty(一)之HelloWorld,可以聊天的小程序哦
转自于:http://blog.csdn.net/linuu/article/details/51306480
- json字符串和表相互转化中遇到的一个严重问题
导致脚本崩溃的一个问题 Import "zm.luae" zm.Init Dim aaa="fdsf23423dsfsdf" dim 结果表=Encode.Js ...
- linux 配置php环境变量
vim /etc/profile //加上 export PATH=$PATH:/usr/local/php/bin 保存退出 source /etc/profile php -v 注:该配置对所有用 ...
- opencv:截取 ROI 区域
Rect roi; roi.x = 100; roi.y = 100; roi.width = 250; roi.height = 200; // 截取 ROI 区域 // 这种方式改变 sub,原图 ...
- java篇 之 ==与equals
==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值. "=="比"equals"运行速度快,因为"=="只是比较引用. ...
- 吴裕雄 PYTHON 神经网络——TENSORFLOW 双隐藏层自编码器设计处理MNIST手写数字数据集并使用TENSORBORD描绘神经网络数据2
import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data os.envi ...
- caffe 模型的加载
在caffe中模型的加载是通过这个函数加载的: void Net<Dtype>::CopyTrainedLayersFrom(const string trained_filename)
- django的静态文件配置和路由控制
上一篇写到刚建完django项目,此时我登录页面中调用了js文件,执行后发现报错了找不到js这个文件 目录结构如图所示: <!DOCTYPE html> <html lang=&qu ...