有一些墙壁链接(ax,ay), (bx,by)
每次若有墙壁的两边一个有水,一个为空,墙壁就破了然后水开始充了起来
找出最后还存在的墙壁
首先我们可以看出来墙壁的两边是可以用节点表示的
我们需要合并一些区间什么的, 听说这一题有些人利用对偶图来求但是我不会
可以自己想想怎么样合并/哪个区间要合并
Ok,现在我们要找联通性。并查集?看完答案才知道,其实01 bfs就可以
那么为了寻找最外面的一个节点, 我们可以找max y的节点然后就是dfs
然后呢唯一难点在于建图, 我其实蛮懵的。什么时候w=0, w=1需要好好想想
看到别人的做法是节点i表示墙壁的第一边, i+m为第二边
然后看dis[i]=dis[i+m] 他就存在
说实话我不太会这题是看了答案才知道的。
感悟:
1.这个题目卡MLE, 需要用那种什么 for(int u=head[u]; u!=-1; u=next[u]) 什么的需要学习一下
2.我对于怪题还不太熟, 需要多练
3.我不太知道01 bfs 的用法, 需要多学学
4.建图也不太会 [哭死]
我本身也在学习所以也没什么大不了的, 加油!!!
标签:需要,墙壁,bfs,Flood,2007,IOI,节点,dis From: https://www.cnblogs.com/yonglicp/p/17802479.html