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
#include<stdio.h>
#define mod 1000000007
int main()
{int n,m,k,i,t;__int64 aa[60],ans[100005],sum;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&m,&k);for(i=1;i<=n;i++){scanf("%I64d",&ans[i]);ans[i]%=mod;}int tk=m,ti=0,a[60];while(tk){a[++ti]=tk%2; tk/=2; }aa[1]=k%mod;for(i=2; i<=ti;i++)aa[i]=(aa[i-1]*aa[i-1])%mod;sum=1;for(i=1; i<=ti; i++)if(a[i])sum=(sum*aa[i])%mod;tk=m%n;if(tk)printf("%I64d",(ans[n-tk+1]*sum)%mod),ti=n-tk+1;else printf("%I64d",(ans[1]*sum)%mod),ti=1;if(ti==1)for(i=2;i<=n;i++)printf(" %I64d",(ans[i]*sum)%mod);else{i=ti-1;for(ti++; ti<=n; ti++)printf(" %I64d",(ans[ti]*sum)%mod);for(ti=1;ti<=i; ti++)printf(" %I64d",(ans[ti]*sum)%mod);}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小明系列故事——师兄帮帮忙

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

  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. 更改eclipse的Package Explorer的字体
  3. MySQL基于SSL协议的主从复制
  4. Blanket PO(总括订单)
  5. Idea问题:“marketplace plugins are not loaded”解决方案
  6. Effective Java之注解优于命名模式(三十五)
  7. 使用Spring跟踪应用程序异常
  8. kafka mysql事务_【干货】Kafka 事务特性分析
  9. Dreamweaver中如何格式化代码
  10. python 的输入 输出
  11. bzoj 1024 SCOI2009 生日快乐
  12. 架构师被疯抢,华为出了什么招?
  13. cmd代码玩贪吃蛇_关于N行贪吃蛇回答的补充
  14. TCA9539 IO扩展芯片
  15. 完稿—单片机原理与接口技术
  16. 愚人节里的巧合与必然:BAT等亮出的AI招牌故事
  17. 以赛促产 以赛引才 |第六届世界智能大会·中国华录杯数据湖算法大赛正式启动
  18. 万字攻略,详解腾讯面试
  19. radius mysql md5_Radius认证
  20. 【解析无线路由器信号消失原因】

热门文章

  1. easyui 删除指定行
  2. LoadRunner11设置场景百分比模式完成多台客户端负载测试
  3. 3.1 哈尔空间 V0
  4. “达克效应”让人们信心满满还是畏惧不前?- 更应该是谨慎地冒险
  5. 如何控制C#Socket的连接超时时间
  6. [Modules]PrestaShop插件 模块 – 产品推荐模块 随机展示推荐产品
  7. CSS+DIV-公司网站
  8. tcm可信密码模块linux,基于可信密码模块的可信电子签名终端设计与实现
  9. 7.28Assignment
  10. BZOJ1103: [POI2007]大都市meg