P4708 画画 题解

先叠层甲。

此解法非本题正解

如果想看正解可以去看上面 S d c h r Sdchr Sdchr L o g x Log_x Logx 大佬的。

第一眼看到此题, N N N 个点的无标号的每个连通块有欧拉回路的图的个数。
这不就是 N N N 阶赛德尔矩阵的个数吗?

什么?你不知道赛德尔矩阵是什么。没关系。这东西是个很小众的东西。百度上都基本查不到,只不过我碰巧看到过,然后我们就可以在翻译软件上翻译 N N N 阶赛德尔矩阵个数,英文为 n u m b e r number number o f of of S e i d e l Seidel Seidel m a t r i c e s matrices matrices o f of of o r d e r order order n n n 然后我们在 O E I S OEIS OEIS 上查一查。

根据样例检查一下,对的,没问题。

我们将这个数列复制下来,用代码取模。
然后存进一个数组。

Code

#include <bits/stdc++.h>
using namespace std;
int a[51]={1,1,2,3,7,16,54,243,2038,33120,1182004,87723296,907260828,445874017,131059413,750854059,85710140,46269468,106575268,569924828,477980796,853121491,916490672,848722293,179336057,577163661,709912061,916083428,988859367,286999618,29547862,713350279,194424628,553076032,609634772,876525030,182311698,148716617,346128108,650982654,373128192,361260409,524419271,834718796,514750301,478609700,386216865,881562716,715225681,602577017};
int main()
{
	int n;
	cin>>n;
	cout<<a[n-1];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值