Tr A
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的更多相关文章
- table tr foreach td 换行
@{ ;} <table style=" class="sy_table"> <tr> @foreach (DataRow dr in (View ...
- [转]jquery遍历table的tr获取td的值
html代码: 1 <tbody id="history_income_list"> 2 <tr> 3 <td align="center& ...
- table中某一个tr边框样式设置
<html> <head> <style type="text/css"> table{ width:500px; } table tr td{ ...
- sed tr 去除PATH中的重复项
最近发现由于自己不良的安装软件的习惯,shell的PATH路径包含了很多冗余的项.这里使用shell命令去除PATH的冗余项. export PATH=$(echo $PATH | sed 's/:/ ...
- HTML 表格<table><caption><th><tr><td><thead><tbody><tfoot><col><colgroup>
<table>标签: 定义和用法: <table>标签定义HTML表格. 简单的HTML表格由table元素以及一个或多个tr.th或td元素组成. tr元素定义表格行,th元 ...
- 动态生成tr,并将其下控件的值拼接后传到后台并保存
有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表. html代码: <!--#for(Record ...
- 2015-06-02 关于mvc表格点击按钮自动添加一行<tr></tr>
前台代码: @using (Html.BeginForm("ContactPerson", "User", FormMethod.Post, new { @cl ...
- tr:even 与tr:odd
:even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...
- 从append追加的<tr>里传ID参数给js函数
今天这个小问题几乎把我整崩溃 $.each(data.list, function (index, item) { i++; shenhe = "待审核"; tixing = it ...
- jQuery操作Table tr td常用的方法
虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...
随机推荐
- kvm编译安装及常见问题解决
一.KVM的编译安装 1.安装基本系统和开发工具 1.1 编译内核 mkdir /root/kvm cd /root/kvm wget http://www.kernel.org/pub/linux/ ...
- Apache-Tika解析HTML文档
通常在使用爬虫时,爬取到网上的文章都是各式各样的格式处理起来比较麻烦,这里我们使用Apache-Tika来处理HTML格式的文章,如下: package com.mengyao.tika.app; i ...
- msyql 字节问题
MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定).在 MySQL5.0以上的版本中,varchar数据 ...
- [Flexbox] Using order to rearrange flexbox children
Using the order property we alter the order in which flexbox children appear on the page, without ma ...
- Eclipse debug经常使用基本技巧
1.F5单步调试,步入,进入函数体内部 2.F6单步调试.步过.不进入函数体 3.F7返回 4.F8运行到最后 5.退出时.右键点击右上角Debug选择退出就可以 $(function () { $( ...
- innode 节点
[root@localhost soft]# ls -i tt1 tt2 xx.c [root@localhost soft]# stat tt1 File: `tt1' Size: 4096 Blo ...
- Qt 学习之路 :自定义只读模型
model/view 模型将数据与视图分割开来,也就是说,我们可以为不同的视图,QListView.QTableView和QTreeView提供一个数据模型,这样我们可以从不同角度来展示数据的方方面面 ...
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
- C++ XML 解释库
rapidxml http://rapidxml.sourceforge.net/index.htm
- 使用downloadmanager调用系统的下载
/** * 文件名 UpdateDownload.java * 包含类名列表 com.issmobile.numlibrary.tool * 版本信息 版本号 * 创建日期 2014年7月14日 ...