总算是撑到了最后一天,本以为题今天会好点,结果又自闭了。。。。。
A Aqours
unsolved
B 玖凛两开花
unsolved
C 御坂妹妹
unsolved
D 吉良吉影的奇妙计划
unsolved
E Souls-like Game
unsolved
F 地球上最漫长的一天
unsolved
G 穗乃果的考试
这就是个傻*******题啊,艹艹艹艹艹艹
这个公式
$$
\sum_^i*f(i)
$$
就是这个公式,一开始我以为算出每个 **f(i)** 就好,结果就没跳出这个坑,啊啊啊啊啊啊啊!!!!!!
后来仔细想一下,f(i) 是有 i 个1的子矩阵的个数,所以 i f(i)
就是每个子矩阵的每个 1 都对答案有 1 的贡献,所以每个 1 每在一个子矩阵里,答案就加一。
所以最后就算每个 1 在几个子矩阵里,然后相加就好了。
至于 1 在几个子矩阵里怎么算。。。用力想一下就好了啊,总公式就是
i*(n-i+1)*j*(m-j+1) 。
还好多想了想,不然就爆零了
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2005,M=998244353;
//int a[N];
char a[N][N];
int main()
{
ios::sync_with_stdio(false);
ll n,m;
cin>>n>>m;
for(ll i=1;i<=n;i++)
{
for(ll j=1;j<=m;j++)
cin>>a[i][j];
}
ll ans=0;
for(ll i=1;i<=n;i++)
{
for(ll j=1;j<=m;j++)
{
if(a[i][j]=='1'){
ans+=(ll)(i*(n-i+1)%M)*(j*(m-j+1)%M);
ans%=M;
}
}
}
cout<<ans%M<<endl;
}
H 二人的白皇
unsolved
I 岸边露伴的人生经验
unsolved
J 去音乐会
unsolved