vijos p1143(三取方格数)(100)
多线程 DP。
真心觉得这个方程不好想!
设f[k,i,j,l], 表示走第k步,第一个人,第二个人和第二个人各走到第I行,第j行和第L行所能得到的最优解(我们规定前一个人比后一个人先走!)。
状态转移:
规定 t[1]:=0; t[2]:=-1;
for w:=1 to 2 do
for q:=1 to 2 do
for p:=1 to 2 do
f[k,i,j,l]:=max(f[k,i,j,l],f[k-1,i+t[w],i+t[q],l+t[p]])
共有八种状态转移的方式!
接下来:由于更新了 i,j,l 并规定了前一个人比后一个人先走所以:
有 f[k,i,j,l]:=f[k,i,j,l]+s[i,k-i+1].
接下来,如果有i<>j说明 第二个人当前的状态还没有人走过,所以我们可以
f[k,i,j,l]:=f[k,i,j,l]+s[j,k-j+1].
同理 如果有 l<>j 且 l<>i 我们有:
f[k,i,j,l]:=f[k,i,j,l]+s[j,k-l+1].
我们共要走 2*n-1步。
所以 ans:=f[2*n-1,n,n,n].
1 rogram p1143; uses math;2 const3 t:array[1..2]of longint=(0,-1);4 var5 i,j,k,l,m,n,w,p,q:longint;6 f:array[0..41,-20..20,-20..20,-20..20]of longint;7 s:array[0..20,0..20]of longint;8 begin9 read(n); 10 for i:=1 to n do 11 for j:=1 to n do 12 read(s[i,j]); 13 for k:=1 to 2*n-1 do 14 for i:=1 to k do 15 for j:=1 to k do 16 for l:=1 to k do 17 begin 18 begin 19 for w:=1 to 2 do 20 for p:=1 to 2 do 21 for q:=1 to 2 do 22 f[k,i,j,l]:=max(f[k,i,j,l],f[k-1,i+t[w],j+t[p],l+t[q]]); 23 end; 24 f[k,i,j,l]:=f[k,i,j,l]+s[i,k-i+1]; 25 if(i<>j)then f[k,i,j,l]:=f[k,i,j,l]+s[j,k-j+1]; 26 if(i<>l)and(j<>l)then f[k,i,j,l]:=f[k,i,j,l]+s[l,k-l+1]; 27 end; 28 write(f[2*n-1,n,n,n]); 29 end.
这种类型的题目还要多加练习....
转载于:https://www.cnblogs.com/zyxx233/archive/2012/12/08/2809217.html
vijos p1143(三取方格数)(100)相关推荐
- [Vijos 1143]三取方格数
Description 设有N*N的方格图,我们将其中的某些方格填入正整数, 而其他的方格中放入0. 某人从图得左上角出发,可以向下走,也可以向右走,直到到达右下角. 在走过的路上,他取走了方格中的数 ...
- Vijos-p1143三取方格数(动态规划 多进程dp)
背景 JerryZhou同学经常改编习题给自己做. 这天,他又改编了一题..... 描述 设有N*N的方格图,我们将其中的某些方格填入正整数, 而其他的方格中放入0. 某人从图得左上角出发,可以向下走 ...
- 【网络流】解题报告: luogu P2045 方格取数加强版(k取方格数)(最大费用最大流)
点边转化:把每个格子 (i,j) 拆成一个入点一个出点. 详解链接:[图论技巧]点边转化(拆点和拆边) 从每个入点向对应的出点连两条有向边:一条容量为 1 ,费用为格子 (i,j) 中的数: 另一条容 ...
- 一文细数100+个数据分析指标
一文细数100+个数据分析指标 一.用户数据指标 IP(Internet Protocol) UV(Unique Visitor) PV(Page View) VV(Visit View) DAU(D ...
- 51单片机实现三位十进制数加减乘除运算
51单片机实现三位十进制数加减乘除运算 一.题目 51单片机IO接口作业 请将附件给出的Proteus图用51单片机完成一个计算器功能. 1.显示采用动态分时8位共阳数码管输出. 2.采用4*4矩阵键 ...
- 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?
百钱买百鸡问题.母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只? 1 #include<stdio.h>2 int main()3 {4 int ...
- 一个hin秀的小学三年级奥数题 [hin秀]
~~~~~~不知为何总会被小学的题虐哭QAQ,真的秀啊,毒害广大小朋友~~~~~~ 一个hin秀的小学三年级奥数题 [hin秀] 题目: 给出一个无限大的棋盘 n×n (n>0 , 是 ...
- 【面试题】从123456中取出三个数,取出三个不同数的概率是多少?
面试题目: 从123456中取出三个数,取出三个不同数的概率是多少? 答案: 随便取数个数: 6 * 6 * 6 = 216: 取出不同数的个数是:6 * 5 * 4 = 120 概率 = 120 / ...
- 简述计算机联锁设备三取二制式的工作原理,车站信号
<车站信号(中专)>系统地介绍了车站信号设备的工作原理.主要内容包括:继电集中联锁和计算机联锁.继电集中联锁介绍双线双向四显示自动闭塞提速区段车站6502电气集中的设备组成.电路原理和故障 ...
最新文章
- Socket通信之操作系统的字节序和位数
- 微信支付invalid total_fee 的报错
- Nature: 拟南芥微生物组功能研究1培养组学—高通量细菌分离培养鉴定
- 时代天使点燃口腔赛道,瑞尔集团离下一只“牙茅”还有多远?
- 图文说明如何使用T4在VS2008里生成代码
- 【IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (下篇)-ipfs + Ethereum 大图片存储
- 【thymeleaf 】在 thymeleaf 中使用 shiro 标签
- 利用ES6的Generator语法实现自定义iterator
- mysql创建function 报错误1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in
- iOS开发ARC内存管理
- 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
- 18650锂电池保护板接线图_锂电池保护板的原理介绍保护板的构成和主要作用
- android手机常用浏览器,Android平台三款手机浏览器对比评测
- 星际开图挂_《星际争霸2》牛x强力高端职业玩家手把手教你识别开图挂
- 计算机主机配置一般有机箱主板cpu,电脑配置参数详解教程
- 备受知名投资人青睐的Pocket Network,潜力几何?
- 关于locale的设定
- 大数据BI可视化应用介绍
- Private,Public,Protected
- 区块链学习笔记23——ETH反思
热门文章
- c语言flash里能存文件吗,STM32内部FLASH打包读写
- 深度学习笔记4:Self-Taught Learning and Unsupervised Feature Learning
- Setting up Jupyter with Python 3 on Ubuntu
- (转载)微信公众平台开发入门教程
- vc遍历网页表单并自动填写提交
- Involution代码
- 使用帆软finereport实现跳转的一点心得
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和不能接收数据问题讨论
- ISATAP隧道技术及实践
- 【康拓展开逆康托展开】