2 条题解
-
1
AC 代码,不A我吃💩
100 Accepted
状态分数 耗时 内存占用
#1 Accepted5 1ms 256 KiB #2 Accepted5 1ms 256 KiB #3 Accepted5 1ms 256 KiB #4 Accepted5 1ms 256 KiB #5 Accepted5 0ms 256 KiB #6 Accepted5 1ms 256 KiB #7 Accepted5 0ms 256 KiB #8 Accepted5 0ms 256 KiB #9 Accepted5 0ms 256 KiB #10 Accepted5 0ms 256 KiB #11 Accepted5 1ms 296 KiB #12 Accepted5 49ms 1.6 MiB #13 Accepted5 39ms 1.8 MiB #14 Accepted5 50ms 1.6 MiB #15 Accepted5 53ms 1.6 MiB #16 Accepted5 34ms 1.8 MiB #17 Accepted5 42ms 1.6 MiB #18 Accepted5 40ms 1.6 MiB #19 Accepted5 50ms 1.6 MiB #20 Accepted5 37ms 1.8 MiB
#include<queue> #include<math.h> #include<stdio.h> #include<iostream> #include<vector> #include<iomanip> #include<string.h> #include<algorithm> #include<unordered_map> #include<cmath> #include<cstdio> #include<utility> #include<cstring> #include<stack> #include<fstream> #include<string> using namespace std; #define LL long long const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; long long qmi( long long a , long long k , long long p ) { long long res = 1; while ( k ) { if ( k & 1 ) { res = ( res * a ) % p; } a = ( a * a ) % p; k >>= 1; } return res; } long long bsgs( long long a , long long b , long long p ) { unordered_map< long long , long long >mp; if ( 1 % p == b % p ) { return 0; } long long k = sqrt(p) + 1; for ( long long i = 0,j = b % p; i < k; i ++ ){ mp[j] = i; j = (long long)j * a % p; } long long t = 1 % p; for ( long long i = 0 ; i < k ; i++ ) { t = (long long)t * a % p; } for ( long long i = 1 , j = t; i <= k ; i++ ) { if ( mp.count(j) ) { return (long long)i * k - mp[j]; } j = (long long)j * t % p; } return -1; } int main() { long long n ,T; cin >> n >> T; if ( T == 1 ) { for ( long long i = 1 ; i <= n ; i++ ) { long long a , b , p; cin >> a >> b >> p; cout << qmi( a , b , p ) << endl; } } else if ( T == 2 ) { for ( int i = 1 ; i <= n ; i++ ) { int a , b , p; cin >> a >> b >> p; a %= p; b %= p; if ( a == 0 && b != 0 ) { cout << "Orz, I cannot find x!" << endl; } else { cout << qmi( a , p - 2 , p) * b % p << endl; } } } else { for ( long long i = 1 ; i <= n ; i++ ) { long long a , b , p; cin >> a >> b >> p; if ( a % p == b % p ) { cout << 1 << endl; continue; } a %= p; long long t = bsgs( a , b , p ); if ( a == 0 && b == 0 ) { cout << 1 << endl; } else if ( a == 0 && b != 0 ) { cout << "Orz, I cannot find x!" << endl; } else { if ( t == -1 ) { cout << "Orz, I cannot find x!" << endl; } else { cout << t << endl; } } } } return 0; }
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
信息
- ID
- 514
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 8
- 已通过
- 1
- 上传者