新生賽模擬騙

2021-09-29 12:23:55 字數 1378 閱讀 6339

zstu新生賽 p6

前言:如果忘記字首和(esp二維)與差分 可以去

學習1414: 曼哈頓距離

時間限制: 1 sec 記憶體限制: 128 mb

提交: 9 解決: 4

[提交] [狀態] [討論版] [命題人:admin]

題目描述

在平面上,座標(x1, y1)的點p1與座標(x2, y2)的點p2的曼哈頓距離為:|x1-x2|+|y1-y2|。 現在有乙個nxn (1<=n<=1000)的矩陣,一開始矩陣中每個元素的值都為零。 對這個矩陣進行m (1<=m<=100000)次操作,每次操作定義如下:

(x1, y1), (x2, y2): 對於矩陣中滿足x1<=x<=x2, y1<=y<=y2的所有元素(x, y)加上(x, y)與(x1, y1)的曼哈頓距離|x1-x|+|y1-y|

例如,當n=5,m=2,兩組操作分別為(1, 1), (4, 4)和(2, 2), (5, 5):

現在想讓你輸出m次操作後的矩陣,但是由於本oj輸出檔案不能超過1m,所以輸出矩陣所有非零元素的乘積即可 (結果對1000000007取餘),沒有非零項則輸出0;

輸入第一行兩個整數n, m,分別表示正方形網格的邊長和操作次數;

接下來m行,每行4個整數x1 y1 x2 y2;

輸出輸出乙個整數代表答案。

樣例輸入

5 21 1 4 4

2 2 5 5

樣例輸出

853543927

顯然需要用到二維平面的差分思想來完成

(x1, y1), (x2, y2)對於矩陣中滿足x1<=x<=x2, y1<=y<=y2的所有元素加乙個數的操作

但這個數並不是常值,給了這道題特殊性

一種巧妙的處理方法:

|x1-x|+|y1-y|=(x1+y1)-(x+y)

元素終值=|x1-x|+|y1-y|+|x1-x.1|+|y1-y.1|+…+|x1-x.n|+|y1-y.n|=(x1+y1)*n-(求和)(x.i+y.j)

(1<=i<=n;1<=j<=n)

我們設定兩個差分陣列,乙個用於確定n的值,乙個用於確定(x.i+y.i)這部分的值

因此有dm[?][?]+=1 dm_spec[?][?]+=x1+y1

code:

#include

using namespace std;

int dm[1010][1010],dm_spec[1010][1010];

int main()

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

long long ans=1,flag=0;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

}if(flag)cout<}

新生賽模擬篇

2018zstu新生賽 p1 1408 baby coins 時間限制 1 sec 記憶體限制 128 mb 提交 31 解決 8 提交 狀態 討論版 命題人 admin 題目描述 baby 今天清點自己的百寶箱啦,箱子裡有 n 種硬幣,硬幣的面值分別是 val 1 val 2 val n 每種面值...

新生賽模擬片

zstu2018新生賽 p2 1409 suffix zeroes 時間限制 1 sec 記憶體限制 128 mb 提交 41 解決 6 提交 狀態 討論版 命題人 admin 題目描述 這個遊戲超休閒的 現在你需要找乙個自然數n,你找的自然數需要滿足n 的末尾恰好有k個0 當然我們都是十進位制下的...

新生賽心得

新生賽發揮正常,rank8。心情感受 比賽前 學長 們說送熱水袋開心剛好缺乙個熱水袋有了上次藍橋杯選拔賽爆零的經驗,這次真的就是想打完就跑最好那個熱水袋,總之就是很輕鬆。結果最後拿了rank8看到白書!好想要,但是被前面的人拿走了,後來上台的時候大概是acm女生太少了所以男生就比較起鬨我就懵了,隨便...