kao shi di er ti(还没有订正)
// 离散化点 思路应该是对的 吧 但没时间去检查编译上的错误
#include <bits/stdc++.h>
using namespace std;
const int M =;
#define ri register int
int n,sum;
struct dian{
int x,y,id,bj,zlin;
}a[M],yuan[M],arr[M][M];
int m,X[M],Y[M],m2,vis[M][M];
void dfs(int a,int b,int zl,int xx,int yy) // 1 up 2 xia ,3 zuo ,4 rou
{
if(arr[a][b].zlin)
{
zl=arr[a][b].zlin;
sum+=abs(arr[a][b].x-xx+);
sum+=abs(arr[a][b].y-yy+);
if(arr[a][b].id==) return;
xx=arr[a][b].x,yy=arr[a][b].y;
if(zl==) dfs(a,b+,,xx,yy);
if(zl==) dfs(a,b-,,xx,yy);
if(zl==) dfs(a-,b,,xx,yy);
if(zl==) dfs(a+,b,,xx,yy);
return ;
}if(arr[a][b].id==)
{
sum+=abs(arr[a][b].x-xx+);
sum+=abs(arr[a][b].y-yy+);
return ;
}
arr[a][b].bj=;
if(zl==) dfs(a,b+,,xx,yy);
if(zl==) dfs(a,b-,,xx,yy);
if(zl==) dfs(a-,b,,xx,yy);
if(zl==) dfs(a+,b,,xx,yy);
}
void dfs1(int a,int b)
{
if(arr[a][b].id==) return; //
if(a>m||a<) return ;
if(b>m2||b<) return ;
arr[a][b].bj=;
dfs1(a+,b);dfs1(a,b+);
dfs1(a-,b);dfs1(a,b-);
}
int main(){
scanf("%d",&n);
yuan[].x=yuan[].y=a[].x=a[].y=X[]=Y[]=;
a[].id=;yuan[].id=;
for(ri i=;i<=n+;i++)
{ char c[];int b;
scanf("%s%d",c,&b);
if(c[]=='R') a[i].x=a[i-].x+b,a[i].y=a[i-].y,a[i].zlin=;
if(c[]=='L') a[i].x=a[i-].x-b,a[i].y=a[i-].y,a[i].zlin=;
if(c[]=='U') a[i].y=a[i-].y+b,a[i].x=a[i-].x,a[i].zlin=;
if(c[]=='D') a[i].y=a[i-].y-b,a[i].x=a[i-].x,a[i].zlin=;
X[i]=a[i].x;yuan[i].x=a[i].x; yuan[i].id=i;
Y[i]=a[i].y; a[i].id=i;yuan[i].y=a[i].y;
}
sort(X+,X+n++);
m=unique(X+,X+n++)-X-;
for(ri i=;i<=n+;i++)
{
a[i].x=lower_bound(X+,X+m+,a[i].x)-X;
}
sort(Y+,Y+n+);
m2=unique(Y+,Y+n++)-Y-;
for(ri i=;i<=n+;i++)
{
a[i].y=lower_bound(Y+,Y+m2+,a[i].y)-Y;
}
for(ri i=;i<=n+;i++)
{
arr[a[i].x][a[i].y].id=i;
arr[a[i].x][a[i].y].x=yuan[i].x;X[a[i].x]=yuan[i].x;
arr[a[i].x][a[i].y].y=yuan[i].y;Y[a[i].y]=yuan[i].y;
arr[a[i].x][a[i].y].bj=;
}
dfs(a[n+].x,a[n+].y,a[n+].zlin,a[n+].x,a[n+].y);
dfs1(m,m2);
for(ri i=;i<=m;i++)
for(ri j=;j<=m2;j++)
{
if(arr[i][j].bj==)
{
sum+=abs(X[j]-X[j-]);
sum+=abs(X[i]-X[i-]);
}
}
printf("%d\n",sum);
return ;
}
kao shi di er ti(还没有订正)的更多相关文章
- kao shi
1 #include "date.h" #include "utils.h" #include <iostream> using std::cout ...
- python文件对象几种操作模式区别——文件操作方法详解
文件对象的字节模式/b模式(以utf-8编码为例) 读操作 写操作 指针操作 ASCII字节 返回bytes/字节类型的Ascii 写入bytes类型字节 例如:b'This is ascii' 使用 ...
- TI推出SimpleLink低能耗蓝牙CC2541
TI推出SimpleLink低能耗蓝牙CC2541 日前,德州仪器 (TI) 宣布推出 SimpleLink™ 低能耗蓝牙 (Bluetooth®Low Energy) CC2541-Q1, 这是一款 ...
- 数据库系统概论——从E-R模型到关系模型
E-R模型和关系模型都是现实世界抽象的逻辑表示 E-R模型并不被 DBMS直接支持,更适合对现实世界建模 关系模型是 DBMS直接支持的数据模型 基本 E-R图中的元素包括实体集.联系集.属性 椭圆框 ...
- 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS
关键字:TI 视觉软件开发套件 ADAS 日前,德州仪器 (TI) 宣布推出其视觉软件开发套件(SDK),从而为开发人员提供了一款灵活的框架.一组丰富齐全的硬件设备驱动程序和一套适用的开发工具,可 ...
- 【DSP开发】TI第二代KeyStone SoC诠释德仪的“云”态度
11月14日,期盼已久的德州仪器基于ARM Cortex-A15的产品终于新鲜出炉.伴随着TIKeyStone II多核 SoC系列产品的发布,结合了ARM Cortex-A15 处理器.C66x D ...
- 【DSP开发】解读TI的KeyStone II云技术应用
最近,德州仪器(TI)公司推出6款最新KeyStone II多核SoC,助力云应用.TI公司多核DSP中国市场开发经理蒋亚坚先生向媒体讲解了这6款KeyStone II新产品的特点与目标应用. ...
- php获取汉字的拼音 拼音首字母
/***获取汉字的拼音*/function pinyin($s, $isfirst = false) { static $pinyins; $s = trim($s); $len = strlen($ ...
- php中文转拼音2
<?php /** * strtopinyin.php * * @name 汉字字符转拼音 * @author Kudosharry * @version v1.0 * */ class Str ...
随机推荐
- 文件下载(download) 前后台备注自用
1.后台 1.1 ResponseBean 返回封装的格式 @Data @Accessors(chain = true) public class ResponseBean { private Str ...
- stm32f103vct6外扩sram芯片
STM32F103是一款高性价比.多功能的单片机,配备常用的32位单片机片外资源,基于ARM Cortex-M3的32位处理器芯片,片内具有256KB FLASH,48KB RAM ( 片上集成12B ...
- 【39】为什么使用卷积?(Why convolutions?)
为什么使用卷积?(Why convolutions?) 我们来分析一下卷积在神经网络中如此受用的原因,然后对如何整合这些卷积,如何通过一个标注过的训练集训练卷积神经网络做个简单概括.和只用全连接层相比 ...
- 利用Python读取CSV文件并计算某一列的均值和方差
近日需要对excel的csv文件进行处理,求取某银行历年股价的均值方差等一系列数据 文件的构成很简单,部分如下所示 总共有接近七千行数据,主要的工作就是将其中的股价数据提取出来,放入一个数组之中,然后 ...
- thinkphp 5.0 后台数据修改
html代码 <table class="easyui-datagrid" data-options="singleSelect:true,collapsible: ...
- 洛谷P1551 亲戚
洛谷P1551 亲戚 原题 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是 ...
- PAT (Advanced Level) Practice 1036 Boys vs Girls (25 分)
This time you are asked to tell the difference between the lowest grade of all the male students and ...
- Python-Django学习笔记(四)-views的编写以及urls分发器的配置
MTV中的V表示的是Views,视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应. 通俗的理解可以理解为后端控制器. (响应可以是网页的HTML内容,重定向,404错误 ...
- vue.js事件传值之子组件传向父组件以及$emit的使用
在项目开发中,有时候会遇到一种需求比如是:在子组件中,通过一个事件,比如点击事件,去改变父组件中的某个值,下面来看看是怎么个流程 还是先截图目录结构 父组件为app.vue,components中的文 ...
- LeetCode longest substring without repeating characters 题解 Hash表
题目 Given a string, find the length of the longest substring without repeating characters. Example 1: ...