UVA 11551 - Experienced Endeavour(构造矩阵-水题)
来源:互联网 发布:java抓取网页源码 编辑:程序博客网 时间:2024/05/18 01:19
题意:求一列序列的经过r次变化后的新序列,这些变化都是旧序列的某些已给位置的和产生新的项
思路:好水,直接构造01矩阵
//Accepted 45 ms C++ 4.8.2 1442#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int mod= 1000;int num[55];int res[55];int n,c;struct mat{ int a[55][55]; mat() { memset(a,0,sizeof(a)); }};mat I;mat mul(mat m1,mat m2){ mat ans; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(m1.a[i][j]) for(int k=1;k<=n;k++) ans.a[i][k]=(ans.a[i][k]+m1.a[i][j]*m2.a[j][k])%mod; return ans;}mat quickmul(mat m,int k){ mat ans; for(int i=1;i<=n;i++) ans.a[i][i]=1; while(k) { if(k&1) ans=mul(ans,m); m=mul(m,m); k>>=1; } return ans;}int main(){ int T; scanf("%d",&T); while(T--) { memset(I.a,0,sizeof(I.a)); memset(res,0,sizeof(res)); scanf("%d%d",&n,&c); for(int i=1;i<=n;i++) scanf("%d",&num[i]); for(int i=1;i<=n;i++) num[i]%=mod; for(int i=1;i<=n;i++) { int t,tmp; scanf("%d",&t); for(int j=1;j<=t;j++) { scanf("%d",&tmp); tmp++; I.a[i][tmp]=1; } } mat ans=quickmul(I,c); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) res[i]=(res[i]+num[j]*ans.a[i][j])%mod; for(int i=1;i<=n;i++) printf("%d%c",res[i],i==n?'\n':' '); } return 0;}
0 0
- UVA 11551 - Experienced Endeavour(构造矩阵-水题)
- UVA 11551 Experienced Endeavour(矩阵快速幂)
- UVA 11551 - Experienced Endeavour(矩阵快速幂)
- uva 11551 - Experienced Endeavour(矩阵快速幂)
- UVA 11551 - Experienced Endeavour
- Experienced Endeavour UVA
- 【矩阵快速幂】Experienced Endeavour
- UVA11551-Experienced Endeavour
- UVA - 10870(构造矩阵)
- UVa 10870 - Recurrences (矩阵构造 矩阵快速幂)
- UVA - 10870 Recurrences(构造矩阵)
- UVA 10655 Contemplation! Algebra(构造矩阵和快速幂)
- UVA 10870 Recurrences(构造矩阵和快速幂)
- UVA 10655 Contemplation! Algebra(构造矩阵)
- HDU5950Recursive sequence(构造矩阵+矩阵乘法)
- UVA10655矩阵快速幂(构造矩阵)
- uva11551experienced endeavour
- UVA 11551(矩阵快速幂)
- 第六周项目4.1 成员函数 友元函数和一般函数有区别——阅读程序,体会注释中的说明
- Android PowerImageView实现,可以播放动画的强大ImageView
- Oracle Fusion Middleware 基础知识总结
- Unity Error:UnityEditor.EditorApplicationLayout:FinalizePlaymodeLayout()
- 我的学习习惯
- UVA 11551 - Experienced Endeavour(构造矩阵-水题)
- mongodb
- HTML父窗口与IFRAME中变量互访
- c++ 函数模板浅析
- Android系统wifi输入错误的用户名没有提示问题
- 弗洛伊德算法Floyed(求各顶点间最短路径):可打印最短路径
- sql server convert
- libsvm-3.20初步使用easy.py进行分类
- SlidingDrawer的使用(过时)