2014西安网络预选赛1009(矩阵快速幂)hdu5015

233 Matrix

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 182    Accepted Submission(s): 116


Problem Description
In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233333 ... in the same meaning. And here is the question: Suppose we have a matrix called 233 matrix. In the first line, it would be 233, 2333, 23333... (it means a0,1 = 233,a0,2 = 2333,a0,3 = 23333...) Besides, in 233 matrix, we got ai,j = ai-1,j +ai,j-1( i,j ≠ 0). Now you have known a1,0,a2,0,...,an,0, could you tell me an,m in the 233 matrix?
 

Input
There are multiple test cases. Please process till EOF.

For each case, the first line contains two postive integers n,m(n ≤ 10,m ≤ 109). The second line contains n integers, a1,0,a2,0,...,an,0(0 ≤ ai,0 < 231).
 

Output
For each case, output an,m mod 10000007.
 

Sample Input
1 1 1 2 2 0 0 3 7 23 47 16
 

Sample Output
234 2799 72937

题意:RT

思路:矩阵快速幂

            可以构造一个(n+2)*(n+2)

            假设n=3,输入的序列为23 47 16

            构造出的矩阵M(5*5)如下:                 再构造出一个(n+2)*1的矩阵A如下:

            10 0 0 0 1                                                    233
              1 1 0 0 0                                                       23
              1 1 1 0 0                                                       47
              1 1 1 1 0                                                       16
              0 0 0 0 1                                                         3


             令矩阵B=(M^m)*A

             那么答案为B的第n项

#include 
#include 
#include 
#include 
using namespace std;
#define maxn 15
#define MOD 10000007

typedef __int64 ll;
int M[maxn][maxn];
int ans[maxn][maxn];
int A[maxn][1];
int B[maxn][1];
int a[maxn];

int add(int a,int b)
{
    a+=b;
    if(a>=MOD)a-=MOD;
    return a;
}

void init(int n)
{
    memset(M,0,sizeof(M));
    for(int i=0;i
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 在当代Web开发领域中,前后端分离的架构模式已广泛普及,这种模式有助于提升开发效能,清晰界定工作职责,并支持前后端独立地进行开发与部署工作。当前项目借助Spring Boot框架构建了后端服务接口,并搭配Vue.js技术完成前端界面呈现,同时运用axios工具应对跨域通信挑战,从而形成一个完整的前后端分离实践范例。 1. **Spring Boot**: Spring Boot可视为Spring框架的一个精简版本,其旨在简化Spring应用的初始构建及开发流程。在Spring Boot环境下,开发者能够迅速构建出具备生产环境要求水准的Spring应用程序。该框架整合了众多常用第三方库的配置选项,例如数据库连接管理、模板引擎应用、安全机制设定等,显著降低了标准配置的复杂程度。 2. **后端接口开发**: 在`springBoot实现后端接口.zip`文件中,主要包含了基于Spring Boot的后端服务功能实现。通常情况下,我们会设计RESTful风格的API,通过HTTP协议的CRUD操作(即创建、读取、更新、删除)来响应前端发起的请求。这些接口多采用Spring MVC的注解方式,如`@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping`等来定义,并借助Spring Data JPA或MyBatis等数据持久化框架与数据库进行数据交互。 3. **Vue.js**: Vue.js是一款轻量级的前端JavaScript框架,专注于用户界面的开发。它具备响应式的数据绑定机制和组件化的架构设计,使得开发者能够高...
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 直方图双峰法是一种以图像直方图为基础的阈值分割技术,其核心原理在于借助图像直方图中存在的两个显著峰值(双峰)来确定分割阈值,进而将图像有效地区分为前景与背景两个区域。该方法在处理二值化图像时展现出卓越的性能,特别是在图像的亮度分布呈现明显分离特征的场景下。为了深入掌握该方法,首先需要明确图像直方图的概念。图像直方图是一种用于表征图像像素强度分布特性的统计图表,它通过将图像中所有像素的灰度值按照其出现频率进行绘制,其中横轴表示灰度级别,纵轴则代表像素数量或频率。当图像的背景与前景具有显著的亮度对比时,直方图上通常能够观察到两个清晰的峰值,这两个峰值分别对应着背景和前景像素的集中区域。 在直方图双峰法的实践过程中,关键环节在于如何准确识别并选取这两个峰值作为阈值。通常情况下,我们会倾向于选择距离较远且峰值较高的两个峰,因为这样的配置往往意味着它们分别代表了图像中的两种主要类别。一种普遍采用的技术是通过计算相邻灰度级之间的梯度,从而定位梯度最大值的位置,该位置可以被视作两个峰值之间的谷底,随后取这两个峰值的平均值或中点作为最终的阈值。 在提供的代码实例中,首先加载了一个名为coins.png的图像,并利用`imshow`函数展示了原始图像。紧接着,绘制了该图像的直方图,参数`axis([0 255 0 4000])`用于设定直方图的显示范围,确保能够清晰地观察到图像的亮度分布情况。随后,选择了一个具体的阈值`th=97`,并通过`im2bw`函数将图像转换为二值图像,同时展示了分割后的结果。 阈值`th`的选取具有决定性作用,因为它直接关联到分割的最终效果。若阈值选取不当,可能会导...
内容概要:本文研究了基于一致性理论的三机并联独立微网二次控制模型,并通过Simulink进行仿真实现。研究聚焦于利用一致性算法实现微网中多个分布式发电单元之间的协同控制,有效解决了频率与电压偏差问题,提升了系统的稳定性与电能质量。文中构建了包含三台并联逆变器的独立微网系统模型,设计并实现了基于一致性协议的二次控制策略,能够实现有功功率与无功功率的精确分配,以及电压和频率的动态恢复控制。仿真结果充分验证了该控制策略在动态响应速度、稳态控制精度及抗干扰能力方面的优越性能。; 适合人群:具备电力系统、自动控制或新能源等相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网、分布式能源系统控制、多智能体协同控制等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 深入掌握微网中多逆变器并联运行的协同控制原理与实现方法;② 学习并将一致性理论应用于电力系统分布式控制的实际场景中;③ 构建并调试三机并联微网的Simulink仿真模型,验证所设计二次控制算法的有效性与鲁棒性;④ 为后续开展多智能体系统在能源互联网、智能配电网等领域的协同控制研究提供理论依据与技术参考。; 阅读建议:建议结合提供的Simulink模型文件进行同步操作与仿真调试,深入理解控制器的设计思路、参数整定方法及一致性协议的信息交互机制,重点关注其对系统动态性能的影响,可进一步拓展至更多节点规模或复杂通信拓扑结构下的控制研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值