mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-10-17 21:42:25 +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