52-无聊的小明

内存限制:64MB
时间限制:3000ms
Special Judge: No

accepted:1
submit:3

题目描述:

      这天小明十分无聊,没有事做,但不甘于无聊的小明聪明的想到一个解决无聊的办法,因为他突然对数的正整数次幂产生了兴趣。
  众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,4,8,6……我们说2的正整数次幂最后一位的循环长度是4(实际上4的倍数都可以说是循环长度,但我们只考虑最小的循环长度)。类似的,其余的数字的正整数次幂最后一位数也有类似的循环现象。
  这时小明的问题就出来了:是不是只有最后一位才有这样的循环呢?对于一个整数n的正整数次幂来说,它的后k位是否会发生循环?如果循环的话,循环长度是多少呢?
注意:
  1.如果n的某个正整数次幂的位数不足k,那么不足的高位看做是0。
  2.如果循环长度是L,那么说明对于任意的正整数a,n的a次幂和a + L次幂的最后k位都相同。

输入描述:

第一行输入一个整数N(0<n<10);接下来每组测试数据输入只有一行,包含两个整数n(1 <= n <100000)和k(1 <= k <= 5),n和k之间用一个空格隔开,表示要求n的正整数次幂的最后k位的循环长度。

输出描述:

每组测试数据输出包括一行,这一行只包含一个整数,表示循环长度。如果循环不存在,输出-1。

样例输入:

复制

1
32 2

样例输出:

4

分析:
  ps:
    1、是存在结果不循环这种情况
    2、emmmmmm, 数据超过int, 用long long才可以AC
  1、因为题目要求的是最后k位是否循环,所以在做相乘的时候自需要取出最后k位的数与给定的数n相乘
  2、如果在最后取出的数与不是第一位的数位对应上的数相等了,说明只存在局部循环,不存在全局循环(这就是跳出循环的条件,<set>判重) 核心代码:
 while(my_begin != my_end)
{
temp *= n;
my_end = temp % A[k];
temp = my_end;
my_set.insert(temp);
if(!pr.second)
{
flag = ;
break;
}
}

C/C++代码实现(AC):

 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <map>
#include <queue>
#include <set> using namespace std;
const int MAXN = ;
const int MAX = 0x3f3f3f3f;
int A[] = {, , , , , }; int main()
{ int t;
scanf("%d", &t); while(t --)
{
set <long long> my_set;
pair <set <long long> ::iterator, bool> pr;
long long n, k, cnt = , my_begin, temp_n, my_end, flag = ;
scanf("%d%d", &n, &k);
temp_n = n, my_begin = n % A[k];
while(my_begin != my_end)
{
cnt ++;
temp_n *= n;
my_end = temp_n % A[k];
temp_n = my_end;
pr = my_set.insert(temp_n);
if(!pr.second)
{
flag = ;
break;
}
}
if(!flag)
printf("%lld\n", cnt);
else
printf("-1\n");
}
return ;
}

nyoj 52-无聊的小明 (模拟, SET)的更多相关文章

  1. NYOJ 52-无聊的小明

    点击打开链接 无聊的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述       这天小明十分无聊,没有事做,但不甘于无聊的小明聪明的想到一个解决无聊的办法,因为他突 ...

  2. 【ACM】无聊的小明

    无聊的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述       这天小明十分无聊,没有事做,但不甘于无聊的小明聪明的想到一个解决无聊的办法,因为他突然对数的正 ...

  3. NYOJ 55-懒省事的小明

    点击打开链接 懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果 ...

  4. NYOJ 51-管闲事的小明

    点击打开链接 管闲事的小明 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数 ...

  5. NYOJ 49-开心的小明:01背包

    点击打开链接 开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是 ...

  6. nyoj 49 开心的小明

    开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...

  7. NYOJ 49 开心的小明(01背包问题)

    时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是.妈妈昨天对他说: ...

  8. nyoj 55-懒省事的小明(priority_queue)

    55-懒省事的小明 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:8 submit:62 题目描述:       小明很想吃果子,正好果园果子熟了. ...

  9. nyoj 53-不高兴的小明 (遍历)

    53-不高兴的小明 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:28 submit:89 题目描述:    小明又出问题了.妈妈认为聪明的小明应该 ...

随机推荐

  1. [NOIp2010] luogu P1514 引水入城

    跟 zzy, hwx 等人纠结是否回去上蛋疼的董老板的课. 题目描述 如图所示.你有一个 N×MN\times MN×M 的矩阵,水可以从一格流到与它相邻的格子,需要满足起点的海拔严格高于终点海拔.定 ...

  2. [Luogu3070][USACO13JAN]岛游记Island Travels

    题目描述 Farmer John has taken the cows to a vacation out on the ocean! The cows are living on N (1 < ...

  3. Hash Table Implementation in C++

    对于字符串,所用的hash函数为: size_t _Hash_bytes(const void* ptr, size_t len, size_t seed) { static const size_t ...

  4. CVE 2019-0708漏洞复现防御修复

    CVE-2019-0708 Windows再次被曝出一个破坏力巨大的高危远程漏洞CVE-2019-0708.攻击者一旦成功利用该漏洞,便可以在目标系统上执行任意代码,包括获取敏感信息.执行远程代码.发 ...

  5. python编程系列---tcp客户端的简单实现

    实现流程如下: """ TCP客户端实现流程1. 创建一个tcp 客户端对象2. 与服务端建立连接3. 通过tcp socket 收发数据4. 关闭连接 关闭tcp &q ...

  6. 2019.10.26 CSP%您赛第三场

    \(CSP\)凉心模拟^_^ --题源\(lqx.lhc\)等各位蒟蒻 题目名称 比赛 传递消息 开关灯 源文件名 \(competition.cpp\) \(message.cpp\) \(ligh ...

  7. 使用 Hexo,Material Theme 以及 Github Pages 搭建个人博客

    准备条件 Node.js npm Git GitHub账号 开始搭建 hexo init Blog cd Blog npm install hexo-deployer-git --save npm i ...

  8. 在.Net Core 3.0中尝试新的System.Text.Json API

    .NET Core 3.0提供了一个名为System.Text.Json的全新命名空间,它支持reader/writer,文档对象模型(DOM)和序列化程序.在此博客文章中,我将介绍它如何工作以及如何 ...

  9. C/C++——strcpy函数的实现

    题目:     已知strcpy函数的原型是:         char * strcpy(char * strDest,const char * strSrc);     1.不调用库函数,实现st ...

  10. 关于高淇JAVA中SORM总结学习笔记详细个人解释

    代码来源于高淇JAVA教学视频 谢谢高淇老师的教学. 因为自己在学习的过程中发现了很多困难点,总结下希望对自己接下来学框架提升.给像我一样得初学者方便. SORM框架是一个简单的ORM,关系对象映射, ...