模擬 JZOJ 5769 引子

2022-04-30 20:18:14 字數 1993 閱讀 1798

input

輸入會給你乙個n*m的點陣,點陣字元的全集為

水箱:形狀是矩形,四角有+符號,左右為|,上下為-,裡面包含乙個數字代表水箱的編號,如上圖。

管道:一條管道恰好連線兩個不同的水箱,|表示管道豎直擺放,- 表示管道水平擺放,其中豎直的管道之間會連線起來,水平的管道會連線起來,+連線豎直和水平的管道(+的上下恰好其中乙個為.乙個為|,+的左右恰好其中乙個為 . 乙個為-)。

其餘位置用. 來填充。

輸入的第1行為兩個正整數n,m。

接下來n行描述點陣的資訊,每行有m個字元。

output

輸出水箱被浸滿的順序,每行乙個序號。

sample input

input 1

12 13

..+--+.......

+-|..|.......

|.|.1|--+....

|.+--+..|....

|......+----+

+---+..|..2.|

....|..+----+

.+--+........

.|...........

+---+........

|.3.|........

+---+........

input 2

8 10

..........

.......+-+

...+---|1|

...|...+-+

...|......

..+-+.....

..|2|.....

..+-+.....

sample output

output 123

1output 2

21

data constraint

【資料範圍】

70%的資料:1≤n,m≤100。

100%的資料滿足:1≤n,m≤1000

分析一道比較簡單的模擬,顯然深度優先就先,搞個排序再dfs就行了

#include #include 

#include

#include

#include

using

namespace

std;

const

int n=1002

;char

c[n][n];

struct

point st[n*n/9

];int

b[n][n];

intn,m,mx;

struct

edge g[n*n/9

];int cnt,list[n*n/9

];int dx[4]=,dy[4]=;

int ans[n*n/9

],acnt;

void add(int u,int v,int

dep)

void

init()

}}bool check1(point u,int

i) bool check2(point u,int

i) void dfs(point u,int

dep)

else

if (b[u.x+dx[i]][u.y+dy[i]]!=b[u.x][u.y]&&b[u.x+dx[i]][u.y+dy[i]])

}}void

bfs()

while (!q.empty())

else

b[u.x+dx[i]][u.y+dy[i]]=b[u.x][u.y];}}

while (!h.empty())

}bool

cmp(edge a,edge b)

void dfs1(int

u) void

solve()

dfs1(1);

}void

print()

intmain()

view code

專案微管理0 引子

時光荏苒,不知不覺間,路邊的野花已經開了3次 又敗了3次了,這已經是四代進入oj的第四個年頭了。尷尬境遇 最近的四代相當鬱悶,因為工作上的安排令他極度尷尬。事情的經過是這樣的,本來四代在專案a中做的好好的,上頭非得要把他塞進專案b,而且時間安排是哪邊有活就去哪邊幹 在這件事沒有確定之前,他曾經設想過...

區塊鏈(0) 引子 位元幣

猶記得去年年底接連看到位元幣幣值突破6000美元 10000美元 15000美元的新聞,想著2年前賤賣的2個幣,內心淚流滿面。過年回家高中同學聚會,還有個同學神秘的問我 你是不是發了?這才想起來,四五年前還曾跟他爭論過位元幣是否有貨幣屬性的問題。回想起來,第一次聽說位元幣還是在2013年初,彼時,幣...

資料分析入門(一) 引子

當我學習資料分析的時候,一路查閱了很多資料,很多資訊。心中無數的疑惑,但是網路上的文章要麼過於零碎,要麼過於技術。當我現在這些疑惑逐步解開的時候,我很感謝一路幫助我的人,也希望能夠再此稍稍頓足,給未來將要踏上這條路的小夥伴,留下一些痕跡。這一系列的文章,我會爭取每週更新 1 2 篇,盡量年底可以有乙...