118 UR 8 赴京趕考

2022-05-14 00:45:12 字數 2127 閱讀 7206

高中,高中,短暫的三年。noi是高中結業考試,而高考在每年暑假舉行。

高二暑假,這是你最後一次參加高考的機會。你已經為了高考停課很久了,oi的知識很久沒管了。你並沒有能力用一年時間補起別人三年的oi課程。這是你的最後一戰,如果你失敗了,可能就不能工地搬磚只能去清華了。

這天你背上行囊赴京趕考。此時全國交通主要靠瞬間傳送裝置。全國交通網路可以抽象為一張 nn 行 mm 列的網格圖。行依次編號為

1,…,n1,…,n,列依次編號為 1

,…,m1,…,m。

有 n+mn+m 個為 00 或 11 的整數 a1,…,an,b1,…,bma1,…,an,b1,…,bm。對於 1≤i≤n1≤i≤n,1≤j≤m1≤j≤m,如果 ai=bjai=bj 那麼網格圖上第 ii 行第 jj 列上標著 00 否則標著 11

。你的家在第 xsxs 行第 ysys 列,高考考場在第 xexe 行第 yeye 列。現在你想從家出發到高考考場去。每次你可以:

向上移動一行。(如果你在第一行那麼移動後會到最後一行去)

向下移動一行。(如果你在最後一行那麼移動後會到第一行去)

向左移動一列。(如果你在第一列那麼移動後會到最後一列去)

向右移動一列。(如果你在最後一列那麼移動後會到第一列去)

對於每次移動,如果移動前的格仔上標的數跟移動後的格仔上標的數不同,那麼就要耗費

11分鐘時間等待瞬移裝置調整配置,否則不耗時間。

現在你想知道你從家出發到高考考場最少需要花多長時間。

輸入格式

第一行兩個正整數 n,mn,m,表示網格圖為 nn 行 mm 列。

第二行 nn 個整數,分別表示 a1,…,ana1,…,an。保證 a1,…,an∈a1,…,an∈。

第三行 mm 個整數,分別表示 b1,…,bmb1,…,bm。保證 b1,…,bm∈b1,…,bm∈。

接下來乙個正整數 qq。

接下來 qq 行,每行四個整數 xs,ys,xe,yexs,ys,xe,ye。表示詢問如果你的家在第 xsxs 行第 ysys 列,高考考場在第 xexe 行第 yeye 列時的最少花費時間。

輸出格式

共 qq 行,每行乙個整數表示最少花費多少分鐘。

樣例一input12

1012

1212

1112

output01

樣例二input

101011

0111

0101

0010

1100

1047

6488

2148

5743

195output24

25限制與約定

測試點編號 n,mn,m的規模 qq的規模

1 n,m≤100n,m≤100 q≤10q≤1023

4 n≤105,m=1n≤105,m=1 q≤105q≤105

56 n,m≤105n,m≤105 q≤105q≤10578

910時間限制:1s1s

空間限制:256mb

題幹如果10^5個詢問,每次都無腦遍歷肯定不行。

想一想橫向移動,和縱向移動是互不影響的,那我單獨考慮變成兩個一維的。

但,10^5次遍歷乙個10^5的圖也還不夠。。。

我們又想到可以用個字首和,表示從第乙個位置到當前位置所用的時間

詢問時:正著走一遍,倒著走一遍,橫縱相加就行。

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

int n,m,a[100009],b[100009

],q,xs,ys,xe,ye;

int pre[100009],pree[100009

];int work1(int x,int

y)int work2(int x,int

y)int

main()

return0;

}

**