得分: \(10+0+40=50\)(\(T1\),\(T3\)只能写大暴力,\(T2\)压根不会)

\(T1\):道路建造

应该是一道比较经典的容斥题,可惜比赛时没有看出来。

由于要求最后删一条边或加一条边后得到一个欧拉回路。而反过来说,对于一个欧拉回路,我们有\(C_n^2\)种方式加边或删边使其变成一个题目中所求的合法图。

因此,我们只需求出欧拉回路图的个数,然后乘上\(C_n^2\)即为答案。

但还有一个比较麻烦的问题是,这张图必须联通。

那我们就可以先计算出所有情况数,再减去不连通的情况数即可求出连通的情况数。

设所有情况数为\(g_i\),连通的情况数为\(f_i\)。

当有\(i\)个点时,对于所有情况,我们可以计算得出这样一个式子:\(g_i=2^{C_{i-1}^2}\)。

证明:我们可以先去掉一个点,则总边数为\(C_{i-1}^2\),而由这\(i-1\)个点所构成的图便有\(2^{C_{i-1}^2}\)种情况。而对于最后一个点,我们可以用其向所有奇点连边使其变为偶点,这样就可以得到一个欧拉回路图了。

那么接下来的问题就是如何求\(f_i\)。

我们可以枚举一个\(j\)来将这\(i\)个点分为\(j\)和\(i-j\)两部分,然后强制其不连通即可得到不连通的情况数。然后用\(g_i\)减去它,就得到这样一个式子:\(f_i=g_i-\sum_{j=1}^{i-1}f_j*g_{i-j}*C_{i-1}^{j-1}\)。

最后答案自然就是\(C_n^2*f_n\)。

代码实现如下:

#include<bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define Reg register
#define RI Reg int
#define Con const
#define CI Con int&
#define I inline
#define W while
#define N 2000
#define X 1000000007
#define Qinv(x) (Qpow(x,X-2))
#define Dec(x,y) ((x-=(y))<0&&(x+=X))
#define Qinv(x) Qpow(x,X-2)
#define C(x,y) (1LL*Fac[x]*Inv[y]%X*Inv[(x)-(y)]%X)
using namespace std;
int n,f[N+5],g[N+5],Fac[N+5],Inv[N+5];
I int Qpow(RI x,RI y) {RI res=1;W(y) y&1&&(res=1LL*res*x%X),x=1LL*x*x%X,y>>=1;return res;}//快速幂
int main()
{
freopen("road.in","r",stdin),freopen("road.out","w",stdout);
RI i,j;for(scanf("%d",&n),Fac[0]=i=1;i<=n;++i) Fac[i]=1LL*Fac[i-1]*i%X;//预处理阶乘
for(Inv[n]=Qinv(Fac[n]),i=n-1;~i;--i) Inv[i]=1LL*Inv[i+1]*(i+1)%X;//预处理阶乘逆元
for(i=1;i<=n;++i) for(f[i]=g[i]=Qpow(2,C(i-1,2)),j=1;j^i;++j) Dec(f[i],1LL*f[j]*g[i-j]%X*C(i-1,j-1)%X);//求出f[i]和g[i]
return printf("%d",1LL*C(n,2)*f[n]%X),0;//计算并输出答案
}

\(T2\):圈地游戏

待订正ing

\(T3\):组合数学

待订正ing

