首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【洛谷】P1357 花园(状压+矩阵快速幂)
】的更多相关文章
P1357 花园 状压 矩阵快速幂
题意 小L有一座环形花园,沿花园的顺时针方向,他把各个花圃编号为1~N(2<=N<=10^15).他的环形花园每天都会换一个新花样,但他的花园都不外乎一个规则,任意相邻M(2<=M<=5,M<=N)个花圃中有不超过K(1<=K<M)个C形的花圃,其余花圃均为P形的花圃. 例如,N=10,M=5,K=3.则 CCPCPPPPCC 是一种不符合规则的花圃: CCPPPPCPCP 是一种符合规则的花圃. 请帮小L求出符合规则的花园种数Mod 1000000007 由于请…
洛谷P3758/BZOJ4887 [TJOI2017] 可乐 [矩阵快速幂]
洛谷传送门,BZOJ传送门 可乐 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 299 Solved: 207 Description 加里敦星球的人们特别喜欢喝可乐.因而,他们的敌对星球研发出了一个可乐机器人,并且 放在了加里敦星球的1号城市上.这个可乐机器人有三种行为:停在原地,去下一个相邻的 城市,自爆.它每一秒都会随机触发一种行为.现在给出加里敦星球城市图,在第0秒时可 乐机器人在1号城市,问经过了t秒,可乐机器人的行为方案数是多少? …
【洛谷】P1357 花园(状压+矩阵快速幂)
题目 传送门:QWQ 分析 因为m很小,考虑把所有状态压成m位二进制数. 那么总状态数小于$ 2^5 $. 如果状态$ i $能转移到$ j $,那么扔进一个矩阵,n次方快速幂一下. 答案是对角线之和,是转移n次后回来的方案数. 代码 #include <bits/stdc++.h> typedef long long ll; ; ; using namespace std; ll tot; int sta[maxn]; struct Matrix{ ll m[maxn][maxn]; Mat…
洛谷P3390【模板】矩阵快速幂——矩阵运算入门笔记
作为一个因为极度畏惧数学 而选择成为一名OIer的蒟蒻 终于还是迎来了要面对的这一天 一般题目中矩阵运算好像只用到矩阵乘法 (或许只是蒟蒻我做的题太少) 而且矩阵的乘法也是较难理解的一部分 所以就简单讲讲矩阵乘法 如图 矩阵A*B就是用A的每一行依次乘B的每一列 具体就是A的第i行中每一个数对应相乘B的第j列每个数 每个相乘所得结果相加 最后放置于C矩阵的第i行第j号位 所以矩阵乘法中A的列数必须等于B的行数 (虽然第一次看确实有些绕,但它用起来真的妙啊~妙啊~) 上一个矩阵A*B的代码 (这里…
洛谷P3390 【模板】矩阵快速幂
给定n*n的矩阵A,求A^k 行列都是n #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; ,MOD=; typedef long long ll; inline ll read(){ ,f=; ;c=getchar();} +c-';c=getchar();} re…
洛谷 P3390 【模板】矩阵快速幂
这题的确是个模板 但也要提到有关矩乘的内容: 首先什么是矩阵? 给一个线性变换 F(x) (她可能就是个函数,定义域为向量集) 她可以把一个N维向量变成M维 那么显然x的每一维都可能影响着F(x)的每一维,于是F(x)这个线性变换就应该是N*M个在每两维间的小映射构成的. 于是我们可以把她写成M行N列的矩阵(M行N列是出于习惯) 所以矩阵是用于形象的表示线性变换的工具: 所以怎么合乎习惯的构造矩阵呢? 举例说明: 如,有一个三元组(3维向量)x{a,b,c} 定义F(x)={a+b,b+c}…
题解——洛谷P3390 【模板】矩阵快速幂(矩阵乘法)
模板题 留个档 #include <cstdio> #include <algorithm> #include <cstring> #define int long long using namespace std; ; int n,k; struct Matrix{ ; int n,m; int alpha[MAXN][MAXN]; void init2(void){ ;i<MAXN;i++) ;j<MAXN;j++) alpha[i][j]=; n=m=…
题解:洛谷P1357 花园
题解:洛谷P1357 花园 Description 小 L 有一座环形花园,沿花园的顺时针方向,他把各个花圃编号为 \(1∼n\).花园 \(1\) 和 \(n\) 是相邻的. 他的环形花园每天都会换一个新花样,但他的花园都不外乎一个规则:任意相邻 \(m\) 个花圃中都只有不超过 \(k\) 个 C 形的花圃,其余花圃均为 P 形的花圃. 例如,若 \(n=10 , m=5 , k=3\) ,则 · CCPCPPPPCC 是一种不符合规则的花圃. · CCPPPPCPCP 是一种符合规则的花圃…
洛谷 P1357 花园 解题报告
P1357 花园 题目描述 小\(L\)有一座环形花园,沿花园的顺时针方向,他把各个花圃编号为\(1~N(2<=N<=10^{15})\).他的环形花园每天都会换一个新花样,但他的花园都不外乎一个规则,任意相邻\(M(2<=M<=5,M<=N)\)个花圃中有不超过\(K(1<=K<M)\)个\(C\)形的花圃,其余花圃均为\(P\)形的花圃. 例如,\(N=10,M=5,K=3\).则 \(CCPCPPPPCC\)是一种不符合规则的花圃: \(CCPPPPCPCP…
[洛谷P1357] 花园
题目类型:状压\(DP\) -> 矩阵乘法 绝妙然而思维难度极其大的一道好题! 传送门:>Here< 题意:有一个环形花圃,可以种两种花:0或1. 要求任意相邻的\(M\)个花中1的个数不超过\(k\)个.总共有\(N\)个花.问方案数 解题思路 非常巧妙的一道题. 先看如何拿到\(80pts\) \(N \leq 10^5\),也就是说可以\(O(n)\)带若干常数.我们发现影响当前状态的决策的仅仅就是离它最近的那\(M\)个花圃.由此可以进行状压\(DP\),\(dp[i][s]\)…