CSP-S模拟6复盘

T1

题目描述

小 A 生活在一个庄园中。庄园可以看成一个平面,我们将这个平面划分为单元格。每对整数 (x,y) 对应一个单元格,我们称这个单元格为单元格 (x,y)。每个单元格要么是空地,要么是墙体。

现在给出两个长为 n 的正整数序列:l1,l2,…,ln 和 u1,u2,…,un。其中对任意的 i=1,2,…,n 都有 li≤ui。所有的单元格 (x,y) (1≤x≤n,lx≤y≤ux) 都是空地,所有其他的单元格都是墙体。

当小 A 站在空地 (x,y) 上时,他可以做出下列动作之一:

如果单元格 (x+1,y) 是空地,移动到单元格 (x+1,y)。
如果单元格 (x−1,y) 是空地,移动到单元格 (x−1,y)。
如果单元格 (x,y+1) 是空地,移动到单元格 (x,y+1)。
如果单元格 (x,y−1) 是空地,移动到单元格 (x,y−1)。
庄园当然是连通的,即小 A 可以通过重复这些动作在任两个空地之间走动。

小 A 喜欢在庄园里闲逛,但是庄园太大了,他不希望走太长的距离。他进行了 q 次询问,对于第 i 次询问,给出四个正整数 sx,i,sy,i,tx,i,ty,i。请计算从单元格 (sx,i,sy,i) 走到单元格 (tx,i,ty,i) 至少需要移动几次。保证每次询问给出的两个单元格都是空地。

输入格式

从标准输入读入数据。

输入的第一行包含一个正整数 n。

接下来的 n 行每行包含两个正整数 li,ui。

输入的第 n+2 行包含一个正整数 q。

接下来的 q 行每行包含四个正整数 sx,i,sy,i,tx,i,ty,i。

输出格式

输出到标准输出。

对于每次询问输出一行一个整数表示答案。

思路

在这里插入图片描述

代码

#include<bits/stdc++.h>
using namespace std;
const int N=5e3+9;
long long n,t,l[N],r[N],sx,sy,ex,ey,ans;
int main(){
   
	cin>>n;
	for(int i=1;i<=n;i++) cin>>l[i]>>r[i];
	cin>>q;
	while(q--)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值