Problem Description

A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。

Input

数据的第一行是一个T,表示有T组数据。
每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。

Output

对应每组数据,输出Tr(A^k)%9973。

Sample Input

2

2 2

1 0

0 1

3
99999999

1 2 3

4 5 6

7 8 9

Sample Output

2

2686

Author

xhd

Source

HDU
2007-1 Programming Contest

题解:快速幂+矩阵乘法。注意主对角线是指i=j的那一部分。
#include<cstdio>
#include<iostream>
#define M 9973
using namespace std;
int t,n,k;
long long a[][],ans[][],sum,d[][],b[][];
void xx()
{
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
d[i][j]=;
ans[i][j]=;
}
for (int i=;i<=n;i++)
d[i][i]=;
sum=;
}
void ksm()
{
while (k>)
{
if (k%)
{
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int q=;q<=n;q++)
ans[i][j]=(ans[i][j]+a[i][q]*d[q][j]%M)%M;
}
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
b[i][j]=a[i][j];
a[i][j]=;
if (k%&&k/)
{
d[i][j]=ans[i][j];
ans[i][j]=;
}
}
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int q=;q<=n;q++)
a[i][j]=(b[i][q]*b[q][j]%M+a[i][j])%M;
k/=;
}
}
int main()
{
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&n,&k);
xx();
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
scanf("%lld",&a[i][j]);
ksm();
for (int i=;i<=n;i++)
sum=(sum+ans[i][i])%M;
cout<<sum<<endl;
}
return ;
}

Recommend

linle

Tr A的更多相关文章

  1. table tr foreach td 换行

    @{ ;} <table style=" class="sy_table"> <tr> @foreach (DataRow dr in (View ...

  2. [转]jquery遍历table的tr获取td的值

    html代码: 1 <tbody id="history_income_list"> 2 <tr> 3 <td align="center& ...

  3. table中某一个tr边框样式设置

    <html> <head> <style type="text/css"> table{ width:500px; } table tr td{ ...

  4. sed tr 去除PATH中的重复项

    最近发现由于自己不良的安装软件的习惯,shell的PATH路径包含了很多冗余的项.这里使用shell命令去除PATH的冗余项. export PATH=$(echo $PATH | sed 's/:/ ...

  5. HTML 表格<table><caption><th><tr><td><thead><tbody><tfoot><col><colgroup>

    <table>标签: 定义和用法: <table>标签定义HTML表格. 简单的HTML表格由table元素以及一个或多个tr.th或td元素组成. tr元素定义表格行,th元 ...

  6. 动态生成tr,并将其下控件的值拼接后传到后台并保存

    有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表. html代码: <!--#for(Record ...

  7. 2015-06-02 关于mvc表格点击按钮自动添加一行<tr></tr>

    前台代码: @using (Html.BeginForm("ContactPerson", "User", FormMethod.Post, new { @cl ...

  8. tr:even 与tr:odd

    :even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...

  9. 从append追加的<tr>里传ID参数给js函数

    今天这个小问题几乎把我整崩溃 $.each(data.list, function (index, item) { i++; shenhe = "待审核"; tixing = it ...

  10. jQuery操作Table tr td常用的方法

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...

随机推荐

  1. Servlet的接口实现类

    Sun公司提供了两个默认实现类 GenericServlet和HttpServlet HttpServlet指能够处理Http请求的Servlet,它在原有的Servlet基础上添加了与HTTp相关的 ...

  2. 一个美国小券商的生存之道Tradestation

    转自:证券时报记者 张欣然 桂衍民 中国互联网金融的口号喊了十几年,众多证券公司仍然苦于找不到新的蓝海,研究大西洋彼岸的美国TradeStation公司的业务模式,也许对国内的证券公司会有一些启迪. ...

  3. webstorm配置react

    设置.js文件默认以jsx的语法打开 在没有进行设置的情况下,每次打开WebStorm的时候打开包含jsx语法的.js文件都会有以下提示: 当然我们点击转换后就可以了,但是每次都会提示,所以还是来一个 ...

  4. Python中http请求方法库汇总

    最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,分享给大家,具体内容如下所示: 一.python自带库----urllib2 python自带 ...

  5. Tomcatserverhttps协议配置简单介绍

    一. 数字签名证书制作 1. 用jdk自带的keytool工具生成证书. 2. 导出证书: 3. 交给CA签名认证: 注意:制作具体步骤演示样例參见附录. 二.改动server.xml文件 改动con ...

  6. MYSQL 体系结构图

  7. 獲取 Textarea 的光標位置(摘自網絡)

    在任何编辑器中,获取光标位置都是非常重要的,很多人可能认为较难,其实只要处理好浏览器的兼容,还是比较容易实现的.下面我们一起来看看如何获取到 Textarea 元素中的光标位置.首先,我们用 rang ...

  8. C# 读取XML文件示例

    有关XML文件编写规范,请参考:http://www.w3school.com.cn/xml/index.aspXML内容如下(文件名为:Information.xml):浏览器显示: <?xm ...

  9. POJ 1265 Area POJ 2954 Triangle Pick定理

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5227   Accepted: 2342 Description ...

  10. cenos6.5 64位下PHP远程连接sql server2008成功案例

    准备工作: 1.sql server2008服务器(开放远程端口,默认为1433,我用的是192.168.1.129) 2.安装好php的centos服务器 步骤: 1.php安装mssql扩展.ce ...