比赛 |
EYOI与SBOI开学欢乐赛3rd |
评测结果 |
AAATTTTTTT |
题目名称 |
GodFly的寻宝之旅 |
最终得分 |
30 |
用户昵称 |
00000 |
运行时间 |
21.001 s |
代码语言 |
C++ |
内存使用 |
4.59 MiB |
提交时间 |
2022-09-05 20:57:22 |
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll p=19260817;
ll n,k;
ll g[30][30];
ll c;
ll sum;
ll ans;
ll mark[30];
void dfs(ll x,ll u,ll w)//x:点,u:方案数,w:体力
{
if(x==n)
{
if(w==c) ans=(ans+u)%p;
return;
}
for(int q=1;q<=n;q++)
{
if(mark[q]==0)
{
mark[q]=1;sum+=x;
dfs(q,u*g[x][q]%p,(w+q*sum)%2);
mark[q]=0;sum-=x;
}
}
}
int main(){
freopen("GodFly.in","r",stdin);
freopen("GodFly.out","w",stdout);
cin>>n>>k;
for(int q=1;q<=k;q++)
{
ll x,y;
cin>>x>>y;
g[x][y]++,g[y][x]++;
}
cin>>c;
mark[1]=1;
dfs(1,1,0);
cout<<ans;
return 0;
}