BZOJ3714 PA2014 Kuglarz 最小生成树
题意:有$N$个盒子,每个盒子中有$0$或$1$个球。现在你可以花费$c_{i,j}$的代价获得$i$到$j$的盒子中球的总数的奇偶性,求最少需要多少代价才能知道哪些盒子中有球。$N \leq 2000 , 1 \leq c \leq 10^9$
初赛凉了,乖乖回来更以前没写的blog qwq
设$s_i$为盒子中球数的前缀和$(s_0 = 0)$,那么我们花费$c_{i,j}$就是得到$s_{i-1}$与$s_j$的关系,而我们知道$s_i,s_j$与$s_j,s_k$的关系之后,就能知道$s_i$与$s_k$的关系。我们可以考虑使用并查集维护这个关系,然后:咦这不就是$Kruskal$吗?然后跑遍最小生成树就出来了
反正我是有生之年不会想到这道题和最小生成树相关的了QuQ
还有Prim用堆优化真心卵用没有
#include<bits/stdc++.h>
#define MAXN 2001
using namespace std;
inline int read(){
;
;
char c;
fread(&c , , stdin);
while(!isdigit(c)){
if(c == '-')
f = ;
fread(&c , , stdin);
}
while(isdigit(c)){
a = (a << ) + (a << ) + (c ^ ');
fread(&c , , stdin);
}
return f ? -a : a;
}
int Edge[MAXN][MAXN];
bool vis[MAXN];
priority_queue < pair < int , int > > q;
int main(){
;
int N = read();
; i <= N ; i++)
for(int j = i ; j <= N ; j++)
Edge[i - ][j] = Edge[j][i - ] = read();
q.push(make_pair( , ));
while(!q.empty()){
int t = q.top().second;
if(vis[t]){
q.pop();
continue;
}
ans += -q.top().first;
vis[t] = ;
q.pop();
; i <= N ; i++)
if(!vis[i])
q.push(make_pair(-Edge[t][i] , i));
}
cout << ans;
;
}
BZOJ3714 PA2014 Kuglarz 最小生成树的更多相关文章
- 【BZOJ3714】[PA2014]Kuglarz 最小生成树
[BZOJ3714][PA2014]Kuglarz Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获 ...
- bzoj3714: [PA2014]Kuglarz
[PA2014]KuglarzTime Limit: 20 Sec Memory Limit: 128 MBSubmit: 553 Solved: 317[Submit][Status][Discus ...
- bzoj 3714 [PA2014]Kuglarz 最小生成树
[PA2014]Kuglarz Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1335 Solved: 672[Submit][Status][Di ...
- BZOJ3714 [PA2014]Kuglarz 【最小生成树】
题目链接 BZOJ3714 题解 我们如果知道了所有的数,同样就知道了所有的前缀和 相反,我们如果求出了所有前缀和,就知道了所有的数,二者是等价的 对于一个区间\([l,r]\)如果我们知道了前缀和\ ...
- [bzoj3714] [PA2014] Kuglarz(最小生成树)
我们考虑这个题...思路比较神仙. 就是我们设\(sum[i]\)为前i个的区间里的情况,然后我们知道\(sum[j]\)的话,我们就可以知道\(j-i\)的情况了 所以说这很像最小生成树里面的约束条 ...
- 【kruscal】【最小生成树】【并查集扩展】bzoj3714 [PA2014]Kuglarz
ORZ:http://www.cnblogs.com/zrts/p/bzoj3714.html #include<cstdio> #include<algorithm> usi ...
- [BZOJ3714][PA2014]Kuglarz(MST)
题目: Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子 ...
- 【BZOJ3714】Kuglarz(最小生成树)
[BZOJ3714]Kuglarz(最小生成树) 题面 BZOJ Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯 ...
- [PA2014]Kuglarz
[PA2014]Kuglarz 题目大意: 有一个长度为\(n(n\le2000)\)的0/1串,你可以花\(c_{i,j}\)的钱,询问区间\([i,j]\)的异或和.问至少要多少元才能知道原来的序 ...
随机推荐
- ionic3用极光推送笔记
安卓 环境:ionic3 + 极光 "jpush-phonegap-plugin": "^3.4.3" "cordova-plugin-jcore& ...
- pip install 报错
问题描述,在使用pip安装django相关软件包时,提示错误如下: [root@test4 install]# pip install django==1.6 Downloading/unpackin ...
- 常用的docker命令
在这里记一下,以免以后忘记了. ------------------------------------------------------------------------------------ ...
- maven——依赖管理
管理包依赖是 Maven 核心功能之一,下面通过如何引入 jar 包:如何解析 jar 包依赖:包冲突是如何产生:如何解决包冲突:依赖管理解决什么问题:什么是依赖范围:使用包依赖的最佳实践等 6 个问 ...
- python第七十六天--堡垒机完成
堡垒机windows ,linux 都通过测试初始化说明: #进入根目录 1.初始化表结构 #python3 bin/start.py syncdb 2.创建堡垒机用户 #python3 bin/st ...
- CSS| 框模型-定位及相關屬性
CSS 定位 (Positioning) 属性允许你对元素进行定位. CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多 ...
- Django电商项目---完成用户中心(订单中心+收货地址)day7
完成用户中心(收货地址) df_user/views.py df_user/urls.py templates/df_user/user_center_site.html 界面显示 完成用户中心(全部 ...
- 什么是Docker?
概观 Docker是推动集装箱运动的公司,也是唯一一家能够解决混合云中的每个应用的集装箱平台提供商.当今的企业面临数字化转型的压力,但受到现有应用程序和基础架构的制约,同时合理化日益多样化的云,数 ...
- Linux 小知识翻译 - 「小型移动式PC」
这次介绍下新闻上提到的「小型移动式PC」.(这个当时日本新闻上的内容) 最近,经常在日本的大卖场中看到一种小型的移动式PC.不仅是小巧方便携带,而且价格也便宜.而且,省电功能的加入,使电池能工作更长的 ...
- SAP CRM 忠诚度相关表的关系图
这是一张有关会员,积分,活动等内容的相关表的关系图,对相关的开发工作会有帮助. 原文标题:Table schema for managing customer loyality 本文链接:http:/ ...