小胖办证 wzoi
小胖办证
题目描述:
xuzhenyi要办个签证。办证处是一座M层的大楼,1<=M<=100。
每层楼都有N个办公室,编号为1..N(1<=N<=500)。每个办公室有一个签证员。
签证需要让第M层的某个签证员盖章才有效。
每个签证员都要满足下面三个条件之一才会给xuzhenyi盖章:
- 这个签证员在1楼
- xuzhenyi的签证已经给这个签证员的正楼下(房间号相同)的签证员盖过章了。
- xuzhenyi的签证已经给这个签证员的相邻房间(房间号相差1,楼层相同)的签证员盖过章了。
每个签证员盖章都要收取一定费用,这个费用不超过1000000000。
找出费用最小的盖章路线,使签证生效
输入格式:
第1行两个整数M和N。
接下来M行每行N个整数,第i行第j个数表示第i层的第j个签证员收取的费用。
输出格式:
按顺序打出你经过的房间的编号,每行一个数。
如果有多条费用最小的路线,输出任意一条。
样例输入:
3 4
10 10 1 10
2 2 2 10
1 10 10 10
样例输出:
3
3
2
1
1
时间限制:1000ms
空间限制:256MByte
思路:
这道题本质是与数字三角形一样的,区别在于这道题需要记录路径并且要正着dp一次反着dp一次。实际上路径只要用一个二维数组记录每个点的父亲就行。
代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std; struct node{
int x, y;
node() {}
node(int x1, int y_1) : x(x1), y(y_1) {}
}b[][]; int n, m;
ll a[][], f[][]; void out(int x, int y)
{
if(x == || y == ) return ;
out(b[x][y].x, b[x][y].y);
printf("%d\n", y);
} int main()
{
memset(f, 0x3f3f3f3f, sizeof(f));
scanf("%d%d", &n, &m);
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
scanf("%d", &a[i][j]);
for(int i = ; i <= m; i++)
f[][i] = a[][i];
for(int i = ; i <= n; i++)
{
for(int j = ; j <= m; j++)
{
ll n1 = f[i - ][j];
ll n2 = f[i][j - ];
ll n3 = f[i][j + ];
if(n1 <= n2 && n1 <= n3)
{
f[i][j] = n1 + a[i][j];
b[i][j] = node(i - , j);
}
else if(n2 <= n1 && n2 <= n3)
{
f[i][j] = n2 + a[i][j];
b[i][j] = node(i, j - );
}
else
{
f[i][j] = n3 + a[i][j];
b[i][j] = node(i, j + );
}
}
for(int j = m; j >= ; j--)
{
ll n1 = f[i - ][j];
ll n2 = f[i][j - ];
ll n3 = f[i][j + ];
if(n1 <= n2 && n1 <= n3)
{
f[i][j] = n1 + a[i][j];
b[i][j] = node(i - , j);
}
else if(n2 <= n1 && n2 <= n3)
{
f[i][j] = n2 + a[i][j];
b[i][j] = node(i, j - );
}
else
{
f[i][j] = n3 + a[i][j];
b[i][j] = node(i, j + );
}
}
}
ll mi = ;
int c;
for(int i = ; i <= m; i++)
if(f[n][i] < mi)
{
mi = f[n][i];
c = i;
}
out(n, c);
return ;
}
小胖办证 wzoi的更多相关文章
- dp式子100个……
1. 资源问题1-----机器分配问题F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2. 资源问题2------01背包问题F[I,j]:=max(f[i- ...
- dp方程
1. 资源问题1 -----机器分配问题 F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2. 资源问题2 ------01背包问题 F[I,j]:=ma ...
- [vijos P1112] 小胖的奇偶
第一次看到这题怎么也不会想到是并查集题目…星期五第一次看到这题,到今天做出来,实在是废了好多功夫.看了很多人的解题都有same和diff数组,我也写了,后来发现不对啊两个数组的话find函数怎么写呢? ...
- 成小胖学习ActiveMQ·基础篇
过了个春节,回到公司的成小胖变成了成大胖.但是你们千万别以为他那个大肚子里面装的都是肥肉,里面的墨水也多了不少嘞,毕竟成小胖利用春节的半个月时间专心学习并研究了 ActiveMQ,嘿嘿……这不,为了检 ...
- test20181007 wzoi
题意 分析 考场40分 错误的Manacher+dp. 用\(f(i)\)表示\(s_{1 \sim i}\)的最长偶数回文覆盖长度,在Manacher的同时用刷表法转移,每次还要对\(f(i-1)\ ...
- wzoi(栈模拟)
链接:https://ac.nowcoder.com/acm/contest/332/I 来源:牛客网 题目描述 bleaves 最近在 wzoi 上面做题. wzoi 的题目有两种,一种是 noip ...
- 王小胖之 Base64编码/解码
使用场景:编码网址作为URL参数,简单编码或加密数据,下载地址生成或解析. 实现功能:BASE64在线编码和解码. 数据实例:王小胖好啊,王小胖顶呱呱!! ~~ english 123 !@#$%^& ...
- 王小胖之 URL编码和解码
使用场景:程序员使用较多,主要是图个方便,实现很简单 实现功能:URL编码 和URL解码 数据实例: 输入:王小胖好啊,王小胖顶呱呱!! ~~ english 123 !@#$%^&*()_+ ...
- Vijos 1144 小胖守皇宫 【树形DP】
小胖守皇宫 描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步 ...
随机推荐
- mysql五补充:SQL逻辑查询语句执行顺序(待完善)
一.SELECT语句关键字的定义顺序(语法顺序) SELECT DISTINCT <select_list> FROM <left_table> <join_type&g ...
- TR move up && TR move down
code display :: <!DOCTYPE HTML><html> <head> <link href="boo ...
- stroke和fill顺序对绘图的影响
用canvas绘制线条和填充,fill()和stroke()调用顺序直接影响绘制的结构 先调用stroke在调用fill,绘制的效果看上去lineWidth只绘制出来一半,还以为是个大问题. < ...
- jmeter简单录制
JMeter介绍 1.JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具.JMeter可以用于测试静态或者动态资源的性能(文件.Servle ...
- angular.uirouter
首先给大家介绍angular-ui-router的基本用法.如何引用依赖angular-ui-router angular.module('app',["ui.router"]). ...
- WebService小例子———
WebService学习(刚开始) ———————————————————————————————————————————————————————————————————— WebService:跨平 ...
- Java Web:主动和被动方式检测安全的框架
对于某些敏感的系统例如支付.交易需要为其加固,有必要将可能的攻击情况考虑进来加以防范,于是有了这么一个简易的安全框架.在前辈的代码上( 详见 :http://blog.csdn.net/zhongwe ...
- 通过调用Word模板(Doc、dot)直接打印 z
通过替换模板中的指定 书签 来进行内容的替换.整合,然后直接发送到打印打印,也可以导出.即把打印出的语句换成保存函数. public static class myPrintByOffice ...
- C# 64位win7下DllImport LoadLibrary函数失败 z
[DllImport["kernel32.dll"]] static extern IntPtr LoadLibrary(string lpFileName); public vo ...
- 如何用ABAP代码读取CDS view association的数据
我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Stat ...