codechef Future of draughts
难度
super-hard
题意
做法
定义1:\(G\)为邻接矩阵,\(I\)为单位矩阵
定义2:\(H\)为转移矩阵,可以不动,即\(H=G+I\)
定义3:\(e_i(x_1,...,x_n)\)为\((x_1,...,x_n)\)的所有\(i\)子集乘积和
\(i\)到\(j\)走\(K\)步的方案数即\(G^K_{ij}\),可以通过\(O(Tn^3K)\)算出来
但这样显然会超时
注意到我们只需要\(tr(H^N)\),对于加法矩阵的每个元素是线性无关的,试图从特征多项式入手
从关于\(H\)的特征值入手,设\(H\)的\(n\)个特征值为\(\lambda_1,...,\lambda_n\)
定理1:\(tr(H^N)=\sum\limits_{i=1}^n \lambda_i^N\)
证明:证明\(\lambda\)是\(H\)的特征向量,则\(\lambda^N=H^N\)的特征向量即可
\(x\in V^n\)非零向量,即\(Ax=\lambda x\)
下面即例\(N=2\)
有\(AAx=A(\lambda x)=\lambda(Ax)=\lambda^2x\)
定理2(牛顿恒等式):\(ke_k(x_1, \ldots x_N) = \sum_{i=1}^k (-1)^{i-1} e_{k-i}(x_1, \ldots, x_N)p_i(x_1, \ldots, x_N)\),其中\(p_i(x_1, \ldots, x_N)\) 定义为\(x_1^i + x_2^i + \cdots + x_N^i\)
证明:简单容斥,不详述
定理3:\(e_1(\lambda_1, \ldots, \lambda_N) = -c_{N-1}\)
\(e_2(\lambda_1, \ldots, \lambda_N) = +c_{N-2}\)
\(e_3(\lambda_1, \ldots, \lambda_N) = -c_{N-3}\)
\(e_4(\lambda_1, \ldots, \lambda_N) = +c_{N-4}\)
\(\ldots\)
\(e_N(\lambda_1, \ldots, \lambda_N) = (-1)^Nc_0\)
证明:根据行列式的性质,显然,不详述
我们根据定理1,暴力求出\(N\)个矩阵后,可得\(tr(H^N)\),根据定理2即\(e_k(x_1,\ldots x_N)\),再根据定理3得到系数向量\(c\)。(\(O(n^4)\))
根据特征多项式有:
\(\begin{aligned} c_0 + c_1 H + c_2 H^2 + \ldots + H^N &= 0 \\\ c_0 H^{k-N} + c_1 H^{k-N+1} + c_2 H^{k-N+2} + \ldots + H^k &= 0 \\\ ext{tr}[c_0 H^{k-N} + c_1 H^{k-N+1} + c_2 H^{k-N+2} + \ldots + H^k] &= 0 \end{aligned}\)
\(c_0 ext{tr}[H^{k-N}] + c_1 ext{tr}[H^{k-N+1}] + c_2 ext{tr}[H^{k-N+2}] + \ldots + ext{tr}[H^k] = 0\)
故我们有了\(O(nK)\)得到一张图的转移矩阵的\(K\)个迹了
设\(G_{ik}\)表示\(i\)走\(k\)步回到自己的答案,我们将\(l\)到\(r\)的\(\sum\limits G_{ik}\)相乘即可
但某一步可能一张图都没有走,也就是选出来的是个空集,这里得二项式反演一下,所以要写个\(ntt\)
具体地,把操作离线下来,复杂度\(O(T(n^4+nK)+T^2klogk)\)
code
明天写
codechef Future of draughts的更多相关文章
- 面向未来的友好设计:Future Friendly
一年前翻译了本文的一部分,最近终于翻译完成.虽然此设计思想的提出已经好几年了,但是还是觉得应该在国内推广一下,让大家知道“内容策略”,“移动优先”,“响应式设计”,“原子设计”等设计思想和技术的根源. ...
- 线程笔记:Future模式
线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...
- 第二篇 Entity Framework Plus 之 Query Future
从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...
- Eclipse调试Android App若选择“Use same device for future launches”就再也无法选择其他设备的问题
在狂批了某供应商的多媒体控制App有多烂后,夸下海口自己要做一个也是分分钟的事.当然要做好不容易,要超过他们的烂软件还是有信心的.过程中遇到各种坑,其中之一如下 刚开始只使用一个平板进行调试,老是弹出 ...
- java Future 接口介绍
(转自:http://blog.csdn.net/yangyan19870319/article/details/6093481) 在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java ...
- java多线程系类:JUC线程池:06之Callable和Future(转)
概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...
- 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树
3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec Memory Limit: 256 MBSubmit: 1288 Solved: 490 ...
- 架构师养成记--9.future模式讲解
什么是future模式呢?解释这个概念之前我们先来了解一个场景吧,财务系统的结账功能,这个功能可能是每个月用一次,在这一个月中相关的数据量已经积累得非常大,这一个功能需要调用好几个存储过程来完成.假如 ...
- Future和Promise
Future用于获取异步操作的结果,而Promise则比较抽象,无法直接猜测出其功能. Future Future最早来源于JDK的java.util.concurrent.Future,它用于代表异 ...
随机推荐
- 【Bullet引擎】刚体类 —— btRigidBody
btRigidBody类主要用于刚体数据的计算. 在模拟刚体动画过程中,可以使用btRigidBody类获取所保存的刚体对象,进而控制刚体对象的旋转和位移.进行刚体模拟计算需要经常用到此类. API: ...
- 本地linux搭建的WordPress升级时需要输入FTP信息
转自:https://blog.csdn.net/weixin_43837883/article/details/88751871 这是因为目录权限不正确所致 解决方法: 1.使用命令chown -R ...
- Linux bash管道符“|”使用介绍与例子
https://blog.csdn.net/wangqianyilynn/article/details/75576815
- 能否不同udp socket绑定到同一IP地址和port
http://www.softlab.ntua.gr/facilities/documentation/unix/unix-socket-faq/unix-socket-faq-4.html http ...
- Waymo-自动驾驶长尾问题挑战(2019)
尽管Waymo已经在开放道路上积累超过10 Million Miles,Waymo的工程师们仍然发现有层出不穷的新自动驾驶场景待解决. 1.自动驾驶长尾场景举例 场景一:一个骑自行车的人手中拿着一个S ...
- 五分钟了解抽象语法树(AST)babel是如何转换的?
抽象语法树 什么是抽象语法树? It is a hierarchical program representation that presents source code structure acco ...
- .net core 3.1 webapi后端接收钉钉小程序post的文件/图片
世上本没路:走的人多了,便成了路. dd.uploadFile({ url: '请使用自己服务器地址', fileType: 'image', fileName: 'file', filePath: ...
- springCloud进阶(微服务架构&Eureka)
springCloud进阶(微服务架构&Eureka) 1. 微服务集群 1.1 为什么要集群 为了提供并发量,有时同一个服务提供者可以部署多个(商品服务).这个客户端在调用时要根据一定的负责 ...
- web自动化之三大等待
这个假期有些长,长到忘记了要学习,要找工作,好吧,在我每天无休止的追着偶像剧时,我确实没有负罪感,在听了小祥大佬的分享后,我连睡午觉都被吓醒.大佬跟我同一个班,在大厂工作,每天还抽时间学习,作业也没落 ...
- Mac搭建本地服务器并映射到外网
最近在学习Html,小有进步变想着写一个浪漫的静态页面给女朋友浪漫一下,那么问题就来了,如何把我的网页让对网络一窍不通的女朋友看到,所以便想到了是用自己电脑作为服务器的想法.百度以后整理如下: 首先搭 ...