刷题比赛

题目描述

给你四个数组A,B,C,D. 给出每个数组的初始值A[1] = 1, B[1] = 1, C[1] = 1, D[1] =1 , A[2] = 3, B[2] = 3, C[2] = 3, D[2] = 3;
有以下的递推公式:
(1) a[k+2]=p* a[k+1]+qa[k]+b[k+1]+c[k+1]+r k^2+t * k+1+d[k];
(2)b[k+2]=u* b[k+1]+vb[k]+a[k+1]+c[k+1]+w^k+d[k];
(3)c[k+2]=x
c[k+1]+yc[k]+a[k+1]+b[k+1]+z ^ k+k+2+d[k];
(4)d[k+2]=e
d[k+1]+f*d[k];
(以上的字母p,q,r,t,u,v,w,x,y,z,e,f都是给定的常数,并保证是正整数)
由于结果很大,输出a[k] mod k,b[n] mod k,c[n] mod k, d[n] mod k;(4<=n<=10^12)

输入格式:

第一行两个正整数N,K。(4<=N<=10^12,2<=K<=10^16)
第二行四个正整数p,q,r,t。
第三行三个正整数u,v,w。
第四行三个正整数x,y,z。
第五行两个正整数e,f.
(保证p,q,r,t,u,v,w,x,y,z,e,f都是不超过100的正整数)

输出格式:

共三行,每行一个整数。依次是这四个数组 mod K的值。

输入样例#1:

输出样例#1:

说明

矩阵乘法。

注意,中间相乘过程可能会比64位长整型的数据范围还要大。

solution

20%的做法:

按照题目给出的式子直接模拟计算即可

60%的做法:

运用矩阵快速幂,我们需要构造出一个合格的答案矩阵和一个合格的转移矩阵.
经过一番推演后可以得到一个13 * 13的转移矩阵
0 1 0 0 0 0 0 0 0 0 0 0 0 ak
q p 0 1 0 1 1 0 r t 1 0 0 ak+1
0 0 0 1 0 0 0 0 0 0 0 0 0 bk
0 1 v u 0 1 1 0 0 0 0 1 0 bk+1
0 0 0 0 0 1 0 0 0 0 0 0 0 ck
0 1 0 1 y x 1 0 0 1 2 0 1 ck+1
0 0 0 0 0 0 0 1 0 0 0 0 0 dk
0 0 0 0 0 0 f e 0 0 0 0 0 dk+1
0 0 0 0 0 0 0 0 1 2 1 0 0 k^2
0 0 0 0 0 0 0 0 0 1 1 0 0 k(初始值为1)
0 0 0 0 0 0 0 0 0 0 1 0 0 1(恒为一)
0 0 0 0 0 0 0 0 0 0 0 w 0 w^k (初始值为w)
0 0 0 0 0 0 0 0 0 0 0 0 z z^k (初始值为z)
对这两个矩阵进行n-2次快速幂即可(当然,右边的矩阵要填上一堆0,使得这个矩阵也成为13*13的规模). (只能得60分是因为其他的点乘法运算会爆longlong)
对于65%的做法,我们把60%程序中的longlong 改为unsigned long long 即可得65分

100%的做法:

100%的做法是在60%的做法上面进行改进的,因为中途运算会爆longlong,所以我们在矩阵乘法的时候不能使用单纯的乘法,应该用快速幂加法来代替乘法.
这样就可以得100%分了.

转载于:https://www.cnblogs.com/juruohx/p/7299595.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试用例设计原则

自动化测试用例设计原则&#xff1a;每一个用例 都是一个闭合的业务操作。用例之间要保持独立 &#xff0c;不要有操作上的依赖关系&#xff0c;就算有也是测试数据上的依赖。第二个用例 依赖第一个用例产生的数据。转载于:https://www.cnblogs.com/yyjiangnan/p/6149430.html

MII/MDIO接口详解

MII/MDIO接口详解 http://dpinglee.blog.163.com/blog/static/144097753201041131115262/

T24412 Cup#182-3 洞穴之旅

弱连通模板题&#xff0c;不过还是不会。。。 这道题在POJ2762有&#xff0c;这个出题人直接翻译弄过来了。。。 弱连通的定义是&#xff1a;从u能到达v或从v能到达u&#xff0c;则u和v这两个点弱连通。 显然如果是强连通分量就一定是弱连通分量啦&#xff0c;所以可以直接缩点…

PCB相关的基础知识

http://www.elecfans.com/article/89/92/2017/20170425510728.html转载于:https://www.cnblogs.com/jackn-crazy/p/7300228.html

sql server 修改表结构语法大全

