【JZOJ 3053】旅行

JZOJ3053. 【NOIP2012模拟10.25】旅行 Description给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的:.X X.Input第一行两个整数n, m。 接下来n行,每行m个字符’. 阅读详情

Description

给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。

计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。
每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的:
.X
X.

Solution

先计算出两两点的曼哈顿距离,这个可以把x,y两个维度分开来做,维护两个变量,直接扫即可,
剩下的,我们发现如果要绕行,每个绕行只会让路程增加2,
于是我们只需要你统计有多少个需要绕行即可,
先考虑上下的绕行,绕行只存在于一个障碍的上边和下边,以及往左,往右,具体情况比较复杂,上个图:(红蓝表示要绕行的点群)大家看图生动形象理解一下吧
这里写图片描述
左右的绕行类似,
复杂度:O(n2)

Code

#include<cstdio>
#include<cstdlib>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long LL;
const int N=1050;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n;
LL ans;
bool a[N][N];
int S[N],H[N];
int main()
{
    LL q,T;char ch;
    scanf("%d%d",&n,&m);
    fo(i,1,n)fo(j,1,m)
    {
        for(ch=getchar();ch!='.'&&ch!='X';ch=getchar());
        if(ch=='X')a[i][j]=1,S[i]=j,H[j]=i;
    }
    q=T=0;
    fo(i,1,n){fo(j,1,m)if(!a[i][j])ans+=q,T++;q+=T;}
    q=T=0;
    fo(i,1,m){fo(j,1,n)if(!a[j][i])ans+=q,T++;q+=T;}
    fo(i,1,n)if(S[i])
    {
        q=0;
        for(int j=i;j>0&&S[j]>q;j--)q=S[j],ans+=2*(m-q)*(S[i]-1);
        q=S[i];
        for(int j=i-1;j>0&&S[j]<q&&S[j];j--)q=S[j],ans+=2*(q-1)*(m-S[i]);
    }
    fo(i,1,m)if(H[i])
    {
        q=0;
        for(int j=i;j>0&&H[j]>q;j--)q=H[j],ans+=2*(n-q)*(H[i]-1);
        q=H[i];
        for(int j=i-1;j>0&&H[j]<q&&H[j];j--)q=H[j],ans+=2*(q-1)*(n-H[i]);
    }
    printf("%.4lf\n",(double)2*ans/(T*T));
    return 0;
}
VFH避障/局部路径规划算法 VFH避障/局部路径规划算法 本文章是我看《The Vector Field Histogram-Fast Obstacle Avoidance for Mobile Robots》论文时候的笔记,感兴趣的欢迎去看原论文。 VFH中有一些概念是从其他算法中借鉴过来的,并且VFH算法本身就是对VFF(Virtural Force Field)的一种改进,其中有很多的相似之处。所以按照原论文的思路,先介绍由CMU提出的Certainty Grid算法中的一些概念,再介绍一下势场法中的一些概念,接着介绍一下VFF 阅读详情

相关推荐

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

m0_45877477的博客 1632

JZOJ 3053. 旅行

思维题

Luckfort 522

一个基于ZYNQ、AXI接口的PL端卷积加速器,可由PS端调用(附Github源码)

一个基于ZYNQ,AXI接口的PL端卷积加速器,可由PS端调用开发板型号:Zynq-7000 SoC XC7Z305 FPGA开发平台:Vivado 2019.1;Github源码链接:https://github.com/CY0807/ZYNQ_PL_CONV_ACC。

跳跳骑士的博客 1306

【JZOJ 3053】 旅行

Description 给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: .X X. 2<=n,m<=1000Analysis对于一些特殊

LYD729 707

MTK平台高效部署Qwen2.5大模型:从转换到推理全流程解析

本文详细解析了在联发科(MTK)NeuroPilot平台上高效部署Qwen2.5大模型的全流程。内容涵盖从环境搭建、模型转换、量化优化到编译部署与上机推理的完整步骤,重点分享了模型转换与模型运行的关键实践与避坑指南,旨在帮助开发者将大语言模型成功集成至移动及边缘设备。

zeta9的博客 377

国产FPGA开发实战:紫光同创编程软件中的约束文件详解与常见问题

本文详细解析了紫光同创FPGA编程软件中约束文件的关键配置技巧与常见问题。通过基础架构解析、时钟约束实践、物理约束调控及典型问题排查指南,帮助开发者高效掌握国产FPGA开发中的约束文件应用,提升开发效率与设计稳定性。

gin88的博客 907

jzoj3053. 【NOIP2012模拟10.25】旅行 (Standard IO)

Description给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: .X X. Input 第一行两个整数n, m。 接下来n

dudingxun的博客 728

卫星通信链路预算实战:从EIRP到Eb/N0的完整计算指南(含Excel模板)

本文提供了一份卫星通信链路预算的实战指南,详细解析了从EIRP到Eb/N0的完整计算流程。文章重点对比了C波段与Ku波段在应对降雨衰减等动态因素时的不同策略,并分享了包含核心公式的Excel模板,帮助工程师将理论转化为可执行的系统设计依据。

weixin_29230773的博客 534

JZOJ 3053 【NOIP2012模拟10.25】旅行

旅行题目大意给定一个nn行mm列的字符矩阵, 告诉你哪些格子可以进入,哪些不可以。移动的规则为:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为00),从起点移动到终点最短耗时的平均值。 每一行每一列至多有11个障碍,并且障碍不在对角线方向相邻。数据范围22<=nn,mm<=10001000题解首先,这题的解法比较玄学。 首先,一

XianHaoMing的博客 1931

rk3588 LightSensor适配从驱动到应用层

