首页 > TAG信息列表 > P1965
【国庆の礼物 之三】洛谷P1965 转圈游戏
国庆礼物第三篇。 题目: 思路:模拟,取模计算 方法1:模拟,90分,一个点超时 #include<bits/stdc++.h> #define ll long long using namespace std; ll n,m,k,x,ans; int main(){ cin>>n>>m>>k>>x; ans=m; for(int i=1;i<=k;i++){ ans=ans*10%n; } //m*(10^k%n) anP1965 [NOIP2013 提高组] 转圈游戏
明显一次操作会让一个小朋友向右位移 \(m\) 位,即变成 \((x+m)\bmod n\)。 所以 \(10^k\) 次操作之后就是 \((x+m\times 10^k)\bmod n\) #include<bits/stdc++.h> using namespace std; #define int long long int ksm(int a,int b,int mod){ if(b==1)return a; int ans=ksm(a,b>P1965 [NOIP2013 提高组] 转圈游戏
Problem 给定\(n,m,k,x\),\(x\)每次会变成\((x + m) \bmod n\),称为1次变换,求经过\(10^k\)次变换后\(x\)的值。 \(n \le 10^6,m < n,k,x \le 10^9\)。 Solution 看见\(n\)数据范围显然可以想到整循环节,但是我们不会推,咋办,发现求循环节至多\(\mathcal{O}(n)\),求完之后相当于求\(10^k洛谷P1965 转圈游戏
P1965 转圈游戏 题目描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第P1965 转圈游戏
题目描述 nn 个小伙伴(编号从 00到 n-1n−1)围坐一圈玩游戏。按照顺时针方向给 nn个位置编号,从00 到 n-1n−1。最初,第 00号小伙伴在第 00号位置,第 11号小伙伴在第 11 号位置,……,依此类推。游戏规则如下:每一轮第 00 号位置上的小伙伴顺时针走到第mm 号位置,第 11号位P1965 转圈游戏
—————————————————————————————————————————————— 根据题意模拟,找出循环节再快速幂取余即可 #include<bits/stdc++.h>using namespace std;int num[100000000],cnt=1,x,m,n,k;long long int po(int k){ if(k==0)return 1; l