題解 洛谷P3958 乳酪(並查集 搜尋)

2021-08-25 19:39:07 字數 899 閱讀 4729

想了半天寫了乙個搜尋,不過裡面用到了並查集的思想。。。結果很顯然我tle了6個點。

看了題解之後發現自己傻了。。所以就把搜尋去掉,單用並查集解決不就完事兒了qaq

#include#include#include#include#include#include#define ll long long

using namespace std;

const int maxn=10100;

int t;

int n,tot,tot1;

int fa[maxn];

ll h,r;

struct node

a[maxn];

node start[maxn],end[maxn];

bool b[maxn];

long double dis(int i,int j)

int find(int x)

void merge(int x,int y)

}int main()

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

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

}} tot=0,tot1=0;

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

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

}bool flag3=false;

for(int i=1;i<=tot;i++)

}if(flag3==true) break;

} if(flag3==true) printf("yes\n");

else printf("no\n");

} fclose(stdin);

fclose(stdout);

return 0;

}

洛谷P3958 乳酪 並查集

兩個空洞可互達當且僅當兩個空洞相切,即球心距離小於等於球的直徑。一一枚舉兩個可互達的空洞,並用並查集連起來即可。code include include using namespace std const int maxn 1000 4 int p maxn int find int x struc...

並查集 洛谷P3958 乳酪

給定一些洞,求能否從上面走到下面 若兩個洞相交或相切,則用並查集將它們合併在一起,將頂部和底部當作乙個無窮扁的圓,判斷頂部和底部是否相連即可 include include define r i,a,b for register int i a i b i using namespace std i...

洛谷P3958 乳酪 並查集

兩個空洞可互達當且僅當兩個空洞相切,即球心距離小於等於球的直徑。一一枚舉兩個可互達的空洞,並用並查集連起來即可。code include include using namespace std const int maxn 1000 4 int p maxn int find int x struc...