| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:水过一百题,虽然很多都是水题,但是还是很开心,贴出代码(大牛轻喷)In Reply To:水过一百题,虽然很多都是水题,但是还是很开心,贴出代码(大牛轻喷) Posted by:894212550 at 2014-11-18 21:49:07 > #include <stdio.h>
>
> #define MAXN 1010
>
> struct POINT
> {
> int x,y;
> };
>
> int n,count,d;
> struct POINT node[MAXN];
> int father[MAXN],repaired[MAXN];
>
> int dis(int x,int y)
> {
> int tempx=node[x].x-node[y].x,tempy=node[x].y-node[y].y;
> if ((tempx*tempx+tempy*tempy)<=d*d)
> {
> return 1;
> }
> else return 0;
> }
>
> int find_set(int x)
> {
> if(x!=father[x])
> father[x]=find_set(father[x]);
> return father[x];
> }
>
> void init()
> {
> int i;
> for(i=1;i<=n;i++)
> father[i]=i;
> }
>
> void union_set(int x,int y)
> {
> x=find_set(x);
> y=find_set(y);
> father[y]=father[x];
> }
>
> int main()
> {
> int i,x,y;
> char cmd;
> count=0;
> scanf("%d %d",&n,&d);
> init();
> for (i=1;i<=n;i++)
> {
> scanf("%d %d",&node[i].x,&node[i].y);
> }
> while (scanf(" %c",&cmd)!=EOF)
> {
> if (cmd=='O')
> {
> scanf("%d",&x);
> for (i=0;i<count;i++)
> {
> if(dis(repaired[i],x))
> union_set(repaired[i],x);
> }
> repaired[count++]=x;
> }
> else{
> scanf("%d %d",&x,&y);
> if (find_set(x)==find_set(y))
> {
> printf("SUCCESS\n");
> }
> else printf("FAIL\n");
> }
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator