小明系列故事——师兄帮帮忙

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 4125    Accepted Submission(s): 1077

Problem Description
小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借此机会帮助一些同学,尤其是漂亮的师妹。这不,班里唯一的女生又拿一道数学题来请教小明,小明当然很高兴的就接受了。不过等他仔细读题以后,发现自己也不会做,这下小明囧了:如果回复说自己不懂,岂不是很没面子?
  所以,他现在私下求你帮忙解决这道题目,题目是这样的:
  给你n个数字,分别是a1,a2,a3,a4,a5……an,这些数字每过一个单位时间就会改变,假设上一个单位时间的数字为a1’,a2’,a3’……an’,那么这个单位时间的数字a[i] = a[i - 1]’ * K(i == 1的时候a[1] = a[n]’ * K),其中K为给定的系数。
  现在的问题就是求第t单位时间的时候这n个数字变成了什么了?由于数字可能会很大,所以只要你输出数字对10^9 + 7取余以后的结果。
Input
输入数据第一行是一个正整数T,表示有T组测试数据;
  每组数据有两行,第一行包含输入三个整数n, t, k,其中n代表数字个数,t代表第t个单位时间,k代表系数;第二行输入n个数字ai,代表每个数字开始的时候是多少。

  [Technical Specification]
  T <= 100
  1 <= n <= 10 ^ 4
  0 <= t <= 10 ^ 9  其中 t = 0 表示初始状态
  1 <= k <= 10 ^ 9
  1 <= ai<= 10 ^ 9

Output
对于每组数据请输出第t单位时间后这n个数字变成了什么,输出的时候每两个数字之间输出一个空格,行末不要输出多余的空格,具体见样例。
Sample Input
2 3 2 5 1 2 3 3 0 5 1 2 3
Sample Output
50 75 25 1 2 3
Source
2013腾讯编程马拉松初赛第一场(3月21日)  
题目不是很难推理,就是一个快速幂。
#include<stdio.h>
#define M 1000000007
__int64 ans=1;
void quickMod(__int64 a,__int64 b)
{while(b!=0){if(b&1){ans=(ans*a)%M;b--;}b/=2;a=a*a%M;}
}
int main()
{__int64 a[10001],n,k,T,t,i,j;scanf("%I64d",&T);while(T--){ans=1;scanf("%I64d %I64d %I64d",&n,&t,&k);for(i=0;i<n;i++)scanf("%I64d",&a[i]);quickMod(k,t);t=t%n;j=(n+0-t)%n;printf("%I64d",a[j]*ans%M);for(i=1;i<n;i++){j=(n+i-t)%n;printf(" %I64d",a[j]*ans%M);}printf("\n");}return 0;
}

hdu4506小明系列故事——师兄帮帮忙相关推荐

  1. HDU4506 小明系列故事——师兄帮帮忙

    问题链接:HDU4506 小明系列故事--师兄帮帮忙. 问题描述:参见上述链接. 问题分析:(略). 程序说明:函数powermod()是快速模幂函数. AC的C++语言程序如下: /* HDU450 ...

  2. HDU4506 小明系列故事——师兄帮帮忙【水题】

    小明系列故事--师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  3. hdu4506小明系列故事——师兄帮帮忙 (用二进制,大数高速取余)

    Problem Description 小明自从告别了ACM/ICPC之后,就開始潜心研究数学问题了,一则能够为接下来的考研做准备,再者能够借此机会帮助一些同学,尤其是美丽的师妹.这不,班里唯一的女生 ...

  4. 杭电4506小明系列故事——师兄帮帮忙

    小明系列故事--师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  5. hdu 4506 小明系列故事——师兄帮帮忙

    小明系列故事--师兄帮帮忙 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total ...

  6. HDU 4506 小明系列故事——师兄帮帮忙

    小明系列故事--师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  7. HDU_4506 小明系列故事——师兄帮帮忙

    小明系列故事--师兄帮帮忙 2014-8-4 17:22 Problem Description 小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借 ...

  8. 杭电-4506小明系列故事——师兄帮帮忙

    小明系列故事--师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  9. [HDOJ 4506] 小明系列故事――师兄帮帮忙

    题目描述 小明系列故事――师兄帮帮忙 解题思路 找规律,可知每经过n个单位时间,数字又会变回来. 因此只要取余,得到每个数字在t时间后的位置. 结合快速幂就可以直接输出答案了. 参考代码 #inclu ...

最新文章

  1. (太棒了)程序员的十个层次 你属于哪一层?
  2. Codeforces Beta Round #4 (Div. 2 Only) B. Before an Exam dp
  3. flink 1.9 编译: flink-shaded-asm-6 找不到
  4. 1.6数组-像素翻转
  5. 视频编解码(十八):编解码linux测试步骤
  6. Citrix Xendesktop虚拟化桌面和深信服VSP安全桌面的技术对比
  7. 网易云音乐歌单解析下载源码
  8. 小程序登录、微信网页授权(Java版)
  9. Tumblr营销大法(二)
  10. Tech Talk 宣传 | 如何高效、极简构造无服务器 Web 应用
  11. 网站图片怎么优化搜索排名
  12. 对于DCB的认识---GNSS 误差源
  13. Oracle 服务器连不上解决方式(远程telnet 1521端口失败)
  14. 计算机类一级学术刊物、核心刊物列表及简介
  15. 【indexedDB】indexedDB知识梳理
  16. js二分法的简单计算
  17. class在c语言中,C语言中的class的应用
  18. html网页 swf播放器使用代码
  19. 达梦数据库安装全流程
  20. 创新技术简化施工,助高速公路穿越海峡

热门文章

  1. PowerShell Install Office 2021 Pro Plus Viso Professional
  2. js字符串和对象之间的转换
  3. python对称二叉树
  4. 微信属于计算机软件的应用软件吗,微信解封软件是不是真的 微信解封软件有用吗...
  5. anonymous unions
  6. ice-full与ice-lite
  7. (每日一练c++)报数游戏
  8. 电脑双网卡选择出路设置
  9. 水晶报表 动态批量打印本地图片
  10. gromacs PCA 做自由能景观图