QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#885355 | #7324. Eulerian Orientation | bzq | Compile Error | / | / | C++14 | 1.2kb | 2025-02-06 15:23:00 | 2025-02-06 15:23:10 |
Judging History
This is the latest submission verdict.
- [2025-02-06 15:23:10]
- Judged
- Verdict: Compile Error
- Time: 0ms
- Memory: 0kb
- [2025-02-06 15:23:00]
- Submitted
answer
#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
#define pb push_back
mt19937_64 bzq(0);
const int N=200010,mod=1e9+7,p3=mod-3;
int n,m,uid,ans,ans1,num,t,u,v;
int sui[N],w[N],b[N];
map<int,int> mp;
struct jcd{
int v,id;
};
void dfs(int u,int fa,int k)
{
b[u]=1;
for(auto[v,id]:f[u])
if(id!=k){
if(!b[v])dfs(v,u,id),sui[u]^=sui[v];
else if(!w[id])
++uid,w[id]=bzq(),sui[u]^=w[id],sui[v]^=w[id];
}
w[k]=sui[u];
}
vector<jcd> f[N];
int power(int a,int b){
int ans=1;
while(b){
if(b%2)ans=ans*a%mod;
b/=2;a=a*a%mod;
}return ans;
}
void cl(){
uid=ans=ans1=num=0;
for(int i=1;i<=n;i++)sui[i]=b[i]=0;
for(int i=1;i<=m;i++)w[i]=0;
mp.clear();
for(int i=1;i<=n;i++)f[i].clear();
}
signed main()
{
cin>>t;
while(t--)
{
cin>>n>>m;cl();
for(int i=1;i<=m;i++)
cin>>u>>v,f[u].pb({v,i}),f[v].pb({u,i});
for(int i=1;i<=n;i++)
if(!b[i])dfs(i,0,0);
for(int i=1;i<=m;i++)
if(w[i])mp[w[i]]++;
for(auto[a,b]:mp)
ans=(ans+b)%mod,ans1=(ans1+b*b)%mod;
num=ans*ans%mod;
num=(num+ans1)%mod;
// num=num*power(2,uid-3)%mod;oi一场十年功,ull爆炸见jl,yyyx,wzy
num=num*power(2,uid+p3)%mod;
cout<<num<<"\n";
}
return 0;
}
詳細信息
answer.code: In function ‘void dfs(long long unsigned int, long long unsigned int, long long unsigned int)’: answer.code:17:17: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 17 | for(auto[v,id]:f[u]) | ^ answer.code:17:24: error: ‘f’ was not declared in this scope 17 | for(auto[v,id]:f[u]) | ^ answer.code: In function ‘int main()’: answer.code:55:25: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 55 | for(auto[a,b]:mp) | ^