mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-12-17 04:33:02 +00:00
feat: 添加P9980题解实现
实现P9980题目的解法,包括输入处理和矩阵运算逻辑。使用动态规划思想计算相邻节点关系,最终输出结果。
This commit is contained in:
parent
9eba3f859a
commit
c0d1a2f156
39
src/9/29/P9980.cpp
Normal file
39
src/9/29/P9980.cpp
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#include <cstdint>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <iostream>
|
||||||
|
#include <istream>
|
||||||
|
using ll = int64_t;
|
||||||
|
|
||||||
|
const ll maxn = 750+5;
|
||||||
|
ll n;
|
||||||
|
bool b[maxn][maxn],z[maxn][maxn];
|
||||||
|
char tmp;
|
||||||
|
ll ans;
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
std::iostream::sync_with_stdio(false);
|
||||||
|
std::cin.tie(nullptr);
|
||||||
|
|
||||||
|
std::cin>>n;
|
||||||
|
for(ll i=1;i<n;i++){
|
||||||
|
for(ll j=i+1;j<=n;j++){
|
||||||
|
std::cin>>tmp;
|
||||||
|
b[i][j]=tmp-'0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(ll i=1;i<n;i++){
|
||||||
|
ans+=b[i][i+1];
|
||||||
|
z[i][i+1]=b[i][i+1];
|
||||||
|
}
|
||||||
|
for(ll i=1;i<=n-2;i++){
|
||||||
|
for(ll j=i+2;j<=n;j++){
|
||||||
|
bool zn=false;
|
||||||
|
for(ll k=i+1;k<j;k++){
|
||||||
|
zn^=z[i][k];
|
||||||
|
z[i][j]=zn^z[k][j];
|
||||||
|
ans+=z[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
std::cout<<ans<<"\n";
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user