BZOJ3714: [PA2014]Kuglarz
BZOJ3714: [PA2014]Kuglarz
https://lydsy.com/JudgeOnline/problem.php?id=3714
分析:
- 询问l∼r转化成l−1和r。
- 新加一个0,把询问看成连边就是要求一棵最小生成树。
- prim即可
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <set>
#include <vector>
#include <cmath>
using namespace std;
#define N 2050
typedef long long ll;
int n,a[N][N];
char buf[100000],*p1,*p2;
int dis[N],vis[N];
ll ans;
#define nc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
int rd() {
int x=0; char s=nc();
while(s<'0') s=nc();
while(s>='0') x=(((x<<2)+x)<<1)+s-'0',s=nc();
return x;
}
int main() {
n=rd();
int i,j;
for(i=1;i<=n;i++) {
for(j=i;j<=n;j++) {
a[i-1][j]=rd(); a[j][i-1]=a[i-1][j];
}
dis[i]=0x3f3f3f3f;
}
int x=0,nxt=0;
vis[0]=1;
for(i=1;i<=n;i++) {
nxt=0;
for(j=1;j<=n;j++) {
if(!vis[j]) {
dis[j]=min(dis[j],a[x][j]);
if((!nxt)||dis[j]<dis[nxt]) nxt=j;
}
}
x=nxt; ans+=dis[x]; vis[x]=1;
}
printf("%lld\n",ans);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术