Queuing
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3141 Accepted Submission(s): 1431
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.
4 7
4 8
2
1
//矩阵快速幂解递推式:f(n)=f(n-1)+f(n-2)+f(n-3)
#include<cstdio>
#include<cstring>
using namespace std;
struct node{
int mat[4][4];
};
int L,M;
const int n=4;
node mat_multi(node a,node b)
{
node c;
int i,j,k;
memset(c.mat,0,sizeof(c.mat));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
{
c.mat[i][j]+=a.mat[i][k]*b.mat[k][j];
c.mat[i][j]%=M;
}
return c;
}
node pow_mod(node a,int t)
{
node c;
int i;
memset(c.mat,0,sizeof(c.mat));
for(i=0;i<n;i++)
c.mat[i][i]=1;
for(;t>0;t>>=1)
{
if(t&1) c=mat_multi(a,c);
a=mat_multi(a,a);
}
return c;
}
int main()
{
int i,t;
int b[4]={9,6,4,2};
node c;
while(~scanf("%d%d",&L,&M))
{
c.mat[0][0]=1;
c.mat[0][1]=0;
c.mat[0][2]=1;
c.mat[0][3]=1; c.mat[1][0]=1;
c.mat[1][1]=0;
c.mat[1][2]=0;
c.mat[1][3]=0; c.mat[2][0]=0;
c.mat[2][1]=1;
c.mat[2][2]=0;
c.mat[2][3]=0; c.mat[3][0]=0;
c.mat[3][1]=0;
c.mat[3][2]=1;
c.mat[3][3]=0;
int ans=0;
if(L==0) ans=0;
else if(L==1) ans=2;
else if(L==2) ans=4;
else if(L==3) ans=6;
else if(L==4) ans=9;
else{
t=L-4;
c=pow_mod(c,t); for(i=0;i<4;i++)//构造矩阵的(L-4)次幂后 再乘以前4项就是结果
ans+=c.mat[0][i]*b[i];
}
printf("%d\n",ans%M);
}
}
公式是从网上找的。。。。
Queuing的更多相关文章
- hdu---(2604)Queuing(矩阵快速幂)
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 【递推+矩阵快速幂】【HDU2604】【Queuing】
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- Message Queuing(MSMQ)
一.前言 MicroSoft Message Queuing(微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任 ...
- Queuing(以前写的没整理)
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 排队时延(Queuing delay)
网络时延的构成 Network delay including four parts: Processing delay - time routers take to process the pack ...
- HTB Linux queuing discipline manual - user guide笔记
1. Introduction HTB is meant as a more understandable, intuitive and faster replacement for the CBQ ...
- HDU 2604 Queuing(矩阵快速幂)
题目链接:Queuing 题意:有一支$2^L$长度的队伍,队伍中有female和male,求$2^L$长度的队伍中除 fmf 和 fff 的队列有多少. 题解:先推导递推式:$f[i]=f[i-1] ...
- HDU 2604 Queuing(递推+矩阵)
Queuing [题目链接]Queuing [题目类型]递推+矩阵 &题解: 这题想是早就想出来了,就坑在初始化那块,只把要用的初始化了没有把其他的赋值为0,调了3,4个小时 = = 本题是可 ...
- HDU - 2604 Queuing(递推式+矩阵快速幂)
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 2604 Queuing 矩阵高速幂
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
随机推荐
- 繁华模拟赛 ljw搭积木
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- BC.36.Gunner(hash)
Gunner Accepts: 391 Submissions: 1397 Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536 ...
- Unity3D脚印6——模型动画
原地址:http://www.cnblogs.com/ybgame/archive/2013/02/21/2920009.html 如何导入一个模型,导入的模型在unity3d的project面板中是 ...
- ubuntu同步系统时间命令
*设置时区的命令 sudo tzselect 然后一步步选择就行 *同步时间的命令 sudo ntpdate ntp.ubuntu.com
- [Educational Codeforces Round 16]B. Optimal Point on a Line
[Educational Codeforces Round 16]B. Optimal Point on a Line 试题描述 You are given n points on a line wi ...
- 夏令时 DST (Daylight Saving Time) java中的夏令时【转】
1916年,德国首先实行夏令时,英国因为怕德国会从中得到更大的效益,因此紧跟着也采取了夏令时 1986年至1991年,中华人民共和国在全国范围实行了六年夏令时 サマータイム 夏時間(日本现在没有实行夏 ...
- Java for LeetCode 051 N-Queens
Given an integer n, return all distinct solutions to the n-queens puzzle. Each solution contains a d ...
- codeforces 489C.Given Length and Sum of Digits... 解题报告
题目链接:http://codeforces.com/problemset/problem/489/C 题目意思:给出 m 和 s,需要构造最大和最小的数.满足长度都为 m,每一位的数字之和等于 s. ...
- ionic添加admob广告教程
1.在你的ionic项目中使用如下命令添加admob插件: cordova plugin add cordova-plugin-admobpro 2.添加完成后,在$ionicPlatform.rea ...
- 获取4G以上的文件大小
1.DWORD dwFileSizeHigh; // 得到文件大小的高位 __int64 qwFileSize = GetFileSize(m_hSrcBigFile, &dwFileSi ...