QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#585553#9376. Gamecjl000WA 0ms3640kbC++231.6kb2024-09-23 21:13:102024-09-23 21:13:11

Judging History

你现在查看的是最新测评结果

  • [2024-09-23 21:13:11]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3640kb
  • [2024-09-23 21:13:10]
  • 提交

answer

#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
#include<math.h>
#include<string.h>
#include<deque>
#include<string>
#include<queue>
#include<cstring>
#include<string>
#include<numeric>
#include<bitset>
#include<array>
#include<stack>
using namespace std;
#define lowbit(x) x & ( -x )
#define endl '\n'
#define itn long long
#define int long long
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define ull unsigned long long
#define bug cout<<"bug"<<endl;
//const int p = 131;
const ull  hx = 13331;
int dx[6] = { 0,1,0,-1 };
int dy[6] = { 1,0,-1,0 };
const int N = 200003;
const int mod = 998244353;
int ksm(int a, int p)
{
    int t = 1, tt = a % mod;
    while (p)
    {
        if (p & 1)t = t * tt % mod;
        tt = tt * tt % mod;
        p >>= 1;
    }
    return t;
}
int dfs(int a, int b, int x, int y)
{
    if (x > y)
    {
        return (1 - dfs(b, a, y, x)%mod + mod) % mod;
    }
    int res = ksm(a, (y + x - 1) / x);
    if (y % x)
    {
        res += dfs(a, b, x - y % x, y % x) * b & ksm(a, y / x);
    }
    return res;
}
int x, y, a, b, sum;
void tt()
{
    //快速幂 fz*ksm(fm,mod-2)
    //求完逆元后的数可以相乘取得新的分数
    // 

    cin >> x >> y >> a >> b >> sum;
    sum = a + b;
    a = a * ksm(sum, mod - 2) % mod, b = b * ksm(sum, mod - 2) % mod;
    cout << dfs(a, b, x, y) << endl;
}
signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--) {
        tt();
    }
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3640kb

input:

3
1 1
2 2 6
1 3
2 3 6
3 4
7 3 15

output:

499122177
910398850
755934165

result:

wrong answer 3rd lines differ - expected: '220911476', found: '755934165'