1 条题解

  • 0
    @ 2025-2-21 19:58:02

    C :

    #include<stdio.h>
    int main()
    {
      int n,m,a[1000]={0},i,temp,b,c,count;
      while(scanf("%d %d",&n,&m)!=EOF&&n!=0)
        {
          temp=m;count=0;
          while(m--)
          {
            scanf("%d %d",&b,&c);
            a[b]++;a[c]++;
          }
          for(i=1;i<=temp*2;i++)
           {
            if(a[i]%2!=0){count=1;break;}
           }
           if(count==0)printf("1\n");
           else printf("0\n");
           for(i=0;i<n;i++)
           a[i]=0;
        }
      return 0;
    }
    

    C++ :

    #include <cstdio>
    #include <vector>
    #include <cstring>
    
    const int N = 1005;
    
    std::vector < int > v[N];
    bool vis[N];
    
    void dfs(int x) {
        vis[x] = true;
        for (std::vector < int >::iterator it = v[x].begin(); it != v[x].end(); ++it)
            if (!vis[*it])
                dfs(*it);
    }
    
    int main() {
        int n, m;
        while (scanf("%d", &n) && n > 0) {
            scanf("%d", &m);
            for (int i = 0; i < N; ++i)
                v[i].clear();
            while (m--) {
                int x, y;
                scanf("%d %d", &x, &y);
                v[x].push_back(y);
                v[y].push_back(x);
            }
            memset(vis, 0, sizeof(vis));
            dfs(1);
            int ans = 1;
            for (int i = 1; i <= n; ++i) {
                if (v[i].size() % 2 == 1)
                    ans = 0;
                if (!vis[i])
                    ans = 0;
            }
            printf("%d\n", ans);
        }
        return 0;
    }
    
    

    Pascal :

    var
     du:array[1..1010] of longint;
     n,m,x,y,i:longint;
     fg:boolean;
    
    begin
     while true do
      begin
       read(n);
       if n=0 then break;
       readln(m);
       fillchar(du,sizeof(du),0);
       for i:=1 to m do
        begin
         readln(x,y);
         inc(du[x]);
         inc(du[y]);
        end;
       fg:=true;
       for i:=1 to m do
        if odd(du[i]) then
         begin
          fg:=false;
          break;
         end;
       if fg then writeln('1') else writeln('0');
      end;
    end.
    
    
    • 1

    信息

    ID
    997
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者