SDUT 周赛 神奇的树(简单题 注意数据类型的溢出 )

神奇的树

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

SDUT有一颗神奇的苹果树。假如某天早上这树上有x个苹果,那么这树这一天会再结出x个苹果来,也就是说到了晚上会有2*x个苹果,到了深 夜,会有专人人来摘苹果,而摘苹果的人总会使苹果数剩下当前数量对m的余数,也就是说假如当前数量为a,那么第二天早上会剩下a%m个苹果。也许聪明的你 已经发现了,有可能从某一天开始,这棵树上就再也没有苹果了。那么给你第一天早上的苹果数,请你判断一下是否存在这一天,从这一天开始就再也没有苹果了。 如果一直存在的话输出Yes,否则输出No。

输入

多组测试数据。每组测试数据都是一行两个整数,x和m。x表示第一天早上的

苹果树,m表示余数。1<=x,m<=10^5.

输出

每组测试数据输出单独一行,Yes或No。

示例输入

1 5
3 6

示例输出

No
Yes
#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
#include <algorithm>

using namespace std;

int main()
{
    bool f[200006];
    long long x;
    int m;

    while(scanf("%d %d", &x, &m)!=EOF)
    {
        memset(f, false, sizeof(f));
        int flag;
        while(f[x]==false && x!=0)
        {
            f[x]=true;
            x=x*2;
            x=x%m;
        }
        if(x==0)
        {
            cout<<"Yes\n";
        }
        if(f[x]==true)
        {
            cout<<"No\n";
        }
    }
    return 0;
}
时间: 2024-08-19 11:43:00

SDUT 周赛 神奇的树(简单题 注意数据类型的溢出 )的相关文章

BZOJ2683: 简单题(CDQ分治 + 树状数组)

BZOJ2683: 简单题(CDQ分治 + 树状数组) 题意: 你有一个\(N*N\)的棋盘,每个格子内有一个整数,初始时的时候全部为\(0\),现在需要维护两种操作: 命令 参数限制 内容 \(1\ x\ y\ A\) \(1\le x,y \le N\),A是正整数 将格子\(x,y\)里的数字加上\(A\) \(2\ x1\ y1\ x2\ y2\) \(1\le x1\le x2\le N,1\le y1\le y2\le N\) 输出\(x1\ y1\ x2\ y2\)这个矩形内的数字

【BZOJ2683】简单题 [分治][树状数组]

简单题 Time Limit: 50 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数字加上A 2 x1 y1 x2 y2 1<=x1<= x2<=N 1<=y1<= y2<=N 输出x1 y1 x2 y2

[CQOI 2006]线段树之简单题

Description 有一个n个元素的数组,每个元素初始均为0.有m条指令,要么让其中一段连续序列数字反转--0变1,1变0(操作1),要么询问某个元素的值(操作2).例如当n=20时,10条指令如下: Input 第一行包含两个整数n,m,表示数组的长度和指令的条数,以下m行,每行的第一个数t表示操作的种类.若t=1, 则接下来有两个数L, R (L<=R),表示区间[L, R]的每个数均反转:若t=2,则接下来只有一个数I,表示询问的下 标.1<=n<=100,000,1<=

HDU 4893 线段树裸题

Wow! Such Sequence! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2512    Accepted Submission(s): 751 Problem Description Recently, Doge got a funny birthday present from his new friend, Pro

hdu--1251 统计难题(字典树水题)

Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:本题只有一组测试数据,处理到文件结束. Output 对于每个提问,给出以该字符

【BZOJ-1176&amp;2683】Mokia&amp;简单题 CDQ分治

1176: [Balkan2007]Mokia Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 1854  Solved: 821[Submit][Status][Discuss] Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Input 第一行两个整数,S,W;其中S为矩阵初始值;W为矩阵大小

北方多校 又是一道简单题

又是一道简单题 12000ms 65536K 给出一棵有根树,每次查询给出两个节点 u 和 v,假设节点 f 是u,v的最近公共祖先,请查询以 f 为根的子树中,不在 u 到 v 这条链上且标号最小的节点. 输入格式 第一行输入正整数 T(T <= 30),表示共有T组输入数据. 对于每组数据,第一行输入两个正整数 n,m(n <= 50000,m <= 50000),表示节点数和询问数,节点编号 1 到 n,其中 1 是根节点. 接下来 n - 1 行,每行输入两个正整数u,v,表示标

【BZOJ4066】简单题 KDtree

[BZOJ4066]简单题 Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数字加上A 2 x1 y1 x2 y2 1<=x1<= x2<=N 1<=y1<= y2<=N 输出x1 y1 x2 y2这个矩形内的数字和 3 无 终止程序 Input 输入文件第一行一个正整数N. 接下来每行一个操作.每条命令除第

bzoj2683简单题

2683: 简单题 Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 738  Solved: 307 [Submit][Status][Discuss] Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数字加上A 2 x1 y1 x2 y2 1<=x1<= x2<=N 1<