題意:
題解:
感覺挺妙的。
對於任意矩陣都有 1*1 - 1*2 - 2*1 + 2*2 = 1。我們用這個來做容斥就好了。
對於每個點被覆蓋的次數,可以用單調佇列。
#include
using
namespace
std;
typedef
long
long ll;
const
int n=2e3+50, mod=998244353;
inline
int add(int x,int y)
inline
int dec(int x,int y)
inline
int mul(int x,int y)
inline
int power(int a,int b,int rs=1)
char mp[n][n];
int n,m,k,ans;
int s0[n][n],s1[n][n],s2[n][n],s3[n][n];
ll ss[n][n];
template
inline
void revx(t a[n])
template
inline
void revy(t a[n])
inline
void solve(int *h,int *s)
}inline
void solve(char o[n],int s[n])
inline
int calc_sum(ll rs=0)
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) ss[i][j]=0;
return rs%mod;
}int main()
ans=add(ans,calc_sum());
memset(ss,0,sizeof(ss));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans=dec(ans,calc_sum());
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans=dec(ans,calc_sum());
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans=add(ans,calc_sum());
cout
}
雅禮國慶集訓
灑落君臣契,飛騰戰伐名。杜甫 公安縣懷古 noip 前的乙個月。這浸滿熱血的虔信,真的會化作墓碑嗎?或許明日我們不再是戰友,但人生終將有無數個此時。define f z,u,v for int z u des z v z des z z struct bnd struct tup template ...
雅禮集訓 2017 價
傳送門 乙個不太顯然的最小割做法。我們這麼連邊 源點向藥物連 infty p i 容量的邊,藥物向它對應的藥材連 infty 容量的邊,藥材向匯點連 infty 容量的邊。用源點的流量減去最小割,再負回來就可以求出答案了。怎麼理解呢?割掉一條邊表示不選其對應的藥物或藥材,我們發現最後的方案一定是完美...
雅禮集訓Day4
今天炸的1p。t1,給你100次詢問,每次l,r,選 l,r 中的若干數進行異或,求有多少種結果,1 l r 1e18.做法 暴力很顯然是將l,r這些數加入線性基,然後算一下線性基里有多少個數。我們可以考慮線性基的每一位最早在多久被加入。這個就可以看l了,它二進位制的最高位很顯然是一開始就加入線性基...