【Vijos1534】高性能计算机(DP)
题意:有NA个A与NB个B两种任务需要完成,完成一段长度为X的A任务需要时间ta+ka*x*x,B任务类似,连续的同一种任务不能分成两段运行
有P台可以并行运算的计算机,求最快完成所有任务的时间
1≤nA≤60,1≤nB≤601≤nA≤60,1≤nB≤60
1≤p≤201≤p≤20
1≤tA≤1000,1≤tB≤1000,1≤kA≤50,1≤kB≤50
思路:无聊在Vijos上随机的一道萎靡题居然花了两天查错
黑书上也有,那种写法看起来很强大,不过下次再写
两次DP,第一次dp[i,j,0/1]表示第X台机器做i单位A,j单位B,最后做的是A/B的最小时间
第二次dp[i,j]表示前X台机器做i单位A,j单位B的最小时间
其实不加优化也能过,就是在优化上调了2天,不过速度接近快了10倍
当i'>=i,j'>=j时做(i',j')的花费必定大于做(i,j)
所以dp[i-x,j-y]<f[x,y]时继续增大y必定不会更优,break即可
调了两天主要是因为程序把边界的inf当成有效数值直接就break了,导致有些有效的转移没有被用到
真是大坑
var f:array[..,..,..]of longint;
dp:array[..,..]of longint;
ta,tb,ka,kb:array[..]of longint;
na,nb,p,i,j,k,v,x,y:longint; function min(x,y:longint):longint;
begin
if x<y then exit(x);
exit(y);
end; function max(x,y:longint):longint;
begin
if x>y then exit(x);
exit(y);
end; procedure print;
var i,j:longint;
begin
// writeln(v);
// for i:= to na do
// for j:= to nb do writeln(dp[i,j]);
// writeln;
// end;
//writeln;
end; begin
assign(input,'data.in'); reset(input);
assign(output,'Vijos1534.out'); rewrite(output);
read(na,nb);
read(p);
for i:= to p do read(ta[i],tb[i],ka[i],kb[i]);
fillchar(dp,sizeof(dp),$1f);
dp[,]:=;
for v:= to p do
begin
fillchar(f,sizeof(f),$1f);
f[,,]:=; f[,,]:=;
for i:= to na do
for j:= to nb do
for k:= to do
begin
if i+k<=na then f[i+k,j,]:=min(f[i+k,j,],f[i,j,]+ta[v]+ka[v]*k*k);
if j+k<=nb then f[i,j+k,]:=min(f[i,j+k,],f[i,j,]+tb[v]+kb[v]*k*k);
// if (i+k>na)and(j+k>nb) then break;
end;
//tmp:=dp; for i:=na downto do
for j:=nb downto do
for k:= to do
for x:= to i do
for y:= to j do
begin
dp[i,j]:=min(dp[i,j],max(dp[i-x,j-y],f[x,y,k]));
// writeln(i,' ',j,' ',x,' ',y,' ',k);
if (f[x,y,k]>dp[i-x,j-y])and(f[x,y,k]<) then break;
end; end;
writeln(dp[na,nb]);
// print;
//for i:= to na do
// for j:= to nb do if dp[i,j]= then writeln(i,' ',j);
//writeln(dp[,]);
close(input);
close(output);
end.
【Vijos1534】高性能计算机(DP)的更多相关文章
- 【WC2001】【cogs358】高性能计算机(动态规划)
[WC2001][cogs358]高性能计算机(动态规划) ##题面 [问题描述] 现在有一项时间紧迫的工程计算任务要交给你--国家高性能并行计算机的主管工程师--来完成.为了尽可能充分发挥并行计算机 ...
- 高性能计算机传奇(vamei)
高性能计算机是用网络将多台计算机连接在一起.并构成一个统一的系统,从而拥有远超个人电脑的计算能力.这样利用网络,让计算机合作工作的并行系统又称为集群(cluster).server.分布式计算机.超级 ...
- WC2001 高性能计算机
cogs网址 这道题DP 设g[0/1][i][a][b]表示第i个机子做了a个A,b个B,0/1表示当前为A/B的最小代价 N^4转移 设f[i][a][b]表示前i个机子做了a个A,b个B的最小答 ...
- IT6516功能兼容芯片|DP转VGA方案|CS5202替代兼容IT6516
台湾联阳T6516是一种高性能的DP显示端口到VGA转换器方案芯片.IT6516结合DisplayPort接收器和三重DAC,通过转换功能支持DisplayPort输入和VGA输出.内置Display ...
- CapstoneCS5212替代IT6516方案|DP转VGA芯片|替代兼容IT6516
台湾联阳IT6516是一种高性能的DP显示端口到VGA转换器方案芯片.IT6516结合DisplayPort接收器和三重DAC,通过转换功能支持DisplayPort输入和VGA输出.内置Displa ...
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
- Hadoop学习之旅二:HDFS
本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...
- 前端学HTTP之网络基础
× 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...
- 门外汉的IT
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机很早就走入了我的生活.小学时,家里放一台联想“天琴”的电脑.它霸气的音箱造型 ...
随机推荐
- Vue处理ajax请求
Ajax请求 1>解决跨域问题 1.1前端解决.只需要在vue.config.js中增加devServer节点增加代理: const path = require("path" ...
- Dede技巧
解决DEDE图集上传图片时跳出302错误 本地上传图集的时候突然提示网页出错,还爆出302错误. 解决办法是在include/userlogin.class.php文件中的第二行session_s ...
- ssh整合思想 Spring与Hibernate的整合 项目在服务器启动则自动创建数据库表
Spring整合Hibernate Spring的Web项目中,web.xml文件会自动加载,以出现欢迎首页.也可以在这个文件中对Spring的配置文件进行监听,自启动配置文件, 以及之前Struts ...
- OC和C++的混用1
//Objective-C类 /*在混用之前需要做一步非常重要的事:不是代码而是编译器选项,在做混合编译之前一定要把编译器的Compile Sources As选项改为Objective C++. 修 ...
- python class 巩固
class 类定义 语法格式如下: class ClassName: <statement-1> ... <statement-N> 类属性与方法 属性 操作属性 getatt ...
- 当c++遇上音乐
运用到的函数 #include <windows.h> Beep( f, t ); Sleep( t ); eep() 函数可以让蜂鸣器发出频率为f赫兹,音长大约为 2t 毫秒的音.(注意 ...
- RAID阵列搭建
RAID0 2个或2个以上磁盘,称为条带卷,无容错,可提高读写效率,其中一个磁盘损坏,所有文件不可读磁盘大小尽量统一,或者以最小的空间为标准,可用空间=N*min RAID1 2个或2个磁盘以上,称为 ...
- Linux下同进程多进程号实时监控
一.需求: Linux上对一个进程名称可能会对应的多个进程号的进程进行监控,如果有多个则输出到一个日志文件. 以上问题针对的是一个定时程序还未运行结束,到下一个时刻程序又运行起来了,避免造成重复调用接 ...
- 《linux设备驱动开发详解》笔记——12linux设备驱动的软件架构思想
本章重点讲解思想.思想.思想. 12.1 linux驱动的软件架构 下述三种思想,在linux的spi.iic.usb等复杂驱动里广泛使用.后面几节分别对这些思想进行详细说明. 思想1:驱动与设备分离 ...
- python数据类型之字典(dict)和其常用方法
字典的特征: key-value结构key必须可hash,且必须为不可变数据类型.必须唯一. # hash值都是数字,可以用类似于2分法(但比2分法厉害的多的方法)找.可存放任意多个值.可修改.可以不 ...