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. MacOS访达增强工具-TotalFinder

    TotalFinder 是Mac上最好用的Finder增强工具,TotalFinder 提供了多标签式浏览.拷贝路径.剪切文件.显示隐藏文件.双栏窗口模式.彩色标签等功能 彩色的标签 将彩色带回El ...

  2. 5分钟读懂Linux权限管理

    权限管理: 本文用于初学者对Linux文件系统权限的快速了解!! 进程安全上下文:   进程对文件的访问权限应用模型:     进程的属主与文件的属主是否相同:如果相同,则应用属主权限:      否 ...

  3. JS实现生成一个周对应日期数组

    /* 获取日期和周 */ getDateWeek() {/* 得到当前日期的时间戳 */ const timestamp = Date.now() // const timestamp = new D ...

  4. 3.如何理解开多线程可以充分利用CPU?

    如何理解开多线程可以充分利用CPU? <1>操作系统采用时间片轮转调度算法分配的时间片给每个进程中的线程 <2>操作系统的时间片轮转调度算法分配的时间片 在别的进程中都没有准备 ...

  5. 后缀数组(SA)

    学习了LRJ神犇的代码.orz. 首先真心建议了解下基数排序!!且要有一定的c++程序经验,否则程序很难看懂. 然后对着下面的程序调试(假装你已经会了算法思想) 弄个一个礼拜一下午就能学会了. 该算法 ...

  6. 玩转OneNET物联网平台之MQTT服务⑤ —— OneNet智能灯+MVP框架

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  7. 解决js计算0.1+0.2 !==0.3

    经常做用js数据运算的同学应该了解,在js中,0.1+0.2不会等于0.3,而是等于: 我一开始发现这个bug的时候也觉得很奇怪,那怎么去解决这个bug,让0.1+0.2 最后能得到0.3呢? 方法一 ...

  8. Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置

    用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...

  9. Windows许可证即将过期怎么办?

    最近在使用电脑的时候,一开机就会弹窗出现:Windows 许可证即将过期.我勒个去,windows还会过期啊. 我搜遍全网,发现了一个很棒的 Windows10 永久激活的工具,而且没有广告什么乱七八 ...

  10. SAP SOAMANAGER报错原因与故障排除方法

    一些刚刚接触到SAP Webservice的开发者由于对SAP Netweaver组件的不熟悉,往往在使用事物码SOAMANAGER进行webservice配置的时候,发现无法正常启动SOAMANAG ...