BZOJ2169 连边(动态规划)
令f[i][j]表示连i条边时奇点个数为j的方案数,转移时讨论两奇点相连、一奇一偶相连、两偶点相连即可。注意这样会造成重边,那么算出恰好有一条重边的方案数并减掉。由于是有序地考虑每条边,每次还要除以i。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() {int x=0,f=1;char c=getchar();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f; } #define N 1010 #define P 10007 int n,m,k,degree[N],f[N][N],inv[N],ans,cnt; int C(int n,int m){return (n*(n-1)>>1)%P;} int main() { #ifndef ONLINE_JUDGEfreopen("bzoj2169.in","r",stdin);freopen("bzoj2169.out","w",stdout);const char LL[]="%I64d\n"; #elseconst char LL[]="%lld\n"; #endifn=read(),m=read(),k=read();for (int i=1;i<=m;i++){int x=read(),y=read();degree[x]^=1,degree[y]^=1;}for (int i=1;i<=n;i++) if (degree[i]) cnt++;inv[0]=1;inv[1]=1;for (int i=2;i<=k;i++) inv[i]=P-(P/i)*inv[P%i]%P;f[0][cnt]=1;for (int i=1;i<=k;i++)for (int j=0;j<=n;j++)f[i][j]=(f[i-1][j+2]*C(j+2,2)%P+f[i-1][j]*j%P*(n-j)%P+(j>=2?f[i-1][j-2]*C(n-j+2,2)%P:0)-(i>=2?f[i-2][j]*(C(n,2)-i+2)%P:0)+P)%P*inv[i]%P;cout<<f[k][0];return 0; }
转载于:https://www.cnblogs.com/Gloid/p/9557810.html
BZOJ2169 连边(动态规划)相关推荐
- 伍六七带你学算法 动态规划 ——不同路径
力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...
- 由动态规划计算编辑距离引发的思考
简单介绍 编辑距离算法: https://www.cnblogs.com/BlackStorm/p/5400809.html https://wizardforcel.gitbooks.io/the- ...
- LeetCode 10. Regular Expression Matching python特性、动态规划、递归
前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...
- 【动态规划】Part1
1. 硬币找零 题目描述:假设有几种硬币,如1.3.5,并且数量无限.请找出能够组成某个数目的找零所使用最少的硬币数. 分析: dp [0] = 0 dp [1] = 1 + ...
- 2016.4.2 动态规划练习--讲课整理
1.codevs1742 爬楼梯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小明家外面有一个长长的楼梯,共N阶.小明的腿 ...
- 算法设计与分析第4章 动态规划(二)【DP序列问题】
第3章 动态规划(二)[DP序列问题] 3.2 DP序列问题 (51nod的动态规划教程很不错,讲解很详细,以下分析来自51nod) 1.矩阵取数问题 给定一个m行n列的矩阵,矩阵每个元素是一个正整数 ...
- 算法设计与分析第4章 动态规划(一)【背包问题】
第3章动态规划(一)[背包问题] 基本思想: 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,但是经分解得到的子问题往往不是互相独立的.不同子问题的数目常常只有多项式量级.在用 ...
- ADPRL - 近似动态规划和强化学习 - Note 7 - Approximate Dynamic Programming
Note 7 - 近似动态规划 Approximate Dynamic Programming 7. 近似动态规划 (Approximate Dynamic Programming) 7.1 近似架构 ...
- ADPRL - 近似动态规划和强化学习 - Note 6 - Mitigating the Curse of Dimensionality
Note 6 Mitigating the Curse of Dimensionality 减轻维度诅咒 6. Mitigating the Curse of Dimensionality 减轻维度诅 ...
最新文章
- 彻底取代Redis+数据库架构,京东618稳了!
- 记录一次生产环境下的jvm内存泄露问题和分析解决过程!
- centos linux引导修复_CentOS没了,Linux的新世界来了
- 浏览Github必备的5款神器级别的Chrome插件
- mysql-5.2 lib_Centos 5.2下安装多个mysql数据库配置详解
- 常用HTTP状态码趣(曲)解
- Linux块设备概念和列出块设备命令学习
- Oracle中的Union、Union All、Intersect、Minus
- android+ebook控件,Android 自定义控件 eBook 翻书效果
- 让评审人爱上你的8个要点
- c语言数据结构将链串里所有值为x的字符删除_redis数据结构与对象到底长什么样?...
- python中input数组_python – 在NumPy数组中搜索序列
- day05 数据类型
- 项目启动会ppt_项目经理实战篇-项目启动会
- mysql零碎问题合集
- 2010新财富中国富豪榜1至100名
- VS2019的C++项目如何查看源文件(.h,.cc.cpp等)所在的工程
- 苹果10月23日或发布iPad mini
- Android color.xml设置透明度
- python opencv人脸识别考勤系统的完整源码
热门文章
- 线性结构 -- 连续存储(数组), 1个简单的c语言代码实现.
- android信息中字符个数,在android中指定编辑文本中的字符数
- php实现复选框删除功能,php怎么实现复选框批量删除
- ping 不通容器 宿主_使用容器的正确方式,Docker在雪球的技术实践
- was更换java版本,WAS如何更换JDK
- 阿里云 FaaS 架构设计与创新实践
- GitHub Action + ACK:云原生 DevOps 落地利器
- struts2 如何跳转html5,在线HTML编辑器——ueditor,跟struts2结合
- html表单没有csrf保护,如何在Symfony 1.4中为表单禁用CSRF保护/验证
- linux双4g内存花屏,linux不支持4G内存的处理方法