CF814E An unavoidable detour for home
考虑有每个最短路只有一条.
那么我们建出最短路树后,显然所有的非树边都是同层之间的横叉边。
那么我们考虑设\(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的更多相关文章
- codeforces 814E An unavoidable detour for home
题目链接 正解:$dp$. 感觉这道题就是中国象棋的加强版..我们要发现一些性质. 首先就是这个图肯定是一个按照$bfs$序分层的图,且每个点只往自己上面那一层连了一条边,每个点不可能向自己的上面超过 ...
- An unavoidable detour for home CodeForces - 814E (dp)
大意: 给定一棵树每个点的度数, 求所有满足条件的树的个数 每个点到$1$的最短路唯一 假设$l_i$为点$i$到$1$的最短距离, 那么$l_i\ge l_{i-1}$ 每个点度数范围$2\le d ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
- Work at DP
转载请注明出处:http://www.cnblogs.com/TSHugh/p/8858805.html Prepared: (无notes的波兰题目的notes见我的波兰题目补全计划)BZOJ #3 ...
- codeforces round 418 div2 补题 CF 814 A-E
A An abandoned sentiment from past 水题 #include<bits/stdc++.h> using namespace std; int a[300], ...
- codeforces814E
https://lunch.blog.luogu.org/cf814e-an-unavoidable-detour-for-homedp-ji-shuo-post https://blog.csdn. ...
- Detour的简单使用
Detours的安装:下载部分:1.直接在百度搜"detour",进对应的网站下载.2.或以下链接https://www.microsoft.com/en-us/research/ ...
- Recast & Detour & TerrainExport Study Feeling
Recast Navigation和Terrain Export终于算是有点成果了.今天作一个简单的总结,顺便写一些话激励自己. 这个项目的成功对于我这个算法又烂,而又不懂3d图形学的人来说,感觉真是 ...
- 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 ...
随机推荐
- Frida过反调试
原理介绍:https://www.anquanke.com/post/id/85996 code setImmediate(function () { Java.perform(function () ...
- 按键检测GPIO输入
1. 项目 通过按键控制开关LED灯,按下按键灯亮,再按一下灯灭. 2. 代码 mian.c #include "stm32f10x.h" //相当于51单片机中的 #includ ...
- Linux信号处理编程
01. 学习目标 了解信号中的基本概念 熟练使用信号相关的函数 了解内核中的阻塞信号集和未决信号集作用 熟悉信号集操作相关函数 熟练使用信号捕捉函数signal 熟练使用信号捕捉函数sigaction ...
- rabbitmq死信队列和延时队列的使用
死信队列&死信交换器:DLX 全称(Dead-Letter-Exchange),称之为死信交换器,当消息变成一个死信之后,如果这个消息所在的队列存在x-dead-letter-exchange ...
- SpringCloud+RocketMQ实现分布式事务
随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的.所以我们来一步一步的实现基于RocketMQ的分布式事务.接下来,我们将要做的主题写出来. RocketMQ的分布式事务结构和说明 ...
- 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)
前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ...
- 最长子序列(线性DP)学习笔记
子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\l ...
- cf 11A Increasing Sequence(水,)
题意: A sequence a0, a1, ..., at - 1 is called increasing if ai - 1 < ai for each i: 0 < i < ...
- 『学了就忘』Linux基础命令 — 19、目录操作的相关命令
目录 1.ls命令 2.cd命令 (1)绝对路径和相对路径 (2)cd命令的简化用法 3.pwd命令 4.mkdir命令 5.rmdir命令 常用目录操作的相关命令: ls命令 cd命令 pwd命令 ...
- dart系列之:dart语言中的变量
目录 简介 dart中的变量 定义变量 变量的默认值 Late变量 常量 总结 简介 flutter是google在2015年dart开发者峰会上推出的一种开源的移动UI构建框架,使用flutter可 ...