NOIP2014模擬8 25 裝置塔

2021-07-25 19:42:42 字數 1252 閱讀 1198

為了封印輝之環,古代塞姆利亞大陸的人民在異空間中建造了一座裝置塔。

簡單的說,這座裝置塔是乙個漂浮在異空間中的圓柱體,圓柱體兩頭的圓是計算核心,而側面則是

傳輸資訊所用的資料通道,劃分成n *m 個區塊。

然而,隨著工作的繼續進行,他們希望把側面的一部分區塊也改造成其他模組。然而,任何時候都

必須保證存在一條資料通道,能從圓柱體的一端通向另一端。

由於無法使用輝之環掌控下的計算系統,他們尋求你的幫助來解決這個問題。他們將逐個輸入想要

改造的區域,而你則執行所有可行的改造並忽略可能導致資料中斷的改造。

圓柱體,所以左右兩邊相通。將這n*m個區塊複製乙個,並起來。

發現,如有有兩個區塊都被改造了,那麼當其中個區塊是在另乙個區塊的八個方向相鄰的話,資料就不能從之間通過。

於是,我們搞個並查集,當改造乙個區塊時,如果在改造後,與之對應的被複製的區塊,在並查集中有共同的父親,那麼這個區塊就不合法,因為當區塊和被複製的區塊中可以通過區塊相連,又因為每個區塊都有對應的被複製的區塊,顯然整個圓柱體就一定被擋住了。

如果這個區塊合法,那麼將它八個方向相鄰的區塊中被改造的都和他用並查集合在一起。

有個小細節要就是當某個區塊的八個方向相鄰的區塊中有列數小於1或大於2m的要處理一下。
#include 

#include

#include

#include

#include

#include

#include

const int maxlongint=2147483647;

const int mo=1000000007;

const int n=3005;

using namespace std;

int k,n,m,fa[n*n

*2],a[n][n*2],ans;

int z[8][2]=

, ,,,

,,

,};int

pos(int

x,int

y)int get(int

x)int main()

}if(q)

for(int j=0;j<=7;j++)

if(a[xx+z[j][0]][(yy+z[j][1]-1+2

*m)%(

2*m)+1])

ans++;}}

cout<}

noip2014 螺旋矩陣 (模擬)

p1913螺旋矩陣 accepted 標籤 noip普及組2014 乙個 n 行 n 列的螺旋矩陣可由如下方法生成 從矩陣的左上角 第 1 行第 1 列 出發,初始時向右移動 如果前方是未曾經過的格仔,則繼續前進,否則右轉 重複上述操作直至經過矩陣中所有格仔。根據經過順序,在格仔中 依次填入 1,2...

NOIP2014模擬11 3 蛋糕

今天是bessie的生日,他買了乙個蛋糕和朋友們一起分享,蛋糕可以看成是乙個r行c列的 共有r c個格仔,每個格仔都有乙個0至9的數字,表示該格仔蛋糕擁有的巧克力。現在bessie要把蛋糕橫的切3刀再豎的切3刀,由於bessie刀法厲害,所以每個格仔蛋糕都是完整的,顯然蛋糕會被切成16份,然後bes...

NOIP2014 比例簡化 模擬

輸入檔案 ratio.in輸出檔案 ratio.out簡單對比 時間限制 1 s 記憶體限制 256 mb 在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498人,反對的有902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結...