关于梦熊T11
  • 板块题目总版
  • 楼主rhineofts
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/23 21:52
  • 上次更新2023/11/2 18:25:44
查看原帖
关于梦熊T11
775179
rhineofts楼主2023/9/23 21:52

RT。我在做出不重复的 10510^5 范围的 T9 后:

cin >> n >> x;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a, a + n);
    if (a[0] + a[n - 1] > x) {
        cout << "0\n";
        return 0; 
    }
    LL t = 0;
    for (int i = 0; i < n - 1; i++) {
        if (a[i] + a[n - 1] > x) {
            t = i;
            break;
        }
    }
    if (t == 0) {
        cout << fac(n) << '\n';
        return 0;
    }
    cout << (2LL * t * fac(n - 2) % mod + t * (t - 1) % mod * fac(n - 2) % mod) % mod;
    return 0;

猜了个结论,即 T11 结论为 ansfac(m)\displaystyle{\frac{ans}{fac(m)}},其中 ansans 为 T9 的解,mm 为最大数的次数,fac 是阶乘。提交后获得了 50pts50pts。但当时由于过于匆忙,我是直接除的,没有写逆元。请问各位大佬这个结论是否正确,如果是,怎么证明?

2023/9/23 21:52
加载中...