1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 alter table table_name drop column column_name 3.修改字段类型 alter table table_name alter column column_name new_data_type 2.6.1. 增加字段 要增加一个字段&#xff0c;使用这条命令…

Flutter - 生成二维码与识别二维码

#生成二维码 ##首先需要在pubspec.yaml:中添加 qr_flutter: ^1.1.3 其次&#xff0c;引入代码&#xff1a; import package:qr_flutter/qr_flutter.dart; 核心代码如下&#xff1a; child: QrImage(data: "这里是需要生成二维码的数据",size: 100.0,onError: (ex) {p…

任意小数分频设计

对于任意小数分频&#xff0c;如果有PLL的话&#xff0c;直接倍频再分频即可&#xff1b;或常用的方法有双模前置小数分频和脉冲删除小数分频。前一种方法设计较为复杂&#xff0c;因此主要以第二种方式为主设计了一下。 任意小数均可以化为分数&#xff0c;例如要进行5.3分频即…

Bootstrap--圆角图片`圆形图

转载于:https://www.cnblogs.com/qiyiyifan/p/6159823.html

逻辑综合——概述与基本概念

逻辑综合系列主要说明以下问题&#xff1a; 为什么要逻辑综合逻辑综合的基本原理逻辑综合需要提供哪些文件逻辑综合过程中施加约束逻辑综合能产生那些结果 综合是前端设计的重要步骤之一&#xff0c;其过程是将行为描述的电路、RTL级的电路转换到门级&#xff0c;其目的在于&a…

Swoole 源码分析——Server模块之初始化

前言 本节主要介绍 server 模块进行初始化的代码&#xff0c;关于初始化过程中&#xff0c;各个属性的意义&#xff0c;可以参考官方文档&#xff1a; SERVER 配置选项 关于初始化过程中&#xff0c;用于监听的 socket 绑定问题&#xff0c;可以参考&#xff1a; UNP 学习笔记—…

linux下搭建git服务器

安装 Git Linux 做为服务器端系统&#xff0c;Windows 作为客户端系统&#xff0c;分别安装 Git 服务器端&#xff1a; #yum install -y git 安装完后&#xff0c;查看 Git 版本 [rootlocalhost ~]# git --version git version 1.7.1 客户端&#xff1a; 下载 Git for Windows&…

mkcramfs 命令学习

mkcramfs :创建只读文件系统 语 法 mkcramfs[必要参数][选择参数][源目录][目标文件]功 能mkcramfs 命令&#xff1a;用来创建CRAMFS只读文件系统 类似命令: fdisk cramfsck mount 执行权限: 超级用户 普通用户 命令属性: 磁盘维护 参数必要参数 -e 设置文件系…

对于Eclipse的正确用法

有时候我们刚刚修改了工程里的文件 但是启动的时候它硬是说你有东西没有声明 而那个东西又明明在那里。。 这时候我们可以认为实际与它调用的工程关系文件&#xff08;我假想的&#xff09; 不同步。。 我们可以通过clean功能来同步实际情况和工程关系文件 所以说我们每次改了之…

逻辑综合——工艺库

一、库文件的设置 运行DC时需要用到的库文件有&#xff1a;目标库&#xff08;target library&#xff09;、链接库&#xff08;link library&#xff09;、符号库&#xff08;symbol library&#xff09;、算术运算库&#xff08;synthetic library&#xff09;。 1、目标库…

weka 初练之 文本分类

0.注意weka的中文编码RunWeka.ini-----》fileEncodingutf-81.首先对分词后的 无新词发现的分词文件&#xff0c;转换成arff文件 命令java weka.core.converters.TextDirectoryLoader -dir D:\weibo\catagory\data10W\nlpirSegment\noNI > D:\weibo\catagory\data10W\nlpirSe…

[COGS 0065][NOIP 2002] 字串变换

65. [NOIP2002] 字串变换 ★★ 输入文件&#xff1a;string.in 输出文件&#xff1a;string.out 简单对比时间限制&#xff1a;1 s 内存限制&#xff1a;128 MB [问题描述] 已知有两个字串A\$, B\$及一组字串变换的规则&#xff08;至多6个规则&#xff09;: A1\$ ->…

基与datatable的分页

在进行分页操作前&#xff0c;必须知道开启服务器模式后会向服务器发送的参数的含义&#xff1a; length:告诉服务器每页显示的数据条数 start&#xff1a;第一条数据的起始位置 draw:绘制计数器&#xff0c;&#xff08;特殊&#xff1a;服务器接收到参数后&#xff0c;需要返…

linux sock_raw原始套接字编程

sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|E…