BZOJ 4204 && BZOJ 2510 循环矩阵
n^3logn非常显然。所以要用一种因为这个矩阵是一个循环矩阵,所以只要知道第一行就可以知道所有行了。 C[i][j]=C[i-1][j-1];
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int Maxn=;
int n,m,k;
struct Matrix{double a[Maxn];}Ori,Bas,Ans;
inline Matrix operator * (Matrix A,Matrix B)
{
Matrix C; memset(C.a,,sizeof(C.a));
for (int i=;i<=n;i++)
for (int j=;j<=n;j++) C.a[i]+=A.a[j]*B.a[(i-j+n+)%n==?n:(i-j+n+)%n];
return C;
}
inline Matrix Pow(Matrix Base,int Exp)
{
Matrix Ret; memset(Ret.a,,sizeof(Ret.a)); Ret.a[]=;
while (Exp)
{
if (Exp&) Ret=Ret*Base;
Base=Base*Base; Exp>>=;
}
return Ret;
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for (int i=;i<=n;i++) scanf("%lf",&Ori.a[i]);
Bas.a[]=(double)(m-)/(double)m;
Bas.a[]=/(double)m;
Bas=Pow(Bas,k);
Ans=Bas*Ori;
for (int i=;i<=n;i++) printf("%.3lf\n",Ans.a[i]);
return ;
}
C++
C[1][i]=A[1][k]*B[k][i]; 就可以转换为 C.a[1][i]=A[1][k]*B[1][i-k+1];
类似题目:POJ 3150 HDU 2276 HDU 4576
BZOJ 4204 && BZOJ 2510 循环矩阵的更多相关文章
- bzoj 2510: 弱题 循环矩阵
2510: 弱题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 124 Solved: 61[Submit][Status][Discuss] De ...
- 【BZOJ 2510】 2510: 弱题 (矩阵乘法、循环矩阵的矩阵乘法)
2510: 弱题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 374 Solved: 196 Description 有M个球,一开始每个球均有一 ...
- bzoj 2510: 弱题 概率期望dp+循环矩阵
题目: Description 有M个球,一开始每个球均有一个初始标号,标号范围为1-N且为整数,标号为i的球有ai个,并保证Σai = M. 每次操作等概率取出一个球(即取出每个球的概率均为1/M) ...
- 【循环矩阵乘优化DP】BZOJ 2510 弱题
题目大意 有 \(M\) 个球,一开始每个球均有一个初始标号,标号范围为 \(1\) - \(N\) 且为整数,标号为 \(i\) 的球有 \(a_i\) 个,并保证 \(\sum a_i = M\) ...
- BZOJ 4818 [Sdoi2017]序列计数 ——矩阵乘法
发现转移矩阵是一个循环矩阵. 然后循环矩阵乘以循环矩阵还是循环矩阵. 据说还有FFT并且更优的做法. 之后再看吧 #include <map> #include <cmath> ...
- LA 3704 (矩阵快速幂 循环矩阵) Cellular Automaton
将这n个格子看做一个向量,每次操作都是一次线性组合,即vn+1 = Avn,所求答案为Akv0 A是一个n*n的矩阵,比如当n=5,d=1的时候: 不难发现,A是个循环矩阵,也就是将某一行所有元素统一 ...
- UVA 1386 - Cellular Automaton(循环矩阵)
UVA 1386 - Cellular Automaton option=com_onlinejudge&Itemid=8&page=show_problem&category ...
- hihocoder 1388 fft循环矩阵
#1388 : Periodic Signal 时间限制:5000ms 单点时限:5000ms 内存限制:256MB 描述 Profess X is an expert in signal proce ...
- UVaLive 3704 Cellular Automaton (循环矩阵 + 矩阵快速幂)
题意:一个细胞自动机包含 n 个格子,每个格子取值是 0 ~ m-1,给定距离,则每次操作后每个格子的值将变成到它距离不超过 d 的所有格子在操作之前的值之和取模 m 后的值,其中 i 和 j 的距离 ...
随机推荐
- gulp详细入门教程-gulp demo download
简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码 ...
- sass1:
less在处理CSS动画时,非常恶心,决定转向sass了.sass诞生得比less早,只是因为它是ruby写的,因此受众面够少.但我们不需要自己下编译器或使用命令行,我们可以koala这神器 首先几个 ...
- ViewBag是如何实现的
ExpandoObject 在 MVC 3 的时候 Controller 可以通过 ViewBag 将数据传送到 View.如下就是通过 ViewBag 设置页面标题: public ActionRe ...
- 以软件周期C开发周期说明不同测试的使用情况
我们所使用的测试方法有以下几种 功能测试 单元测试(使用场景:在编码阶段,每完成一段相对完整的代码块时,单元测试几乎贯穿整个编码过程) 黑盒测试(使用场景:在编码阶段,没完成一各相对独立的模块时,例如 ...
- The trip(Uva 11100)
题目大意: 给出n个数,要求将其分成最少的递增序列,保证序列最少的同时要使得序列长度的最大值最小. n<=10000 题解: 1.我是直接看着<训练指南>里的中文题面的,lrj似乎 ...
- 悟javascript ---------------20160705
1. 首先观察页面需求 如果js要书写多个,那么一定用到循环 或者加上if判断 或者用到switch switch (表达式){ case 值1 : 语句1 break; case 值2 : 语句 ...
- MicroERP软件更新记录1.1
MicroERP软件更新记录 最新版本:1.1 1.增加固定资产检修.租赁.转移记录 2.增加产品质检单 3.增加零售单(收银台) 4.支持各种主流关系型数据库 5.完善了数据字典,如加入原材料材质. ...
- Uart、SPI和I2C的区别
串口通信:UART.SPI.I2C区别[引用] 1.UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少.数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快.在多机通信上面 ...
- SQL IF ELSE
if (条件) begin (执行模块) endelse if (条件) begin (执行模块) endelse begin ...
- ORA-06552: PL/SQL: Compilation unit analysis terminated ORA-06553: PLS-553: character set name is not recognized
首先,确认字符集是否修改的不彻底.SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,DECODE(TYPE#, 1, DECODE( ...