【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1
记录一下day6发生的事情吧。
7:30
到达附中求索碑,被人膜,掉RP。
7:50
进考场,6楼的最后一排的最左边的位置,世界上最角落的地方,没有任何想法。
发现电脑时间和别人不一样,赶快调了一下。
8:00
等待发题。
8:03
题发了,为什么要迟发呢。=)
8:05-9:30
冥思苦想T1什么鬼东西。中间看了看T2T3是啥。
9:30-10:30
对T3的水震惊之余,把T3切掉了,顺便在准考证背面写了题解,准备给同学看看,以便带出去交流。
10:50-12:00
思考T2骗分,T2又是DNA序列,思考为什么FJ不建一个全国基因研究库,就开在FCS里面,专门研究不相交DNA序列反转和两个DNA的最近公共祖先的长度呢?
最终还是输出了-1。233333
12:00-13:00
和@qrc交流T3,和其他人讲T3怎么做,期盼自己能ACT3。
13:00-18:30
机房划水,TR灾厄坑有了很大的进展,见识了克苏鲁之眼的狂暴形态。(???)
看了成绩,稳稳110,和nealchen并列FJ No.12,非常的舒服。
说说题解吧,也只会T3了
【T3】
题意:有n个城市,每个城市都有p个出入口,第\(i\)个城市的第\(j\)个出口有\(U_{i,j}\)条路径,入口有\(V_{i,j}\)条路径,从一个城市的第\(j\)出口出去,也要在另一个城市的第\(j\)入口进入才行。
那么,请你求出经过不超过k条路径的,从S旅行到T的方案数吧,虽然城市的图是一样的,但是有多组询问哦。
数据范围:\(1\leq n\leq 1000,1\leq p\leq 20,0\leq k\leq 10^{18}\)。
题解:观察到图的邻接矩阵是乘积的形式:\(A_{i,j}=\sum_{k=1}^{p}U_{i,p}\cdot V_{j,p}=\sum_{k=1}^{p}U_{i,p}\cdot V^{T}_{p,j}=U\cdot V^T\),准确的说,是矩阵乘积的形式!
这给接下来的解题提供了提示。
那么我们要求出\(Sum=A^0+A^1+\cdots+A^k\),准确的说,要求出\(Sum_{S,T}\),这里的\(Sum\)是一个矩阵哦。
如果直接计算,矩阵乘法都会TLE。
那么我们化简:
\(Sum=I+U\cdot V^T+U\cdot V^T\cdot U\cdot V^T+\cdots+(U\times V^T)^k\)
\(Sum=I+U\cdot(I+V^T\cdot U+(V^T\cdot U)^2+\cdots+(V^T\cdot U)^{k-1})\cdot V^T\)
恐怖的式子,对吧。但是我们完成了很重要的一步,注意到了吗:\(V^T\cdot U\)是一个\(p\times p\)的矩阵,这说明了矩阵乘法变得更快了!
用以往的技巧,构造\(2p\times 2p\)的矩阵,可以记录前缀和。
把这个矩阵的1,2,4,8,16...次幂记录下来,就可以直接快速求得任意次幂了。注意加上稀疏矩阵优化。
最终,前乘\(U\),后乘\(V^T\),再加上单位矩阵,就得到答案。
最后的小优化:因为求得是\(Sum_{S,T}\),只要一个元素,可以更快求出来,不用求出整个\(Sum\)。
那么这题就算做完了。
【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1的更多相关文章
- 【FCS NOI2018】福建省冬摸鱼笔记 day1
省冬的第一天. 带了本子,笔,一本<算法导论>就去了.惊讶于为什么同学不带本子记笔记. 他们说:“都学过了.”,果然这才是巨神吧. 第一天:数论,讲师:zzx 前几页的课件挺水,瞎记了点笔 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day3
第三天. 计算几何,讲师:叶芃(péng). dalao们日常不记笔记.@ghostfly233说他都知道了,就盼着自适应辛普森积分. 我计算几何基础不好……然而还是没怎么讲实现,感觉没听什么东西进去 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day2
第二天. 同学还是不带本子记笔记.dalao. 第二天:图论,讲师:@ExfJoe 全程划水,前面都讲水算法[虽然我可能已经忘记了]什么最短路,Tarjan,最小生成树,2SAT,差分约束啥的,我现在 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day5
第五天,也是讲课的最后一天. 数据结构专题,讲师:杨志灿 他的blog我似乎找不到了……以前肯定是在百度博客里面.但是现在百度博客消失了. PPT做的很有感觉,说了很多实用的技巧. 我觉得其实是收获最 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day4
第四天. 动态规划专题,讲师:闫神 讲了一些DP优化技巧,然而思想难度好大啊……根本没想到能优化那地步,连DP方程都没有呢. 不过有几题我还是想明白了. 讲了单调队列,决策单调性,四边形不等式,斜率优 ...
- Hash 日常摸鱼笔记
本篇文章是Hash在信息学竞赛中的应用的学习笔记,分多次更新(已经有很多坑了) 一维递推 首先是Rabin-Karp,对于一个长度为\(m\)的串\(S\) \(f(S)=\sum_{i=1}^{m} ...
- 可持久化Treap 赛前摸鱼笔记
1.基本结构 随机化工具 unsigned int SEED = 19260817; //+1s inline int Rand(){ SEED=SEED*1103515245+12345; retu ...
- [摸鱼]cdq分治 && 学习笔记
待我玩会游戏整理下思绪(分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态 ...
- 【转】让Chrome化身成为摸鱼神器,利用Chorme运行布卡漫画以及其他安卓APK应用教程
下周就是十一了,无论是学生党还是工作党,大家的大概都会有点心不在焉,为了让大家更好的心不在焉,更好的在十一前最后一周愉快的摸鱼,今天就写一个如何让Chrome(google浏览器)运行安卓APK应用的 ...
随机推荐
- spring1 注册value与ref的区别
- 封装个StringBuffer,用array join的方式拼接字符串
(function(window) { var core_ArrPro = Array.prototype; var core_slice = core_ArrPro.slice; var core_ ...
- 解题:TJOI 2015 弦论
题面 好像是个经典问题,然而我没做过 建SAM,然后经过每个节点的子串数目就可以求了,多个相同子串算一个的话就把所有siz都搞成$1$,否则就是$right$集合的大小,然后就是常见的递推 求第$k$ ...
- 数据融合(data fusion)原理与方法
数据融合(data fusion)原理与方法 数据融合(data fusion)最早被应用于军事领域. 现在数据融合的主要应用领域有:多源影像复合.机器人和智能仪器系统.战场和无人驾驶飞机.图 ...
- strut2以及路径的一些问题
Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中 struts2的关于method=“{1}"意思详解 <action name ...
- 压缩前端文件(html, css, js)
1:原因 在写前端代码时, 因为要尽可能的适合阅读会加入许多注释, 空格等, 这些在开发时是必要的, 但当你要发布时, 就需要让代码更加精简, 精简压缩的同时也混淆了代码, 安全性也加强了, 可以说是 ...
- OneProxy实现mysql读写分离
OneProxy for MySQL可以复用不同应用到后端数据库的连接,有效降低数据库的并发连接数:可以即时踢除不可用的节点,将应用请求转发到其他可用节点,保证业务服务的稳定性. 可透明地将查询语句分 ...
- mysql8 net start mysql 服务名无效
解决办法: 1.win+R打开运行窗口,输入services.msc 2.在其中查看mysql的服务名,我的是MySQL80 3.以管理员身份打开cmd,输入net start MySQL80 出现下 ...
- python中高阶函数与装饰器(3)
>>> f = lambda x: x * x>>> f<function <lambda> at 0x101c6ef28> >> ...
- JS获取当前时间并格式化"yyyy-MM-dd HH:mm:ss"
先来看下JS中的日期操作: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年 ...