Problem I
Priority Queues are data structures which are known to most
computer scientists. The Queue occurs often in our daily life.
There are many people lined up at the lunch time.
I" title="Problem I">Now we define that ‘f’ is short
for female and ‘m’ is short for male. If the queue’s length is L,
then there are 2L numbers of
queues. For example, if L = 2, then they are ff, mm, fm, mf . If
there exists a subqueue as fmf or fff, we call it O-queue else it
is a E-queue.
Your task is to calculate the number of E-queues mod M with length
L by writing a program.
L (0 <= L <= 10 6) and
M.
M(1 <= M <= 30) where K is the number of E-queues with length
L.
#include
#include
using namespace std;
int n,mod;
struct Matrix{
int
arr[4][4];
};
Matrix unit,init;
//矩阵相乘的函数
Matrix Mul(Matrix a,Matrix b){
Matrix
c;
for(int
i=0;i<4;i++)
for(int j=0;j<4;j++){
c.arr[i][j]=0;
for(int k=0;k<4;k++)
c.arr[i][j]=(c.arr[i][j]+a.arr[i][k]*b.arr[k][j]%mod)%mod;
//cout<<c.arr[i][j]<<endl;
c.arr[i][j]%=mod;
}
return
c;
}
//进行F[n]=F[n-1]+F[n-3]+F[n-4]
Matrix Pow(Matrix a,Matrix b,int k){
while(k){
if(k&1){
b=Mul(b,a);
}
a=Mul(a,a);
//cout<<k<<endl;
k>>=1;//k/=2但是前者快点
}
return
b;
}
//初始化
void Init(){
for(int
i=0;i<4;i++)
for(int j=0;j<4;j++){
init.arr[i][j]=0;
unit.arr[i][j]=0;
}
//递推的前四项
unit.arr[0][0]=9,
unit.arr[0][1]=6,
unit.arr[0][2]=4,
unit.arr[0][3]=2;
//设置递推关系的矩阵
init.arr[0][0]=1,
init.arr[0][1]=1,
init.arr[1][2]=1,
init.arr[2][0]=1,
init.arr[2][3]=1,
init.arr[3][0]=1;
}
int main(){
//freopen("in.txt","r",stdin);
Init();
while(~scanf("%d%d",&n,&mod)){
if(n<=4){
if(n==0)
printf("0");
else if(n==1)
printf("%d\n",2%mod);
else if(n==2)
printf("%d\n",4%mod);
else if(n==3)
printf("%d\n",6%mod);
else if(n==4)
printf("%d\n",9%mod);
continue;
}
Matrix res=Pow(init,unit,n-4);
printf("%d\n",res.arr[0][0]%mod);
}
return
0;
}
Problem I的更多相关文章
- 1199 Problem B: 大小关系
求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...
- No-args constructor for class X does not exist. Register an InstanceCreator with Gson for this type to fix this problem.
Gson解析JSON字符串时出现了下面的错误: No-args constructor for class X does not exist. Register an InstanceCreator ...
- C - NP-Hard Problem(二分图判定-染色法)
C - NP-Hard Problem Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:262144 ...
- Time Consume Problem
I joined the NodeJS online Course three weeks ago, but now I'm late about 2 weeks. I pay the codesch ...
- Programming Contest Problem Types
Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...
- hdu1032 Train Problem II (卡特兰数)
题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能. (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ...
- [LeetCode] Water and Jug Problem 水罐问题
You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...
- [LeetCode] The Skyline Problem 天际线问题
A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...
- PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案
$s = curl_init(); curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $queryStr ...
随机推荐
- OC——关于KVO
我们知道在WPF.Silverlight中都有一种双向绑定机制,如果数据模型修改了之后会立即反映到UI视图上,类似的还有如今比较流行的基于MVVM设计模式的前端框架,例如Knockout.js.其实在 ...
- Bootstrap对齐方式
<p class="text-left">我居左</p> <p class="text-center">我居中</p& ...
- Opengl4.5 中文手册—C
索引 A B C D E F G H I J K L M N O P Q ...
- hibernate学习手记(1)
1. java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more ...
- (一) .net core 2.0 初体验
1..net core 2.0环境 .net core 下载地址:https://www.microsoft.com/net/core#windowscmd 问题一:提示[Failed to load ...
- Python文件读写模式
r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在.可读,可写,可追加. w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件. w+ 打 ...
- MyEclipse的JQuery.min.js报错红叉解决办法
MyEclipse的JQuery.min.js报错红叉解决办法 1.选中报错的jquery文件"jquery-1.2.6.min.js".2.右键选择 MyEclipse--> ...
- Centos7虚拟机桥接模式
主机ping不通虚拟机centos7系统的ip大多有以下原因: 1.主机与centos7ip段对应 (关键是网关.dns服务器要一一对应,具体操作见后文) 2.对应后仍然不通的,可关闭主机与cenos ...
- FPGA在其他领域的应用(三)
广播领域: 专业的A/V(音频/视频),和演播室行业正在经历着激动人心的变化,例如,UHD/8K (超高清)视频.多平台内容交付.IP网络传输和云计算.2016里约奥运会使用4K分辨率视频播放,而日本 ...
- 将本地代码上传到github
准备工作上传本地代码到github 准备工作 在github上创建自己的Repository. 安装git,centos的git安装教程. 上传本地代码到github git init git add ...