这题是玄学的数论

首先考虑如何枚举偶数点度的图

可以考虑取出i-1个点 那么成图的数量为2^C(i-1,2)

(原因单独取出的i点能平衡已建图中的奇数点,原因是某种性质。。。。)

然后求带联通标号的欧拉图

 1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<string>
5 #include<algorithm>
6 #include<vector>
7 #include<cmath>
8 #include<bits/stdc++.h>
9 #include<stack>
10 #include<queue>
11 #include<set>
12 #define MAXN 1000001
13 #define ps push_back
14 #define pt printf("--------\n");
15 #define ll long long
16 using namespace std;
17 const ll mod=1e9+7;
18 ll g[MAXN],f[MAXN];
19 ll jie[MAXN],ni[MAXN],ni_c[MAXN];ll n;
20 ll pow(ll x,ll y)
21 {
22 ll ans=1;
23 while(y){
24 if((y&1)==1)ans=(ans*x)%mod;
25 x=(x*x)%mod;
26 y>>=1;
27 }
28 return ans%mod;
29 }
30 ll C(ll x,ll y)
31 {
32 if(y>x)return 0;return (jie[x]*ni_c[y]%mod*ni_c[x-y]%mod+mod)%mod;
33 }
34 int main()
35 {
36 scanf("%lld",&n);
37 jie[1]=1;jie[0]=1;ni[1]=1;ni_c[1]=1;ni_c[0]=1;ni[0]=1;
38 for(ll i=2;i<=n;++i){
39 jie[i]=(jie[i-1]*i)%mod;
40 ni[i]=((mod-mod/i)*ni[mod%i])%mod;
41 ni_c[i]=(ni_c[i-1]*ni[i])%mod;
42 }
43 g[1]=1;
44 for(ll i=2;i<=n;++i){
45 g[i]=pow(2ll,C(i-1ll,2ll))%mod;
46 // printf("C=%lld g[%lld]=%lld\n",C(i-1,2ll),i,g[i]);
47 }
48 f[1]=1;
49 for(ll i=2;i<=n;++i)
50 {
51 f[i]=(f[i]+g[i])%mod;
52 for(ll j=1;j<=i-1;++j)
53 {
54 f[i]=(f[i]-(f[j]*g[i-j]%mod*C(i-1ll,j-1ll)%mod)+mod)%mod;
55 //printf("f[%lld]=%lld g[%lld]=%lld\n",j,f[j],i-j,g[i-j]);
56 }
57 f[i]%=mod;
58 //printf("f[%lld]=%lld\n",i,f[i]);
59 }
60 printf("%lld\n",(f[n]*C(n,2)+mod)%mod);
61 }

【模拟7.14】建造游乐园(play)的更多相关文章

  1. [NOIP模拟测试3] 建造游乐园 题解(欧拉图性质)

    Orz 出题人石二队爷 我们可以先求出有n个点的联通欧拉图数量,然后使它删或增一条边得到我们要求的方案 也就是让它乘上$C_n^2$ (n个点里选2个点,要么删边要么连边,选择唯一) 那么接下来就是求 ...

  2. 模拟3题解 T3建造游乐园

    T3建造游乐园 这题的关键是推式子 i个点中,有g[i]个方案是度为偶数但不一定连通那么就要减去不合法的设已有j个合法,其个数为f[j],剩下i-j个的方案数是g[i-j]选出来一个固定的点在合法的j ...

  3. NOIP模拟测试3「序列·熟练剖分·建造游乐园(play)」

    ---恢复内容开始--- 序列 刚调出来样例就A了,假装是水题. 因为是乱序,我们要求出来每两项之间最小公比,而不是直接比 求出来每两项之间最小公比,然后扫一遍就完了.(还要注意重复情况) 那么问题就 ...

  4. JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠

    JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...

  5. 20210501 序列,熟练剖分(tree),建造游乐园(play)

    考场 \(65+5+0\),并列 rk2 最高分 \(55+10+10\) T1:等比数列可以写作 \(q^kx\),发现 \(q\le1000\) 且有一档分为 \(a_i\le100\),想到 \ ...

  6. NOIP模拟测试14

    考完19了再写14,我也是够咕的. 14的题很好,也充分暴露了我的问题. T1是个分析性质推结论的题 对于区间[L,R],不妨设a[L]!=a[R],那么两个端点对答案没有贡献,也就是[L+1,R], ...

  7. noip模拟赛#14

    #14: T1:f[x]=x-1(x&1)||x/2(x&1=0) 求[n,m]有多少个数可以通过变换得到k.(1e9). =>好像cf上看过类似的题,用二进制的方式来写.不过我 ...

  8. [考试反思]0807NOIP模拟测试14:承认

    一大排并列Rank#9之一. 考试题还没改完(而且并不会模拟退火)所以题解又只能咕了 然而并不想吐槽T2对sjzyz是原题导致4个AC里面有3个他们的 虽说这次的成绩不怎么样,但是这次的考试过程是全新 ...

  9. 【NOIP2016提高A组模拟9.14】数列编辑器

    题目 分析 比赛上,没有注意到询问只询问光标前面,于是只打了个暴力. 因为询问只询问光标前面,首先,当光标向后每移动到一个位置,顺便将这个位置的前缀和,和最大前缀和求出来. 总之,模拟 #includ ...

随机推荐

  1. PHP解压压缩包文件到指定目录的实现

    $src_file为文件路径,上传文件返回压缩包路径即可 public function unzip($src_file, $dest_dir=false, $create_zip_name_dir= ...

  2. $ git push -u origin master 报错

    输入$ git push -u origin master报permission denied(publickey) 如下: 原因是没有与gitee上的账号成功建立密钥对,所以需要配对密钥 解决方法( ...

  3. back_insert_iterator和insert_iterator

    #include <iostream> #include <string> #include <iterator> #include <vector> ...

  4. 《前端运维》一、Linux基础--03Shell基础及补充

    诶诶欸?不是学Linux么?怎么要讲shell了?shell是啥?啥是shell? 别急,我们先简单了解下shell是什么.Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁. ...

  5. 正则表达式、编辑器(vi、sed、awk)

    1. vi 2. 正则表达式 3. sed 1)打印命令:p 2)删除命令:d 3)替换命令:s 4. awk 1)awk 基本用途 2)匹配打印 3)判断打印 4)数组 1. vi vi 是 Lin ...

  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署

    之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...

  7. tail -fn 1000 test.log | grep '关键字' 按照时间段 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

    Linux 6种日志查看方法,不会看日志会被鄙视的 2020-02-11阅读 7.3K0   作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽 ...

  8. LVM 相关知识

    LVM 相关知识 一.示例图 二.概念 名词 全称 释义 PV Physical Volume 物理硬盘.硬盘分区或者RAID磁盘阵列,先要创建pv VG Volume Group 卷组建立在物理卷之 ...

  9. rpm包名详解-rpm命令使用方法

    linux软件包管理-rpm mount # 挂载 1.将光盘镜像插入光驱 2.创建挂载目录 mkdir /guangqu 3.挂载到/guangqu [root@gong ~]# mount /de ...

  10. 安装了Python2.X和Python3.X后Python2.X IDLE打不开解决办法总结

    安装了Python2.X和Python3.X后Python2.X IDLE打不开,两个版本都卸载后重装仍然打不开,在网上找了几种办法,希望对大家能有所帮助 1.首先查看环境变量是否配置正确 配置方法网 ...