QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#328072#1844. Cactus11d10xyWA 0ms29176kbC++141.0kb2024-02-15 16:51:262024-02-15 16:51:27

Judging History

你现在查看的是最新测评结果

  • [2024-02-15 16:51:27]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:29176kb
  • [2024-02-15 16:51:26]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int n,m,tot,st[300010],vis[300010],tp;
set<int>G[300010];
basic_string<int>ans,cir[300010];
void dfs(int u,int fa){
   st[++tp]=u,vis[u]=1;
   for(int v:G[u])if(v!=fa)if(!vis[v]){
      dfs(v,u);
      if(cir[u].empty())continue;
      cir[u].pop_back();
      int s=cir[u].size();
      for(int i=0;i<s;i++)ans+=cir[u][i]+(i&1)*n;
      ans+={cir[u][0]+n,cir[u].back()+n};
   }else{cir[v]={};for(int i=tp;st[i+1]!=v;cir[v]+=st[i--]);G[v].erase(u);}
   tp--;
}
int main(){
   cin>>n>>m;
   for(int u,v;m--;)scanf("%d%d",&u,&v),G[u].insert(v),G[v].insert(u);
   set<int>s;
   for(int i=1;i<=n;i++)if(G[i].size()&1)s.insert(i);
   for(int u;!s.empty();){
      u=*begin(s),s.erase(u),ans+=u;
      for(int v:G[u]){
         if(G[v].size()&1)s.erase(v);
         else s.insert(v);
         G[v].erase(u);
      }G[u]={};
   }
   ans+=0;
   for(int i=1;i<=n;i++)if(!vis[i])dfs(i,0),ans+=i;
   printf("0 %d\n",(int)ans.size());
   for(int x:ans)if(x)printf("1 %d\n",x);else puts("2");
   return 0;
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 29176kb

input:

3 3
1 2
1 3
2 3

output:

0 6
2
1 3
1 5
1 6
1 5
1 1

result:

wrong answer The deg of 5 is not odd.