B. RGB plants
B. RGB plants
2.0 s
64 MB
standard input
standard output
Farmer John has recently bought three flowers in order to plant them around his house. The flowers were of three different colors red, green and blue.
As we all know, the garden that surrounds farmer John's house is a magical garden. That means that if you plant a number of flowers in it on some day, then the number of flowers will increase in the next day.
The garden increases the number of flowers depending on the color of the flowers, that is, if you plant a red flower in a day, then it will turn into 6 flowers in the next day (1 red flower, 2 green flowers, and 3 blue flowers). If you plant a green flower in a day, then it will turn into 15flowers in the next day (4 red flowers, 5 green flowers, and 6 blue flowers). If you plant a blue flower in a day, then it will turn into 24flowers in the next day (7 red flowers, 8 green flowers, and 9 blue flowers).
As we have mentioned above, farmer John has three flowers (1 red flower, 1 green flower, and 1 blue flower), and he will plant them in his magical garden around his house, so the number of the flowers will increase over time. Farmer John knows that if he plants his three flowers in his magical garden, then the number of flowers will increase from day to day, so he wants to know the total number of flowers in his magical garden in the nth day.
The first line of the input is the number of test cases T (1 ≤ T ≤ 103). Each test case consists of a single line containing a single integer n(1 ≤ n ≤ 109).
For each test case, print a single line containing the total number of flowers in the magical garden in the nth day modulo 1000000007.
4
1
2
20
1000000
3
45
238775645
464884429
题意:一红花一天产生1朵红花,2朵绿花,3朵蓝花;
一朵绿花一天产生4朵红花,5朵绿花,6朵蓝花;
一朵蓝花一天产生7朵红花,8朵绿花,9朵蓝花;
一开始红花、绿花、蓝花各一朵,问n天之后一共有多少多花,结果对1000000007取模
题解:一开始想递归................所以是矩阵快速幂
#include <iostream>
#include<string.h>
#include<stdio.h>
#define ll long long
using namespace std;
const ll mod = ;
struct mat//定义矩阵结构体
{
ll m[][];
mat()
{
memset(m, , sizeof(m));
}
};
mat mul(mat &A, mat &B)
{
mat C;
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
for (int k = ; k < ; k++)
{
C.m[i][j] = (C.m[i][j] + A.m[i][k] * B.m[k][j]) % mod;
}
}
}
return C;
}
mat pow(mat A, ll n)
{
mat B;
for(int i=;i<;i++)//初始化方阵
B.m[i][i]=; //初始被乘矩阵的初值
B.m[][]=;
B.m[][]=;
B.m[][]=; while (n)
{
if (n & )
B = mul(A, B);//注意这里,矩阵的左乘和右乘是不一样的,对应的系数矩阵也不一样
A = mul(A, A);
n >>= ;
}
return B;
}
int main()
{
ll n,t;
cin>>t;
while (t--)
{
cin>>n;
mat A;//矩阵A是系数矩阵(转移矩阵)
A.m[][]=;
A.m[][]=;
A.m[][]=;
A.m[][]=;
A.m[][]=;
A.m[][]=;
A.m[][]=;
A.m[][]=;
A.m[][]=; if(n==)
{
printf("3\n");
}
// else if(n==2)
// {
// printf("45\n");
// }
else
{
mat B = pow(A, n-);
ll ans=B.m[][]+B.m[][]+B.m[][];
printf("%lld\n",ans%mod);
}
}
return ;
}
B. RGB plants的更多相关文章
- html5中canvas的使用 获取鼠标点击页面上某点的RGB
1.html5中的canvas在IE9中可以跑起来.在IE8则跑不起来,这时候就需要一些东西了. 我推荐这种方法,这样显得代码不乱. <!--[if lt IE9]> <script ...
- 【视频处理】YUV与RGB格式转换
YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与YUV的变换公式如下: YUV(25 ...
- Applying vector median filter on RGB image based on matlab
前言: 最近想看看矢量中值滤波(Vector median filter, VMF)在GRB图像上的滤波效果,意外的是找了一大圈却发现网上没有现成的code,所以通过matab亲自实现了一个,需要学习 ...
- MATLAB读取一张RGB图片转成YUV格式
1.读入照片 控制输出的标志定义 clc;close all;clear YES = 1; NO = 0; %YES表示输出该文件,请用户配置 yuv444_out_txt = 1; yuv444_o ...
- yuv420转rgb 及 rgb转bmp保存
/// <summary> /// 将一桢 YUV 格式的图像转换为一桢 RGB 格式图像. /// </summary> /// <param name="y ...
- Swift - UIColor16进制编码与RGB格式互相转换
Swift UIColor 16进制编码转换RGB : 由于UI出图的时候,通常给的是16进制的编码颜色,我们在开发的时候需要将它转换为RGB格式,现在给出两种代码片段. 一.对UIColor进行扩展 ...
- YUV RGB播放器 打开, 显示RGB数据
可以查看RGB像素数据 可以通过菜单栏打开像素数据文件,也可以通过拖拽方式打开文件.如果文件名称中包含了“{w}x{h}”这样的字符串(例如“test_320x420.yuv”),系统会自动解析为该像 ...
- RGB转YCbCr
从RGB转换成YCbCr // Purpose: // Save RGB->YCC colorspace conversion for reuse, only co ...
- RGB颜色表
RGB(255,23,140)是光的三原色,也即红绿蓝Red.Green.Blue,它们的最大值是255,相当于100%. 白色:rgb(255,255,255) 黑色:rgb(0,0,0) 红色:r ...
随机推荐
- java代理模式的实现方法
package com.sample.sping_ireport.cglib; import java.lang.reflect.InvocationHandler; import java.lang ...
- 帆软FineReport报表使用小技巧
1.IF函数写法: =IF(E3=0 && F3=0 && G3=0,1,0)
- 从分支git clone
git clone -b <branch> <remote_repo> 具体用法:git clone -b 分支名 https://www.xx.com/app.git 以上就 ...
- Webshell免杀研究
前言 不想当将军的士兵不是好士兵,不想getshell的Hacker不是好Hacker~有时候我们在做攻防对抗时经常会碰到可以上传webshell的地方,但是经常会被安全狗.D盾.护卫神.云锁等安全软 ...
- vue中配置sass(包含vue-cli 3)
目录 vue vue cli 3 老版本的脚手架搭建的项目 版本 安装 不用修改任何配置 vue文件中使用 vue 更新时间: 2018-09-21 vue cli 3 选择 Manually sel ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:表单控件大小
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- kafka在zookeeper默认使用/为根目录,将/更换为/kafka
需求:kafka在zookeeper默认使用/为根目录,将/更换为/kafka 步骤:1.进入kafka的根目录: [root@node01 kafka_2.11-1.0.0]# cd /export ...
- 「Luogu P2568 GCD」
看到这是一道紫题还是和gcd有关的才点进来(毕竟数论只会gcd). 前置芝士 质数**(又称素数):因数只有1和本身,但是很特殊的1不是一个质数. gcd**:欧几里得算法,又称辗转相除法,可以在约为 ...
- Linux centosVMware su命令、sudo命令、限制root远程登录
一.su命令 Linux系统中有些事情只有root用户才能做,普通用户不能做,这时候就需要临时切换到root身份了. [root@davery ~]# whoamiroot [root@davery ...
- [经验] 项目中 session 过期后弹出的登录窗口无法登录怎么办
背景: 当session过期后, 按照 系统的设计, 会自动跳转到登录页面, 重新进行登录操作 问题: 由于进入主页后, 其他页面都是嵌入式的模板页, 所以这时的登录页面也是内嵌在index模板下的 ...