查看: 1663|回復: 4
打印 上一主題 下一主題

[解決] TOJ 89

[複製鏈接]
  • TA的每日心情
    開心
    2015-4-12 10:09
  • 簽到天數: 137 天

    [LV.7]常住居民III

    142

    主題

    686

    帖子

    3559

    積分

    邁向天堂

    蘇多門

    Rank: 8Rank: 8

    積分
    3559

    新手達陣台南一中資訊社程式設計達人 - 2014

    跳轉到指定樓層
    樓主
    發表於 2014-7-2 22:55:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    x
    本帖最後由 domen111 於 2014-7-3 17:05 編輯

    http://toj.tfcis.org/oj/pro/89/
    這筆測資的答案是先nope再yeap沒錯吧? 怎麼標準解答的答案不一樣
    我自己產的測資:
    1. !
    2. 10
    3. you are friends 1 2
    4. you are friends 5 6
    5. you are friends 3 4
    6. you are friends 2 3
    7. you are enemies 4 5
    8. you are friends 10 9
    9. are you friends 4 6
    10. are you enemies 4 6
    複製代碼

    我的程式的輸出:
    1. !
    2. yeap
    3. nope
    複製代碼

    標準程式的輸出:
    1. !
    2. nope
    3. yeap
    複製代碼
    蘇多門 domen111
    My Web: https://sites.google.com/site/domenprg/
    回復

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-8-14 16:02
  • 簽到天數: 1 天

    [LV.1]初來乍到

    12

    主題

    138

    帖子

    863

    積分

    高級會員

    Rank: 4

    積分
    863

    台南一中資訊社新手達陣

    頭香
    發表於 2014-7-3 13:32:29 | 只看該作者
    sorry 標程打錯字了... 謝謝提醒 已修正
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2015-4-12 10:09
  • 簽到天數: 137 天

    [LV.7]常住居民III

    142

    主題

    686

    帖子

    3559

    積分

    邁向天堂

    蘇多門

    Rank: 8Rank: 8

    積分
    3559

    新手達陣台南一中資訊社程式設計達人 - 2014

    3#
     樓主| 發表於 2014-7-3 17:41:22 | 只看該作者
    剛剛花了整個下午在debug這題
    就只是60行的一個bug,大概就前面改到了陣列後面卻繼續用的bug,先拿個變數存著就解決了,不過這種bug好難抓喔
    學長的code漂亮多了,行數將近我的一半,值得觀摩一下啊!
    蘇多門 domen111
    My Web: https://sites.google.com/site/domenprg/
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    4#
    發表於 2014-7-3 22:04:38 | 只看該作者
    學長,disjoin set 的union又寫錯了 TAT,跟NPSC一樣,測資不夠強歐~

    @FIXED
  • #include <stdio.h>
  • #include <string.h>
  • #define R(x) (x+N)
  • #define MAXN 500010
  • int p[MAXN*2];
  • int N;
  • void init()
  • {
  •     for(int i=0;i<=2*N;i++)p[i]=i;
  • }
  • int find(int x)
  • {
  •     //printf(" %d\n",x);
  •     return x==p[x]?x:p[x]=find(p[x]);
  • }
  • void U(int a,int b)
  • {
  • //    printf("U %d %d %d %d\n",a,find(a),b,find(b));
  •     p[find(a)]=find(b);
  • }

  • int main()
  • {
  •     //memset(p,0,sizeof(p));
  •     scanf("%d",&N);
  •     init();
  •    
  •     int a,b;
  •     char s[3][10];
  •     while(~scanf("%s %s %s %d %d",s[0],s[1],s[2],&a,&b))
  •     {
  •         int aa=find(a),bb=find(b);
  •         int ra=find(a+N),rb=find(b+N);
  •         //printf("    %d %d %d %d\n",aa,ra,bb,rb);
  •         if(strcmp(s[0],"you")==0&&strcmp(s[2],"friends")==0)//sf
  •         {
  •             if(aa==rb)puts("angry");
  •             else U(aa,bb),U(ra,rb);
  •         }
  •         else if(strcmp(s[0],"you")==0&&strcmp(s[2],"enemies")==0)//se
  •         {
  •             if(aa==bb)puts("angry");
  •             else U(aa,rb),U(bb,ra);
  •         }
  •         else if(strcmp(s[0],"are")==0&&strcmp(s[2],"friends")==0)//af
  •         {
  •             if(aa==bb)puts("yeap");
  •             else puts("nope");
  •         }
  •         else if(strcmp(s[0],"are")==0&&strcmp(s[2],"enemies")==0)//ae
  •         {
  •             if(aa==rb)puts("yeap");
  •             else puts("nope");
  •         }
  •         //print();
  •     }
  •     return 0;
  • }



  • 點評

    我應該沒寫錯喔,union我是傳find過的值~~  發表於 2014-7-3 22:56
    回復 支持 反對

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表