套模板的网站为什么排名做不上去企业管理官网登录入口
news/
2025/9/26 17:49:05/
文章来源:
套模板的网站为什么排名做不上去,企业管理官网登录入口,深圳最新新闻事件,免费定制网页【动态规划】抄近路 时间限制: 1 Sec 内存限制: 64 MB 提交: 105 解决: 68 [提交] [状态] [命题人:admin] 题目描述 “最近不知道怎么回事#xff0c;感觉我们这个城市变成了一个神奇的地方#xff0c;有时在路上走着走着人就消失了#xff01;走着走着突然又有人出现了感觉我们这个城市变成了一个神奇的地方有时在路上走着走着人就消失了走着走着突然又有人出现了你以为这是《寂静岭》《生化危机》《行尸走肉》拍摄地……哎先不说了这该死的雾霾又让我们迷路了。”李旭琳发愁地说。
张琪曼和李旭琳每天要从家到车站小区被道路分成许多正方形的块共有N×M块。由于道路太多以及雾霾的影响她们总是迷路所以你需要帮她们计算一下从家到车站的最短距离。注意一般情况下小区内的方块建有房屋只能沿着附近的街道行走有时方块表示公园那么就可以直接穿过。
输入 第一行是N和M0NM≤1000。注意李旭琳家坐标在方块11的西南角车站在方块MN的东北角。每个方块边长100米。接下来一行是整数K表示可以对角线穿过的方块坐标然后有K行每行是一个坐标。
输出 输出最短距离四舍五入到整数米。
样例输入 复制样例数据 3 2 3 1 1 3 2 1 2 样例输出 383
解题思路i 已知可以走的方向有上、下、左、右且有的方块允许走对角线因此可以用dp[i][j]dp[i][j]dp[i][j]代表做到坐标为(i,j)(i,j)(i,j)位置所走的最小路程因此此时仅需先判断其上一步是否能到达再更新dp[i][j]即可dp[i][j]即可dp[i][j]即可 dp[i][j]min(dp[i][j],dp[i−1][j]100.0)dp[i][j]min(dp[i][j],dp[i-1][j]100.0)dp[i][j]min(dp[i][j],dp[i−1][j]100.0)从左面到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i][j−1]100.0)dp[i][j]min(dp[i][j],dp[i][j-1]100.0)dp[i][j]min(dp[i][j],dp[i][j−1]100.0)从下面到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i1][j]100.0)dp[i][j]min(dp[i][j],dp[i1][j]100.0)dp[i][j]min(dp[i][j],dp[i1][j]100.0)从右面到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i][j1]100.0)dp[i][j]min(dp[i][j],dp[i][j1]100.0)dp[i][j]min(dp[i][j],dp[i][j1]100.0)从上面到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i−1][j−1]100.0∗sqrt(2.0))dp[i][j]min(dp[i][j],dp[i-1][j-1]100.0*sqrt(2.0))dp[i][j]min(dp[i][j],dp[i−1][j−1]100.0∗sqrt(2.0))从左下角到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i−1][j1]100.0∗sqrt(2.0))dp[i][j]min(dp[i][j],dp[i-1][j1]100.0*sqrt(2.0))dp[i][j]min(dp[i][j],dp[i−1][j1]100.0∗sqrt(2.0))从右下角到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i1][j−1]100.0∗sqrt(2.0))dp[i][j]min(dp[i][j],dp[i1][j-1]100.0*sqrt(2.0))dp[i][j]min(dp[i][j],dp[i1][j−1]100.0∗sqrt(2.0))从左上角到达(i,j)(i,j)(i,j) dp[i][j]min(dp[i][j],dp[i1][j1]100.0∗sqrt(2.0))dp[i][j]min(dp[i][j],dp[i1][j1]100.0*sqrt(2.0))dp[i][j]min(dp[i][j],dp[i1][j1]100.0∗sqrt(2.0))从右上角到达(i,j)(i,j)(i,j)
代码
//#pragma GCC optimize(3,Ofast,inline)
#include cstdio
#include iostream
#include algorithm
#include cmath
#include cstdlib
#include cstring
#include map
#include stack
#include queue
#include vector
#include bitset
#include set
#include utility
#include sstream
#include iomanip
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int il;ir;i)
#define lep(i,l,r) for(int il;ir;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queueint,vectorint ,greaterint q;
const int maxn (int)1e5 5;
const ll mod 1e97;
double dp[1200][1200];
bool vis[1200][1200];
bool can[1200][1200];
int main()
{#ifndef ONLINE_JUDGEfreopen(in.txt, r, stdin);#endif//freopen(out.txt, w, stdout);//ios::sync_with_stdio(0),cin.tie(0);int m,n;scanf(%d %d,n,m);int k;scanf(%d,k);rep(i,0,n) {rep(j,0,m) {dp[i][j]inf;}}dp[0][0]0;rep(i,1,k) {int a,b;scanf(%d %d,a,b);can[a][b]true;}vis[0][0]true;rep(i,0,n) {rep(j,0,m) {if(vis[i-1][j]) dp[i][j]min(dp[i][j],dp[i-1][j]100.0);if(vis[i][j-1]) dp[i][j]min(dp[i][j],dp[i][j-1]100.0);if(vis[i1][j]) dp[i][j]min(dp[i][j],dp[i1][j]100.0);if(vis[i][j1]) dp[i][j]min(dp[i][j],dp[i][j1]100.0);if(vis[i-1][j-1]can[i][j]) dp[i][j]min(dp[i][j],dp[i-1][j-1]100.0*sqrt(2.0));if(vis[i-1][j1]can[i][j1]) dp[i][j]min(dp[i][j],dp[i-1][j1]100.0*sqrt(2.0));if(vis[i1][j-1]can[i1][j]) dp[i][j]min(dp[i][j],dp[i1][j-1]100.0*sqrt(2.0));if(vis[i1][j1]can[i1][j1]) dp[i][j]min(dp[i][j],dp[i1][j1]100.0*sqrt(2.0));vis[i][j]true;//couti j (int)dp[i][j]endl;}}printf(%.f\n,dp[n][m]);return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916914.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!