最小生成树 BZOJ3714 [PA2014]Kuglarz
来源:互联网 发布:ae软件怎么用 编辑:程序博客网 时间:2024/06/07 06:10
3714: [PA2014]Kuglarz
Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 701 Solved: 394
[Submit][Status][Discuss]
Description
魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品。花费c_ij元,魔术师就会告诉你杯子i,i+1,…,j底下藏有球的总数的奇偶性。
采取最优的询问策略,你至少需要花费多少元,才能保证猜出哪些杯子底下藏着球?
Input
第一行一个整数n(1<=n<=2000)。
第i+1行(1<=i<=n)有n+1-i个整数,表示每一种询问所需的花费。其中c_ij(对区间[i,j]进行询问的费用,1<=i<=j<=n,1<=c_ij<=10^9)为第i+1行第j+1-i个数。
Output
输出一个整数,表示最少花费。
Sample Input
5
1 2 3 4 5
4 3 2 1
3 4 5
2 1
5
1 2 3 4 5
4 3 2 1
3 4 5
2 1
5
Sample Output
7
HINT
Source
鸣谢Jcvb
搞清点的数目!!!
不会写Prim的蒟蒻
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int n,cnt,tot; 7 long long ans; 8 int fa[2010]; 9 struct data{10 int x,y,dis;11 }edge[2000010];12 bool cmp(const data&aa,const data&bb){13 return aa.dis<bb.dis;14 }15 int find(int x){16 if(fa[x]==x) return x;17 return find(fa[x]);18 }19 int main(){20 scanf("%d",&n);21 int a=0;22 for(int i=1;i<=n;i++)23 for(int j=i;j<=n;j++){24 scanf("%d",&a);25 edge[++cnt].x=i-1;26 edge[cnt].y=j;27 edge[cnt].dis=a;28 }29 sort(edge+1,edge+cnt+1,cmp);30 for(int i=1;i<=n;i++) fa[i]=i;31 int f1=0,f2=0;32 for(int i=1;i<=cnt;i++){33 f1=find(edge[i].x);34 f2=find(edge[i].y);35 if(f1!=f2){36 ans+=(long long)edge[i].dis;37 tot++;38 fa[f1]=f2;39 }40 if(tot==n) break;41 }42 printf("%lld",ans);43 return 0;44 }
阅读全文
0 0
- 【bzoj3714】【PA2014】【Kuglarz】【最小生成树】
- 最小生成树 BZOJ3714 [PA2014]Kuglarz
- 【BZOJ3714】【PA2014】Kuglarz(最小生成树)
- 【bzoj3714: [PA2014]Kuglarz】转化 ---最小生成树
- bzoj3714【PA2014】Kuglarz
- 【PA2014】【BZOJ3714】Kuglarz
- BZOJ3714 [PA2014]Kuglarz
- BZOJ3714 [PA2014]Kuglarz
- bzoj3714: [PA2014]Kuglarz
- 【bzoj3714】[PA2014]Kuglarz
- bzoj3714 [PA2014]Kuglarz
- 【BZOJ3714】【PA2014】Kuglarz
- bzoj3714: [PA2014]Kuglarz
- BZOJ3714: [PA2014]Kuglarz
- 【BZOJ 3714】[PA2014]Kuglarz 最小生成树
- bzoj 3714: [PA2014]Kuglarz 最小生成树
- 【BZOJ】【P3714】【PA2014】【Kuglarz】【题解】【最小生成树】
- 3714: [PA2014]Kuglarz 思路题 最小生成树
- 动态规划 BZOJ1831 [AHOI2008]逆序对
- 动态规划 BZOJ3688 折线统计
- Dijkstra BZOJ2763 [JLOI2011]飞行路线
- 动态规划 BZOJ1296 [SCOI2009]粉刷匠
- 动态规划 BZOJ1710 [Usaco2007 Open]Cheappal 廉价回文
- 最小生成树 BZOJ3714 [PA2014]Kuglarz
- 最大生成树 BZOJ3943 [Usaco2015 Feb]SuperBull
- 二分图 BZOJ4554 [Tjoi2016&Heoi2016]游戏
- 树链剖分 BZOJ3589 动态树
- tarjan强连通分量 洛谷P1262 间谍网络
- 线性DP POJ2279 Mr.Young's Picture Permutations
- 线性DP POJ3666 Making the Grade
- 数位DP POJ3208 Apocalypse Someday
- 线性DP codevs2185 最长公共上升子序列