【bzoj4887】:[Tjoi2017]可乐 矩阵乘法,快速幂
题目大意:一张无相连通图(n<=30),从1号点开始走,每秒可以走到相邻的点也可以自爆,求第t秒(t<=1e6)后所有的方案数是多少对2017取模
恩。。就是一个矩阵快速幂。。矩阵就是原图的邻接矩阵。。然后f[i][i]也是1。。
但是这是不会自爆的情况下的矩阵,算上自爆的话要把每次转移的结果求和。。蒟蒻想了半天。。
然后发现其实只要再加一行一列,然后f[n+1][i]=1,就可以了。。
意会一下好了。。矩阵什么的感觉讲不清楚啊。。
/* http://www.cnblogs.com/karl07/ */
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std; struct MAT{
int m[][],x,y,sum;
MAT () {for (int i=;i<;i++) for (int j=;j<;j++) m[i][j]=; sum=x=y=;}
}a,b;
int n,m,t;
int mp[][]; MAT operator *(const MAT &a,const MAT &b){
MAT c;
c.x=b.x;c.y=a.y;
for (int i=;i<=c.x;i++){
for (int j=;j<=c.y;j++){
c.m[i][j]=;
for (int k=;k<=a.x;k++){
c.m[i][j]+=a.m[k][j]*b.m[i][k]%;
c.m[i][j]%=;
}
c.sum+=c.m[i][j];
c.sum%=;
}
}
return c;
} int main(){
scanf("%d%d",&n,&m);
a.x=n+,a.y=,a.m[][]=;
b.x=b.y=n+;
for (int i=;i<=m;i++){
int p,q;
scanf("%d%d",&p,&q);
b.m[p][q]++;
b.m[q][p]++;
}
for (int i=;i<=n+;i++){
b.m[i][i]=;
b.m[n+][i]=;
}
scanf("%d",&t);
while (t){
if (t&) a=a*b;
b=b*b;
t=(t>>);
}
printf("%d\n",a.sum);
return ;
}
啊。。终于不是游记了。。
【bzoj4887】:[Tjoi2017]可乐 矩阵乘法,快速幂的更多相关文章
- BZOJ4887:[TJOI2017]可乐(矩阵乘法)
Description 加里敦星球的人们特别喜欢喝可乐.因而,他们的敌对星球研发出了一个可乐机器人,并且 放在了加里敦星球的1号城市上.这个可乐机器人有三种行为:停在原地,去下一个相邻的 城市,自爆. ...
- Qbxt 模拟赛 Day4 T2 gcd(矩阵乘法快速幂)
/* 矩阵乘法+快速幂. 一开始迷之题意.. 这个gcd有个规律. a b b c=a*x+b(x为常数). 然后要使b+c最小的话. 那x就等于1咯. 那么问题转化为求 a b b a+b 就是斐波 ...
- 洛谷 P4910 帕秋莉的手环 矩阵乘法+快速幂详解
矩阵快速幂解法: 这是一个类似斐波那契数列的矩乘快速幂,所以推荐大家先做一下下列题目:(会了,差不多就是多倍经验题了) 注:如果你不会矩阵乘法,可以了解一下P3390的题解 P1939 [模板]矩阵加 ...
- 洛谷P3758/BZOJ4887 [TJOI2017] 可乐 [矩阵快速幂]
洛谷传送门,BZOJ传送门 可乐 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 299 Solved: 207 Description 加里敦星球的人 ...
- BZOJ4887: [Tjoi2017]可乐 矩阵快速幂
Description 加里敦星球的人们特别喜欢喝可乐.因而,他们的敌对星球研发出了一个可乐机器人,并且 放在了加里敦星球的1号城市上.这个可乐机器人有三种行为:停在原地,去下一个相邻的 城市,自爆. ...
- 矩阵乘法快速幂 codevs 1732 Fibonacci数列 2
1732 Fibonacci数列 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 在“ ...
- ACM学习历程—HDU5667 Sequence(数论 && 矩阵乘法 && 快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=5667 这题的关键是处理指数,因为最后结果是a^t这种的,主要是如何计算t. 发现t是一个递推式,t(n) = c ...
- codevs1281 矩阵乘法 快速幂 !!!手写乘法取模!!! 练习struct的构造函数和成员函数
对于这道题目以及我的快速幂以及我的一节半晚自习我表示无力吐槽,, 首先矩阵乘法和快速幂没必要太多说吧,,嗯没必要,,我相信没必要,,实在做不出来写两个矩阵手推一下也就能理解矩阵的顺序了,要格外注意一些 ...
- [vijos1725&bzoj2875]随机数生成器<矩阵乘法&快速幂&快速乘>
题目链接:https://vijos.org/p/1725 http://www.lydsy.com/JudgeOnline/problem.php?id=2875 这题是前几年的noi的题,时间比较 ...
随机推荐
- java tomcat报错: Starting Tomcat v7.0 Server at localhost' has encountered a problem问题
运行web项目的时候出现下面错误: 出现这个问题的原因是 这个tomcat在其他项目中正在运行 关掉即可.
- 【LA4043 训练指南】蚂蚁 【二分图最佳完美匹配,费用流】
题意 给出n个白点和n个黑点的坐标,要求用n条不相交的线段把他们连接起来,其中每条线段恰好连接一个白点和一个黑点,每个点恰好连接一条线段. 分析 结点分黑白,很容易想到二分图.其中每个白点对应一个X结 ...
- flume 转
http://blog.csdn.net/xiao_jun_0820/article/details/38111305
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
在上一篇文章中,提到的Nginx的Memcached模块应用场景,主要是作为文件缓存.然后就发现了一个问题,当以字节数组方式缓存较大的文件时,缓存数据会被压缩,从而在读取的时候出现问题. (本文欢迎转 ...
- faster-rcnn目录介绍
data 用来存放pretrained模型,比如imagenet上的,以及读取文件的cache缓存 experiments 存放配置文件以及运行的log文件,另外这个目录下有scripts可以用end ...
- SUSE Linux 多路径软件+LVM+裸设备的配置
1.先要查出光纤卡的WWN号,SUSE 10下光纤卡的WWD在/sys/class/fc_host/host5/port_name文件中,有两块卡就会有两个host*的目录 接好光纤后可以在dev下可 ...
- T-sql GroupBy语句常见问题处理
1.问题描述 现在有一张course表(含课程编号和名称)和一张sc表(含学生学号,选修课程的编号以及考试成绩),如下:现在想要查询所有课程编号.对应的课程名称以及选修该课程的所有学生的平均成绩.一开 ...
- transition与animation的区别
transition需要事件触发,animation可以直接自动触发,而且功能上更为强大,包括可以设置不同时间段的动画规则,还有状态的控制,事件等等.
- [GO]非结构体匿名字段
package main import ( "fmt" ) type mystr string //给一个类型重命名 type Person struct { name strin ...
- (转)unordered_map与map的对比(C++11新特性)
unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value.不同的是unordered_map不会根据key的大小进行排序, 存储时是根据key的ha ...