zoukankan      html  css  js  c++  java
  • 1617:转圈游戏 ybt

     

    1617:转圈游戏


    时间限制: 1000 ms         内存限制: 524288 KB
    提交数: 540     通过数: 326

    【题目描述】

    nn 个小伙伴(编号从 00 到 n1n−1 )围坐一圈玩游戏。按照顺时针方向给 nn 个位置编号,从 00 到 n1n−1 。最初,第 00 号小伙伴在第 00 号位置,第 11 号小伙伴在第 11 号位置,……,依此类推。

    游戏规则如下:每一轮第 00 号位置上的小伙伴顺时针走到第 mm 号位置,第 11 号位置小伙伴走到第 m+1m+1 号位置,……,依此类推,第 nmn−m 号位置上的小伙伴走到第 00 号位置,第 nm+1n−m+1 号位置上的小伙伴走到第 11 号位置,……,第 n1n−1 号位置上的小伙伴顺时针走到第 m1m−1 号位置。

    现在,一共进行了 10k10k 轮,请问 xx 号小伙伴最后走到了第几号位置。

    【输入】

    输入共 11 行,包含 44 个整数 nmkxn、m、k、x ,每两个整数之间用一个空格隔开。

    【输出】

    输出共 11 行,包含 11 个整数,表示 10k10k 轮后 xx 号小伙伴所在的位置编号。

    【输入样例】

    10 3 4 5

    【输出样例】

    5
    仔细观察一下就可以发现这道题其实很简单就是累加上去之后对n取模。
    但是计算过程中的取模是个坑
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    ll k,n,m,x;
    inline ll quickpow(ll a,ll b)
    {
        ll ans=1;
        while(b)
        {
            if(b&1LL) ans=ans*a%n;
            a=a*a%n;
            b>>=1LL;
        }
        return ans;
    }
    int main()
    {
        scanf("%lld %lld %lld %lld",&n,&m,&k,&x);
        printf("%lld
    ",(m%n*quickpow(10,k)+x)%n);
        return 0;
    }
    
    
    
    
    
    喵内喵内
  • 相关阅读:
    hdu 2196 树形dp
    codeforces 1A
    [日常摸鱼]bzoj1218[HNOI2003]激光炸弹-二维前缀
    [日常摸鱼]bzoj2724蒲公英-分块
    [日常摸鱼]关于离散化
    [OI笔记]后缀自动机
    [日常摸鱼]poj1509Glass Beads-SAM
    [日常摸鱼]bzoj1083[SCOI2005]繁忙的都市-最小生成树
    [日常摸鱼]bzoj2038[2009国家集训队]小Z的袜子-莫队算法
    [日常摸鱼]三分法
  • 原文地址:https://www.cnblogs.com/smartljy/p/11385461.html
Copyright © 2011-2022 走看看