呜呜呜呜 为啥会t
查看原帖
呜呜呜呜 为啥会t
559177
cai_dog楼主2022/5/27 16:46
#include<bits/stdc++.h>
using namespace std;


#define rep(i,a,n) for (int i=a;i<=n;i++)
#define per(i,a,n) for (int i=n;i>=a;i--)
#define all(x) (x).begin(),(x).end()
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
#define fi first 
#define se second
#define heap priority_queue  
#define endl '\n'
#define pb push_back
const ll INF = 0x3f3f3f3f3f3f3f3f;
const int inf = 0x3f3f3f3f;
const int mod =  998244353;
 
const int N = 1100;
const int M = N*N;
struct node
{
    int a,b,t;
    bool operator<(const node& b ) const{
        return this -> t < b.t;
    }
};

vector<node> a;
ll f[N];
int  qmi (int a,int b = mod -2 , int p = mod)
{
    int ans = 1;
    for (;b;b>>=1)
    {
        if (b&1) ans = (ll) ans *a%p;
        a = (ll )a*a%p;
    }
    return ans ;
}
int inv[M+10];

int main()
{

    int n,m;cin >> n >> m;
    a.resize(M);
    int idx = 0;
    rep(i,1,n) rep(j,1,m)
    {
        int b;
        scanf("%d",&b);
        a[idx++] = {i,j,b};
    }
    pii ans ;
    cin >> ans.fi >> ans.se;

    inv[1] = 1; 
    rep(i,2,M)
    {
        int p = mod;
        inv[i] = (ll)(p- p/i)*inv[p%i]%p;
    }
    sort(a.begin(), a.begin() + idx) ;
    int sz = idx;

    ll sumx2 = 0,sumy2=0,sumx = 0,sumy =  0  ;


    int j ;
    for (int i = 0;i < sz ;i = j )
    {
        j = i;
        while (j < sz && a[i].t == a[j].t ) j++;

        for (int k = i;k<j;k ++ )
        {
            ll  x = a[k].a , y =a[k].b;
            f[k] = ((ll) sumx2 + x*x%mod*i%mod + 
                sumy2 + y*y*i%mod - 2*sumx*x%mod - 2*sumy*y%mod + mod)%mod;
            
            f[k] = (f[k] + f[i-1])%mod;
            f[k] = f[k]*inv[i]%mod;
            
            if (x == ans.fi && y == ans.se )
            {   
                cout<<f[k] <<endl;
                return 0;
            }

        }

        for (int k = i;k< j;k ++ )
        {
            ll  x = a[k].a , y =a[k].b;
            sumx2 += x*x;sumx2%= mod;
            sumy2 += y*y;sumy2%=mod;
            sumx += x;sumx%=mod;
            sumy += y;sumy%=mod;
            f[k] += f[k-1];
            f[k]%= mod;
        }
    }
    return 0;
}
2022/5/27 16:46
加载中...