bzoj 3943: [Usaco2015 Feb]SuperBull 最大生成树
来源:互联网 发布:excel 导入 数据库 编辑:程序博客网 时间:2024/06/06 15:04
题意
贝西和她的朋友们在参加一年一度的“犇”(足)球锦标赛。FJ的任务是让这场锦标赛尽可能地好看。一共有N支球队参加这场比赛,每支球队都有一个特有的取值在1-230-1之间的整数编号(即:所有球队编号各不相同)。“犇”锦标赛是一个淘汰赛制的比赛——每场比赛过后,FJ选择一支球队淘汰,淘汰了的球队将不能再参加比赛。锦标赛在只有一支球队留下的时候就结束了。FJ发现了一个神奇的规律:在任意一场比赛中,这场比赛的得分是参加比赛两队的编号的异或(Xor)值。例如:编号为12的队伍和编号为20的队伍之间的比赛的得分是24分,因为 12(01100) Xor 20(10100) = 24(11000)。FJ相信比赛的得分越高,比赛就越好看,因此,他希望安排一个比赛顺序,使得所有比赛的得分和最高。请帮助FJ决定比赛的顺序
n<=2000
分析
显然最大生成树即使答案。
代码
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int N=2005;int n,a[N],dis[N],vis[N];int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) dis[i]=a[i]^a[1],dis[1]=max(dis[1],dis[i]); LL ans=0;vis[1]=1; for (int i=1;i<n;i++) { int mx=-1,x; for (int j=1;j<=n;j++) if (!vis[j]&&dis[j]>mx) mx=dis[j],x=j; ans+=mx;vis[x]=1; for (int j=1;j<=n;j++) if (!vis[j]) dis[j]=max(dis[j],a[x]^a[j]); } printf("%lld",ans); return 0;}
阅读全文
0 0
- [最大生成树] BZOJ 3943 [Usaco2015 Feb]SuperBull
- bzoj 3943: [Usaco2015 Feb]SuperBull 最大生成树
- 3943: [Usaco2015 Feb]SuperBull|最大生成树
- 【bzoj3943】 [Usaco2015 Feb]SuperBull 最大生成树
- 【bzoj3943】【Usaco2015 Feb】SuperBull【最大生成树】
- 最大生成树 BZOJ3943 [Usaco2015 Feb]SuperBull
- BZOJ 3943 [Usaco2015 Feb]SuperBull
- bzoj 3943: [Usaco2015 Feb]SuperBull
- 【BZOJ3943】【Usaco2015 Feb】SuperBull 最大生成树 Prim
- BZOJ 3943 Usaco2015 Feb SuperBull Prim
- BZOJ 3943 Usaco2015 Feb SuperBull Prim
- (bzoj 3943 [Usaco2015 Feb]SuperBull)<>
- bzoj3943【Usaco2015 Feb】SuperBull
- bzoj3943: [Usaco2015 Feb]SuperBull
- 【Usaco2015 Feb】【BZOJ3943】SuperBull
- bzoj3943[Usaco2015 Feb]SuperBull
- BZOJ3943: [Usaco2015 Feb]SuperBull
- BZOJ 3940 [Usaco2015 Feb]Censoring
- Java中Stack的用法
- trouble writing output: Too many method references: 90356; max is 65536. You may try using --multi-d
- https://services.gradle.org/distributions/gradle-2.14.1-all.zip
- Kotlin来源
- js 获取url请求参数
- bzoj 3943: [Usaco2015 Feb]SuperBull 最大生成树
- Python-learning Day04
- 查找文件的类 struct _finddata_t结构体用法
- POJ 1236 Network of Schools(tarjan缩点)
- oracle sequences 时间加序列的主键怎样取?
- Hibernate之多表查询
- c#命名
- assets与raw
- 腾讯云首推私有云存储,意欲抢占更多用户市场