考虑有每个最短路只有一条.

那么我们建出最短路树后,显然所有的非树边都是同层之间的横叉边。

那么我们考虑设\(f(i,j,k,z)\)为我们考虑到了第\(i\)个点,此时他被我们分配到了\(p\)层,而\(p-1\)层作为完整的层,其总共有\(j\)条向下的边,而\(p\)层有\(k\)个向下一边的点,\(z\)个向下两边的点。

那么我们考虑

从\(f(i,0,c1,c2)\)变为\(f(i,c1 + 2c2,0,0)\)即我们划分了一个新的层。

有\(f(i,c1 + 2c2,0,0) = \frac{(c1 + 2c2)!}{2^c2}f(i,0,c1,c2)\)

那只需要考虑\(i\)从\(i-1\)转移而来:

那么就需要枚举一下\(i\)和哪些点相连。

如果它不连:

则直接:

\(f(i,j-1,c1,c2) = f(i - 1,j,c1,c2)\)

如果它连一个

则有在\(c1 + c2\)个点里找一个点进行横叉边的链接:

连的是一个一度点:

\(f(i,j - 1,nc1 - 1,nc2) = c1f(i - 1,j,c1,c2)\)

连的是一个二度点:

\(f(i,j - 1,nc1 + 1,nc2 - 1) = c2f(i - 1,j,c1,c2)\)

如果它连了两个:

则如果它连的都是一度点:

有\(f(i,j - 1,nc1 - 2,nc2) = \binom{c1}{2}f(i - 1,j,c1,c2)\)

则如果它连的都是二度点:

有\(f(i,j - 1,nc1 + 2,nc2 - 2) = \binom{c2}{2}f(i - 1,j,c1,c2)\)

如果它连的一个是一度点,一个是二度点:

有\(f(i,j - 1,nc1,nc2 - 1) = c1c2f(i - 1,j,c1,c2)\)

是一个很暴力的\(O(n^4)\)的做法。

CF814E An unavoidable detour for home的更多相关文章

  1. codeforces 814E An unavoidable detour for home

    题目链接 正解:$dp$. 感觉这道题就是中国象棋的加强版..我们要发现一些性质. 首先就是这个图肯定是一个按照$bfs$序分层的图,且每个点只往自己上面那一层连了一条边,每个点不可能向自己的上面超过 ...

  2. An unavoidable detour for home CodeForces - 814E (dp)

    大意: 给定一棵树每个点的度数, 求所有满足条件的树的个数 每个点到$1$的最短路唯一 假设$l_i$为点$i$到$1$的最短距离, 那么$l_i\ge l_{i-1}$ 每个点度数范围$2\le d ...

  3. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

  4. Work at DP

    转载请注明出处:http://www.cnblogs.com/TSHugh/p/8858805.html Prepared: (无notes的波兰题目的notes见我的波兰题目补全计划)BZOJ #3 ...

  5. codeforces round 418 div2 补题 CF 814 A-E

    A An abandoned sentiment from past 水题 #include<bits/stdc++.h> using namespace std; int a[300], ...

  6. codeforces814E

    https://lunch.blog.luogu.org/cf814e-an-unavoidable-detour-for-homedp-ji-shuo-post https://blog.csdn. ...

  7. Detour的简单使用

    Detours的安装:下载部分:1.直接在百度搜"detour",进对应的网站下载.2.或以下链接https://www.microsoft.com/en-us/research/ ...

  8. Recast & Detour & TerrainExport Study Feeling

    Recast Navigation和Terrain Export终于算是有点成果了.今天作一个简单的总结,顺便写一些话激励自己. 这个项目的成功对于我这个算法又烂,而又不懂3d图形学的人来说,感觉真是 ...

  9. How to change the implementation (detour) of an externally declared function

    原文地址:http://stackoverflow.com/questions/6905287/how-to-change-the-implementation-detour-of-an-extern ...

随机推荐

  1. Frida过反调试

    原理介绍:https://www.anquanke.com/post/id/85996 code setImmediate(function () { Java.perform(function () ...

  2. 按键检测GPIO输入

    1. 项目 通过按键控制开关LED灯,按下按键灯亮,再按一下灯灭. 2. 代码 mian.c #include "stm32f10x.h" //相当于51单片机中的 #includ ...

  3. Linux信号处理编程

    01. 学习目标 了解信号中的基本概念 熟练使用信号相关的函数 了解内核中的阻塞信号集和未决信号集作用 熟悉信号集操作相关函数 熟练使用信号捕捉函数signal 熟练使用信号捕捉函数sigaction ...

  4. rabbitmq死信队列和延时队列的使用

    死信队列&死信交换器:DLX 全称(Dead-Letter-Exchange),称之为死信交换器,当消息变成一个死信之后,如果这个消息所在的队列存在x-dead-letter-exchange ...

  5. SpringCloud+RocketMQ实现分布式事务

    随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的.所以我们来一步一步的实现基于RocketMQ的分布式事务.接下来,我们将要做的主题写出来. RocketMQ的分布式事务结构和说明 ...

  6. 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)

    前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ...

  7. 最长子序列(线性DP)学习笔记

    子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\l ...

  8. cf 11A Increasing Sequence(水,)

    题意: A sequence a0, a1, ..., at - 1 is called increasing if ai - 1 < ai for each i: 0 < i <  ...

  9. 『学了就忘』Linux基础命令 — 19、目录操作的相关命令

    目录 1.ls命令 2.cd命令 (1)绝对路径和相对路径 (2)cd命令的简化用法 3.pwd命令 4.mkdir命令 5.rmdir命令 常用目录操作的相关命令: ls命令 cd命令 pwd命令 ...

  10. dart系列之:dart语言中的变量

    目录 简介 dart中的变量 定义变量 变量的默认值 Late变量 常量 总结 简介 flutter是google在2015年dart开发者峰会上推出的一种开源的移动UI构建框架,使用flutter可 ...