比赛 |
EYOI与SBOI开学欢乐赛3rd |
评测结果 |
AAATTTTTTT |
题目名称 |
GodFly的寻宝之旅 |
最终得分 |
30 |
用户昵称 |
Skloud |
运行时间 |
21.000 s |
代码语言 |
C++ |
内存使用 |
4.55 MiB |
提交时间 |
2022-09-05 21:50:13 |
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
int n,k,x,y,_;
int head[20],ne[100010],v[100010],tot;
int done[20];
int hua,dui,f;
int add(int a,int b)
{
v[++tot]=b;
ne[tot]=head[a];
head[a]=tot;
}
void dfs(int a,int w,int va)
{
if(done[a]) return;
done[a]=1;
if(a==n)
{
if((w+a*va)%2==1) dui=(dui+1)%19260817;
else hua=(hua+1)%19260817;
return;
}
for(int p=head[a];p;p=ne[p])
{
if(done[v[p]]) continue;
dfs(v[p],(w+a*va)%2,va+a);
done[v[p]]=0;
}
return;
}
int main()
{
freopen("GodFly.in","r",stdin);
freopen("GodFly.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++)
{
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
dfs(1,0,0);
scanf("%d",&_);
if(_) printf("%d\n",dui);
else printf("%d\n",hua);
return 0;
}