QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#835353 | #8729. Tikvani | Matutino | 0 | 0ms | 4096kb | C++17 | 1.4kb | 2024-12-28 11:25:49 | 2024-12-28 11:26:00 |
answer
#include<bits/stdc++.h>
#define reg register
// #define int long long
inline int read(){
reg int x=0,k=1; reg char ch=getchar();
while (ch<'0'||ch>'9') (ch=='-')&&(k=-1),ch=getchar();
while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return x*k;
}
inline bool cmin(reg int &x,reg int y){return x>y?x=y,1:0;}
const int N=405,mod=1e9+7;
int n,m,fa[N],vis[N],is[N],efa[N];
struct E{int u,v;}e[N];
std::vector<std::pair<int,int>> G[N];
std::bitset<405> b[N];
void dfs(reg int u){
vis[u]=1;
for (auto [v,w]:G[u]) if (!is[w])
if (!vis[v]) efa[v]=w,fa[v]=u,dfs(v),is[w]=1;
}
signed main(){
n=read(),m=read();
for (reg int i=1,u,v;i<=m;i++){
u=read(),v=read();
e[i]={u,v},G[u].push_back({v,i});
}
reg int ans=0,Ans=1;
for (reg int rt=1;rt<=n;rt++){
memset(vis,0,n+1<<2);
dfs(rt);
for (reg int i=1;i<=m;i++) if (!is[i]&&vis[e[i].u]&&vis[e[i].v]){
reg int u=e[i].u,v=e[i].v;
std::bitset<405> now; now[i]=1;
while (efa[u]) now[efa[u]]=1,u=fa[u];
while (efa[v]) now[efa[v]]=1,v=fa[v];
reg int flg=0;
for (reg int j=1;j<=m;j++)if (now[j]){
if (!b[j].count()){b[j]=now,flg=1;break;}
else now^=b[j];
}
ans+=flg;
}
}
ans=m-ans;
while (ans--) Ans=(Ans+Ans)%mod;
printf("%d\n",Ans);
return 0;
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 21
Accepted
time: 0ms
memory: 3748kb
input:
6 5 3 5 2 5 1 6 4 6 2 6
output:
32
result:
ok 1 number(s): "32"
Test #2:
score: 21
Accepted
time: 0ms
memory: 4096kb
input:
6 6 2 5 1 2 3 4 5 6 3 6 1 5
output:
32
result:
ok 1 number(s): "32"
Test #3:
score: 0
Wrong Answer
time: 0ms
memory: 3792kb
input:
6 7 3 6 1 3 3 5 2 3 1 6 2 6 2 5
output:
64
result:
wrong answer 1st numbers differ - expected: '16', found: '64'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #25:
score: 0
Wrong Answer
time: 0ms
memory: 4012kb
input:
50 50 29 32 3 12 36 41 10 30 6 18 20 27 14 36 4 33 6 7 17 31 33 40 2 49 19 42 3 30 2 18 11 42 21 29 11 23 1 35 32 50 22 46 6 22 42 48 15 23 7 43 11 13 5 9 40 50 25 42 5 31 27 30 1 17 14 48 5 44 35 41 1 23 10 21 40 48 12 36 13 37 23 37 23 43 19 26 6 15 13 45 19 27 17 29 20 38 29 42 26 49
output:
898961331
result:
wrong answer 1st numbers differ - expected: '974740338', found: '898961331'
Subtask #4:
score: 0
Skipped
Dependency #1:
0%