Codeforces Round #334 (Div. 2) D. Moodular Arithmetic
2015-12-11 23:12
274 查看
题意:
求有多少种映射关系满足等式:思路:
假设K=0,K=1 情况下,答案比较容易得到。对于 K≥2 情况下。具体解释:here
下面说明几点疑惑:
为什么选用 x2=x1∗p % mod,因为这样的额话,满足迭代条件,所以就能找到等式关系。
为什么mark过的数就不用再去找了?因为只要在循环节内的话,只要选定x1 后,那么由于之前寻找的等式必须满足,所以在环内的数的值也就随之确定了!所以整个环内的数有 p 中取值。
应该解释清楚了吧!
代码:
#include <bits/stdc++.h> using namespace std; int p, k, seen[1000100]; void dfs(int node) { int next = (int)((node * 1LL * k) % p); seen[node] = 1; if(not seen[next]) { dfs(next); } } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cin >> p >> k; int tot = 0; for(int i = 1; i < p; i++) { if(not seen[i]) { tot++; seen[i] = 1; dfs(i); } } long long ans = 1; for(int i = 0; i < tot; i++) { ans *= p; ans %= 1000000007; } if(k == 1) { ans *= p; ans %= 1000000007; } cout << ans << "\n"; }
相关文章推荐
- Codeforces Round #197 (Div. 2)
- Codeforces Round #198 (Div. 1)
- Codeforces 405E Codeforces Round #238 (Div. 2)E
- Codeforces 407C Codeforces Round #239 (Div. 1)C
- CodeForces 449A - Jzzhu and Chocolate
- CodeForces 449 B. Jzzhu and Cities
- Codeforces Round #265 (Div. 2)
- Codeforces #310 div2 C. Case of Matryoshkas
- 状态压缩DP codeforces 244 Problem C. The Brand New Function 和 codeforces 165 E. Compatible Numbers
- codeforces 16 Problem E fish
- Codeforces Round332 部分题解
- Codeforces round #247 for Div. 2
- Codeforces Round #246 (Div. 2)
- Codeforces #264(div 2)D.Gargari and Permutations
- Codeforces Round #236 (Div. 2)------A,B
- codeforces 257 div2 B
- Codeforces Gym100571A Cursed Query
- Codeforces Gym100342E Minima
- Codeforces Gym100342J Triatrip
- Codeforces Gym100286B Blind Walk (dfs)