Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:俺第一次贴代码,实在是找不出 wa 在哪里了,拜谢各位同学帮忙看一下

Posted by loganeco at 2012-10-19 15:58:19 on Problem 1703
In Reply To:俺第一次贴代码,实在是找不出 wa 在哪里了,拜谢各位同学帮忙看一下 Posted by:loganeco at 2012-10-19 11:55:59
> 俺代码如下,MLE过了,修改后一直 WA.
> 请帮我看一下,或者给几个case也好。
> 谢过了。
> 
> #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
> 
> struct crim_t {
>     crim_t()
>         :boss(0), rev(0)
>     {}
>     int boss;  // 该crim_t的比较者,即D 1 2,则 2.boss = 1, 2.rev = 1
>     int rev;  // 1 表示该crim_t 与其 boss 不在同一团伙
> };
> 
> const int N = 100001;
> crim_t crims[N];
> 
> int find(int x)
> {
>     if (crims[x].boss == 0)
>         return x;
>     int xb = find(crims[x].boss);
>     crims[x].boss = xb;
>     crims[x].rev ^= crims[crims[x].boss].rev;
>     return xb;
> }
> 
> void union_(int x, int y)
> {
>     int xb = find(x);
>     int yb = find(y);
>     if (xb != yb) {   // 不加这个判断貌似 MLE
>         crims[yb].boss = xb;
>         crims[yb].rev = 1 ^ crims[y].rev ^ crims[x].rev;
>     }
> }
> 
> void answer(int x, int y)
> {
>     int xp = find(x);
>     int yp = find(y);
>     if (xp == yp) {
>         if (crims[x].rev == crims[y].rev)
>             printf("In the same gang.\n");
>         else
>             printf("In different gangs.\n");
>     } else 
>         printf("Not sure yet.\n");
> }
> 
> int main()
> {
>     int t;
>     scanf("%d", &t);
>     for (int i = 0; i < t; ++i) {
>         int n, m;
>         scanf("%d%d", &n, &m);
>         for (int j = 0; j < m; ++j) {
>             char c;
>             int x, y;
>             scanf(" %c%d%d", &c, &x, &y);
>             if (c == 'A') {
>                 if (n == 2) {  // 只有两个crim_t,直接不在同一团伙
>                     printf ("In different gangs.\n");
>                 } else {
>                     answer(x, y);
>                 }
>             } else
>                 union_(x, y);
>         }
>         memset(crims, 0, N);
>     }
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator