3714: [PA2014]Kuglarz 思路题 最小生成树
来源:互联网 发布:淘宝3c认证编号 编辑:程序博客网 时间:2024/06/01 08:41
Orzzzzzzzzzzzzzzzzzzzzzz
Orzzzzzzzzzzzzzzzzzzzzzz
感觉已经长跪不起了。此题的作法十分巧妙啊(貌似还是我太弱啦QAQ)。
如果我们把无球看做0, 把有球看做1,那么也就是给你一个0/1序列,每次可以花C[i][j]来得到[i..j]的和,即sum[j]-sum[i-1],我们最后要知道每个点的值,也就是要知道每一个sum[i]-sum[i-1],如果把sum[i]看做点,把C[i][j]看做边,那么我们要求的问题也就是一个最小生成树啦。
#include<bits/stdc++.h>#define ll long long using namespace std;int n,cnt,tot;ll ans;int f[2005];struct node {int x,y,z;} e[4000005];inline int read(){ int a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f;}inline bool cmp(node a,node b){ return a.z<b.z;}int find(int x){ return f[x]==x?x:f[x]=find(f[x]);}int main(){ n=read(); for (int i=0;i<=n;i++) f[i]=i; for (int i=1;i<=n;i++) for (int j=i;j<=n;j++) e[++cnt].x=i-1,e[cnt].y=j,e[cnt].z=read(); sort(e+1,e+cnt+1,cmp); for (int i=1;i<=cnt;i++) { int p=find(e[i].x),q=find(e[i].y); if (p!=q) { f[p]=q; ans+=e[i].z; if (++tot==n) break; } } cout << ans;}
0 0
- 3714: [PA2014]Kuglarz 思路题 最小生成树
- 【BZOJ 3714】[PA2014]Kuglarz 最小生成树
- bzoj 3714: [PA2014]Kuglarz 最小生成树
- 【bzoj3714】【PA2014】【Kuglarz】【最小生成树】
- 最小生成树 BZOJ3714 [PA2014]Kuglarz
- 【BZOJ3714】【PA2014】Kuglarz(最小生成树)
- 【bzoj3714: [PA2014]Kuglarz】转化 ---最小生成树
- 3714: [PA2014]Kuglarz|贪心|思路题
- 【BZOJ】【P3714】【PA2014】【Kuglarz】【题解】【最小生成树】
- 【BZOJ 3714】 [PA2014]Kuglarz
- 3714: [PA2014]Kuglarz
- 3714: [PA2014]Kuglarz
- 3714: [PA2014]Kuglarz
- BZOJ 3714 [PA2014]Kuglarz
- BZOJ 3714 PA2014 Kuglarz Kruskal
- BZOJ 3714: [PA2014]Kuglarz kruskal
- BZOJ 3714 [PA2014]Kuglarz Kruskal
- [bzoj-3714][PA2014]Kuglarz 题解
- 3D打印模型打磨、上色和拼接
- 802.11 a/b/g/n/ac 是什么以及它们有什么区别
- 程序员的成长和代码行数的关系
- bzoj3998 弦论
- R 语言绘图006-绘图参数设置函数par()详解
- 3714: [PA2014]Kuglarz 思路题 最小生成树
- mysql数据库还原出错ERROR:Unknown command ‘\\’解决手记
- 使用spring mvc 设置方法定时执行
- 大数据分析技术生态圈一览
- css导入
- mysql 完整性约束
- error C2664: “CButton::Create”: 不能将参数 1 从“const char [1]”转换为“LPCTSTR
- intellij idea 添加动态 user library(java.lang.VerifyError)
- 导入第三方细节