【ZJOI2017 Round1练习&BZOJ5354】D7T3 room(DP)
题意:


思路:

写了两种版本
考场版本
var dp:array[..,..]of longint;
t:array[..,..]of longint;
n,m,i,j,k,oo,ans,d1:longint; function min(x,y:int64):int64;
begin
if x<y then exit(x);
exit(y);
end; begin
assign(input,'room.in'); reset(input);
assign(output,'room.out'); rewrite(output);
readln(n,m,d1);
oo:=maxlongint>>;
for i:= to n do
for j:= to m do read(t[i,j]); for i:= to n do
begin
for j:= to m do
for k:= to m do
if j<>k then dp[j,k]:=dp[j,k]+t[i-,j]+t[i-,k]
else dp[j,k]:=oo; for j:= to m do
for k:= to m do dp[j,k]:=min(dp[j,k],dp[j-,k]+d1); for j:=m- downto do
for k:= to m do dp[j,k]:=min(dp[j,k],dp[j+,k]+d1); for j:= to m do
for k:= to m do dp[j,k]:=min(dp[j,k],dp[j,k-]+d1); for j:= to m do
for k:=m- downto do dp[j,k]:=min(dp[j,k],dp[j,k+]+d1);
end;
ans:=oo;
for i:= to m do
for j:= to m do
if i<>j then ans:=min(ans,dp[i,j]+t[n,i]+t[n,j]);
writeln(ans);
{for i:=1 to n do
for j:=1 to m do
for k:=1 to m do writeln(i,' ',j,' ',k,' ',dp[i,j,k]+t[i,j]+t[i,k]);}
close(input);
close(output);
end.
赛后自测版本
var dp:array[..,..,..]of longint;
t:array[..,..]of longint;
n,m,d1,i,j,k,ans:longint; function min(x,y:longint):longint;
begin
if x<y then exit(x);
exit(y);
end; begin
assign(input,'room.in'); reset(input);
assign(output,'room.out'); rewrite(output);
readln(n,m,d1); for i:= to n do
for j:= to m do read(t[i,j]); for i:= to n do
begin
for j:= to m do
for k:= to m do
if j<>k then dp[i,j,k]:=dp[i-,j,k]+t[i,j]+t[i,k]
else dp[i,j,k]:=maxlongint>>; for j:= to m do
for k:= to m do
if (j<>k)and(j-<>k) then dp[i,j,k]:=min(dp[i,j,k],dp[i,j-,k]+d1); for j:=m- downto do
for k:= to m do
if (j<>k)and(j+<>k) then dp[i,j,k]:=min(dp[i,j,k],dp[i,j+,k]+d1); for j:= to m do
for k:= to m do
if (j<>k)and(k-<>j) then dp[i,j,k]:=min(dp[i,j,k],dp[i,j,k-]+d1); for j:= to m do
for k:=m- downto do
if (j<>k)and(k+<>j) then dp[i,j,k]:=min(dp[i,j,k],dp[i,j,k+]+d1);
end; ans:=maxlongint;
for i:= to m do
for j:= to m do
if i<>j then ans:=min(ans,dp[n,i,j]);
writeln(ans); close(input);
close(output);
end.
【ZJOI2017 Round1练习&BZOJ5354】D7T3 room(DP)的更多相关文章
- 【ZJOI2017 Round1练习&BZOJ4767】D1T3 两双手(排列组合,DP)
题意: 100%的数据:|Ax|,|Ay|,|Bx|,|By| <= 500, 0 <= n,Ex,Ey <= 500 思路:听说这是一道原题 只能往右或者下走一步且有禁止点的简化版 ...
- 【ZJOI2017 Round1练习】D4T2 trie(贪心,状压DP)
题意:现在 Matej 手上有 N 个英文小写字母组成的单词, 他想知道,如果将这 N 个单词中的字母分别进行重新排列,形成的字母树的节点数最少是多少. n<=16,len[i]<=100 ...
- 【ZJOI2017 Round1练习&BZOJ4774】D3T2 road(斯坦纳树,状压DP)
题意: 对于边带权的无向图 G = (V, E),请选择一些边, 使得1<=i<=d,i号节点和 n − i + 1 号节点可以通过选中的边连通, 最小化选中的所有边的权值和. d< ...
- 【ZJOI2017 Round1练习&BZOJ5350】D5T1 masodik(DP,斜率优化)
题意:你要从(0,0)点走到(n,m), 每次只能往 x 轴或者 y 轴正方向移动一个单位距离.从(i,j)移动到(i,j+1)的代价为 ri,从(i,j)移动到(i+1,j)的代价为 cj. 求最小 ...
- 【ZJOI2017 Round1练习】D8T2 sequence(DP)
题意: 思路: #include <algorithm> #include <iostream> #include <cstring> #include <c ...
- 【ZJOI2017 Round1练习&UVA1057】D6T1 Routing(DP,SPFA)
题意:给你一个有向图, 并指定起点和终点. 问要从起点走向终点, 再从终点走向起点, 最少需要走过多少不同的节点. 对于 100%的数据, 有 N<=100, M<=min(1000,N* ...
- 【ZJOI2017 Round1后记】
2017.4.1: NOIP+Round1综合成绩出来,标准分离续命线差了80分,果然还是联赛坑挖太大了…… 不管怎么说能续命的话还是要试一下的…… 发毒誓:Round2前不打手游,不看NGA,不看星 ...
- 【ZJOI2017 Round1练习&BZOJ4765】D1T3 普通计算姬(主席树,分块)
题意: 思路:分块 使用树状数组维护sum[i]的前缀和 使用主席树维护root到u的路径上点的编号出现的个数 每次操作如果是修改就加入队列 如果是询问,考虑块内操作对询问的影响,每次在x点加上y会使 ...
- 【ZJOI2017 Round1练习】D2T2 iqtest(排列组合)
题意: 思路: 根据欧拉定理,a^(phi(n)-1)为a mod n的逆元 ..]of longint; s,ans,x,mo,k,phi,tmp:int64; i,m,n,j:longint; f ...
随机推荐
- 转 Docker 组件如何协作?- 每天5分钟玩转容器技术(8)
http://www.cnblogs.com/CloudMan6/p/6774519.html 记得我们运行的第一个容器吗?现在通过它来体会一下 Docker 各个组件是如何协作的. 容器启动过程如下 ...
- jmeter(四)检查点
JMeter也有像LR中的检查点,本篇就来介绍下JMeter的检查点如何去实现. JMeter里面的检查点通过添加断言来完成. 检查点:上一章讲到,我们对用户名和密码进行了参数化,那么怎样来判断jme ...
- 454 4Sum II 四数相加 II
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0.为了使问题简单化,所有的 A, ...
- Java基础教程(24)--集合
一.Java集合框架 集合,有时也称为容器,是一个用来存储和管理多个元素的对象.Java中的集合框架定义了一套规范,用来表示和操作集合,使具体操作与实现细节解耦.集合框架都包含下列内容: 接口:这 ...
- oracle 创建表
--创建表 create table browser_track( btId number not null , opend_id ) not null, url_address ) not null ...
- iOS Programming Localization 本地化
iOS Programming Localization 本地化 Internationalization is making sure your native cultural informatio ...
- linux 安装 mongo 3.4
要求:linux 安装 mongo 3.4 大体上,按照官网提供的方法来做. 系统是ubuntu 16.04 安装的是mongo3.4.8 社区版 1. 导入导入包管理系统使用的公钥 ...
- spring 获取ApplicationContext
第一种:获取根目录下的文件名 ApplicationContext ac = new ClassPathXmlApplicationContext("../mvc-dispatcher-se ...
- git 控制操作
克隆文件 git clone https://gitee.com/xxxxx/xxxxx.git 克隆分支文件 git clone -b 分支名 https://gitee.com/xxxxx/xxx ...
- java引用数据类型在方法中的值传递
package org.jimmy.autosearch20180821.test; public class TestStringArr { public static void main(Stri ...