本文详细介绍了在RK3588平台上实现光感驱动的开发流程。主要包括:1) 在设备树中配置I2C5接口挂载光感设备;2) 编写内核驱动代码实现光感数据采集;3) HAL层通过ioctl与驱动交互;4) 在BoardConfig.mk中启用相关宏定义;5) Framework层通过AutomaticBrightnessController实现自动亮度调节算法;6) 应用层可通过监听系统设置获取光感变化并调整屏幕亮度。整个流程涵盖了从底层驱动到上层应用的完整实现方案,重点解决了光感设备注册、数据采集传输和自动亮度

tzj1058756809的博客 449

用miniconda建立PyTorch、Keras、TensorFlow三个环境

如果还没有安装Miniconda,请从[Miniconda官网](https://docs.conda.io/en/latest/miniconda.html)下载合适的版本并进行安装。如果遇到问题,可以通过编辑`~/.condarc`文件来临时禁用某个源,或者通过`conda config --remove channels`命令来移除配置的镜像源。要切换到不同的环境,先使用`conda deactivate`命令退出当前环境,再用`conda activate 环境名称`命令激活另一个环境。

数字人生 2464

JZOJ3052. 【NOIP2012模拟10.25】剪草

Description有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤:(1)每棵小草都长高了,第i棵小草长高的高度是grow[i]。 (2)Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它下一秒还会

lijf2001的博客 1108

【47】软考软件设计师——全真模拟卷(下午题)|5道案例分析+答题模板+评分标准

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第47篇,属于**模块六:冲刺与模拟**第四篇,严格遵循软考下午题真题规范(5道案例分析题,150分钟,满分75分,45分及格),覆盖数据流图(DFD)、E-R图与关系模式、UML类图与用例图、算法设计与代码填空、设计模式应用五大核心题型。全文采用“真题级案例+分步答题模板+采分点明细+评分标准”的形式,每道题配套“审题技巧→解题步骤→规范作答模板→常见错误扣分点”,深度拆解案例分析题的得分逻辑,帮助考生掌握“按点踩分、规范表述、避坑扣分”的核心能力

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 685

jzoj 3053. 【NOIP2012模拟10.25】旅行

Description 给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: .X X. Input 第一行两个整数n, m。 接下来n行,每行m个...

Larry1118的博客 395

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[NOIP2012模拟10.25] 旅行 [构造]

给定一个n行m列的字符矩阵。’.’代表空地,’X’代表障碍。 每秒钟可以往上下左右四个方向其中的一个移动一格(不能往障碍里面撞)。 起点和终点可以在空地里面随机选择(可以重合)。 求从起点移动到终点最短耗时的期望。 每一行、每一列至多有一个障碍。障碍不在对角线方向相邻。2≤n,m≤1032\le n,m\le10^32≤n,m≤103。 InputInputInput 第一行两个整数n, m。 ...

最后一次修改 272

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

一个蒟蒻未切的题o(╥﹏╥)o

jzoj 3104. 【NOIP2012提高组】疫情控制 ↑就是个二分+贪心,码量有点长(码农题) jzoj 3053. 【NOIP2012模拟10.25】旅行 ↑我的程序有个bug jzoj 4754. 【GDOI2017模拟9.4】矩阵 ↑还不会 jzoj 4752. 【GDOI2017模拟9.4】字符串合成 ↑还不会 加油吧ヾ(◍°∇°◍)ノ゙,还差得远呢~ ...

Larry1118的博客 359

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

旅行(模拟)

给你一个 n*m 的矩阵,有一些位置不能走,每行每列最多只有一个这样的位置,且它的四个对角线上也不会有不能走的位置。 然后你在所有能走的位置上随机选起点和终点,求从起点移动到终点最短耗时的平均值。 移动:你每个时间可以从一个点移动到它旁边四个点中可以走的其中一个。

欢迎您的光顾awa 221

【NOIP2012模拟10.25】旅行

Description给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: .X X.Input第一行两个整数n, m。 接下来n行,每行

Jacky35 812

旅行

旅行 【问题描述】 给定一个n 行m 列的字符矩阵,‘.’表示空地,‘X’表示障碍。移动的规则是:每秒钟可以上下 左右四个方向之一移动一格,不能进入障碍。计算:在空地中随机选择起点和终点(可以重合,此时 最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1 个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: .X X. 【...

beautiful_CXW的博客 747

【JZOJ3503】旅行

Description给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的:.X

sadnohappy 524

JZOJ 3888.【NOIP2014模拟10.25B组】正确答案

快乐题

Ajwallet 476

旅行 (分别考虑不同方向曼哈顿距离和)

第二题:旅行(journey) 时间限制:1秒 内存限制:256MB 输入:journey.in 输出:journey.out 问题描述 给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行

nike0good |Oier&ACMer | 熟能生巧 922

给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍问题

题目描述 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0, y0) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。 输入描述: 每个输入...

Poo_Chai的博客 2536

【NOIP2012模拟10.25】剪草

Description有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤: (1)每棵小草都长高了,第i棵小草长高的高度是grow[i]。 (2)Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它下一

Jacky35 907

TsinsenA1255. 拉拉队排练(陶文博) (回文树)

http://www.tsinsen.com/A1255 题意:一个1e6的字符串,求出长度为奇数的回文子串中长度排前K的回文串的长度之积。   思路:建回文自动机,然后遍历结点,统计长度为奇数的回文串数量,然后从长到短算出前K长的回文串长度之积就行了。 #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cstr...

hcx11333的博客 349
上一篇: 【JZOJ 3052】剪草
下一篇: 【JZOJ 4771】爬山
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值