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

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 5134    Accepted Submission(s): 1354
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<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define mode 1000000007
using namespace std;
__int64 quickm(__int64 x,__int64 y)
{__int64 q=1;while(y){if(y&1)q=q*x%mode;x=x*x%mode;y/=2;}return q%mode;
}
int main()
{__int64 i,m,n,j,t,k,a[12005],b[12005],x;scanf("%I64d",&m);while(m--){scanf("%I64d%I64d%I64d",&n,&t,&k);for(i=0;i<n;i++)scanf("%I64d",&a[i]);for(i=0;i<n;i++){__int64 x=quickm(k,t);x=x*a[i]%mode;b[(t+i)%n]=x; }for(i=0;i<n-1;i++)printf("%I64d ",b[i]);printf("%I64d\n",b[n-1]);}return 0;
}

杭电-4506小明系列故事——师兄帮帮忙相关推荐

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

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

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

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. hdu4506小明系列故事——师兄帮帮忙

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

最新文章

  1. 【SpringBoot Testing】测试类/测试用例格式
  2. ae导出json_关于AE转json动画开发避坑指南
  3. [Vue源码分析]谷歌翻译后,Vue双向数据绑定失效了?
  4. @JsonFormat失效解决
  5. 机器学习基石-作业三-第2题分析以及通过H证明EIN的讨论
  6. arcgis重心迁移分析_锂电池行业分析:从工艺、成本及供需角度看三元材料高镍化趋势...
  7. windows安装多个maven_全网最容易理解的Maven安装、配置、集成演示
  8. js base64图片太大_JS实现base64图片下载 简易方法
  9. sql删除重复数据只保留一条的操作方法
  10. 【实习之T100开发】帆软报表笔记
  11. 怎么把数组转化成字符串呢?有没有现成的函数呢?
  12. C# 输入一个正整数N,判断N是奇数还是偶数,输出1~N的奇数和或是偶数和,三种不同方法分别实现
  13. windows 10 cortana搜索功能失效
  14. Eclips注释模板的使用
  15. 平面设计面试官常问的问题有哪些?
  16. ps中颜色和图片本身颜色不一样,白色呈米色
  17. JavaWeb基础04: JavaScript
  18. Python读写串口编程
  19. JAVA ECLIPSE安装
  20. 读书笔记:《启示录》

热门文章

  1. iPhone 12 销量破亿,直追「钉子户神机」的底气是什么?
  2. 一文读懂电商产品架构
  3. matlab 桥梁中一跨选择合适的跨径组合
  4. as3遍历对象所有属性的方法
  5. 【2万字长文】深入浅出主流的几款小程序跨端框架原理
  6. pb 制作登陆界面连接数据库
  7. 《Oracle PL/SQL开发指南》学习笔记28——源码调试——PL/SQL基础知识(第六部分)
  8. 手机计算机隐藏功能怎么用,手机隐藏功能大全
  9. 计算机专业 大学物理课程简介,大学物理课程教学大纲简介.doc
  10. 接口测试平台插播: ( Postman 的小bug)