2019.03.02 ZJOI2019模拟赛 解题报告的更多相关文章

  1. 2019.03.19 ZJOI2019模拟赛 解题报告

    得分: \(100+10+45=155\)(\(T1\)又是水题,\(T2\)写暴力,\(T3\)大力\(STL\)乱搞) \(T1\):哈夫曼树 首先,根据题目中给出的式子,可以发现,我们要求的其实 ...

  2. 2019.03.09 ZJOI2019模拟赛 解题报告

    得分: \(20+0+40=60\)(\(T1\)大暴力,\(T2\)分类讨论写挂,\(T3\)分类讨论\(40\)分) \(T1\):天空碎片 一道神仙数学题,貌似需要两次使用中国剩余定理. 反正不 ...

  3. 2019.03.13 ZJOI2019模拟赛 解题报告

    得分: \(55+12+10=77\)(\(T1\)误认为有可二分性,\(T2\)不小心把\(n\)开了\(char\),\(T3\)直接\(puts("0")\)水\(10\)分 ...

  4. 2019.03.14 ZJOI2019模拟赛 解题报告

    得分: \(100+100+0=200\)(\(T1\)在最后\(2\)分钟写了出来,\(T2\)在最后\(10\)分钟写了出来,反而\(T3\)写了\(4\)个小时爆\(0\)) \(T1\):风王 ...

  5. 2019.03.15 ZJOI2019模拟赛 解题报告

    得分: \(20+45+15=80\)(三题暴力全写挂...) \(T1\):Lyk Love painting 首先,不难想到二分答案然后\(DP\)验证. 设当前需验证的答案为\(x\),则一个暴 ...

  6. 2019.03.16 ZJOI2019模拟赛 解题报告

    得分: \(100+27+20=147\)(\(T1\)巨水,\(T2,T3\)只能写暴力分) \(T1\):深邃 比较套路的一眼题,显然是一个二分+贪心,感觉就是\(NOIP2018Day1T3\) ...

  7. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  8. 2018.10.26NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 70\) 实际得分:\(40 + 100 + 70\) 妈妈我又挂分了qwq..T1过了大样例就没管,直到临考试结束前\(10min\)才发现大样例是假 ...

  9. 2018.10.17NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 +100\) 实际得分:\(100 + 100 + 60\) 辣鸡模拟赛.. 5min切掉T1,看了一下T2 T3,感觉T3会被艹爆因为太原了.. 淦了20 ...

随机推荐

  1. SQL server 2008 r2 安装图文详解

    文末有官网下载地址.百度网盘下载地址和产品序列号以及密钥,中间需要用到密钥和序列号的可以到文末找选择网盘下载的下载解压后是镜像文件,还需要解压一次直接右键点击解如图所示选项,官网下载安装包的可以跳过前 ...

  2. java spi机制和场景

    JDK中查找服务的实现的工具类是:java.util.ServiceLoader, jvm启动时自动查找META-INF/services/下面的实现类,并初始化实例 jdbc的mysql实现类 在静 ...

  3. Python中的sin和cos函数

        1 第一次使用math.sin()和math.cos(),可是发现结果不对,比如Math.sin(90)=0.893996663600,奇怪? 2 3 一查,原来sin(x) \n\n Ret ...

  4. 谷歌Chrome浏览器离线安装包

    下载地址(自选版本) 链接: https://pan.baidu.com/s/1_gVP32tBNTR0pHhQbbM8Iw 密码: rmak 有能力的可以自行到下方地址下载: 最新稳定版:https ...

  5. python文件引用其他文件中的变量

    问题: 然后再另一个文件中引用该变量 报错:Cannot find reference 'User_Agent' in '__init__.py' less... (Ctrl+F1) 正确写法: fr ...

  6. OfficeControl插件的用法

    项目中需要用到文档在线编辑的功能,网上找到这篇文章: http://hi.baidu.com/hurtingwings/item/bf83b6343305a94e3075a19e

  7. Json JsonUtility对字典/列表的序列化,反序列化

    Unity5.3从开始追加的JsonUtility,但是对于List 和Dictionary不能被直接序列化存储. 例如: 数据模型: using UnityEngine; using System; ...

  8. PlayMaker Play Sound 和 Audio Play

    这两个 Action 都可以播放声音 *Play Sound:只要把声音拖进去就可以: *Audio Play:要求游戏对象要有Audio Source组件.

  9. LeanTouch控制移动

    Lean_Touch控制移动 using UnityEngine; using System.Collections; using System.Collections.Generic; using ...

  10. Neutron命令测试4

    jolin@jolin:~$ route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface ...