博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ3714:[PA2014]Kuglarz(最小生成树)
阅读量:7046 次
发布时间:2019-06-28

本文共 810 字,大约阅读时间需要 2 分钟。

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

Sample Output

7

Solution

若第$i$位的前缀和是$s[i]$,相当于要知道所有$s[i]-s[i-1]$的奇偶性。

每次询问$[i,j]$的奇偶性,就相当于知道了$s[j]-s[i-1]$的奇偶性,就$i-1$和$j$连边,当连成一个连通块时就可以知道所有位置的奇偶性。跑一遍最小生成树就好了。

Code

1 #include
2 #include
3 #include
4 #define N (2009) 5 using namespace std; 6 7 struct Node 8 { 9 int x,y,v;10 bool operator < (const Node &a) const11 {12 return v

转载于:https://www.cnblogs.com/refun/p/9887168.html

你可能感兴趣的文章
windows使用nginx实现网站负载均衡测试实例
查看>>
DotLiquid模板引擎简介
查看>>
5.Flask-Migrate
查看>>
c# 正则表代式的分组和批评模式 .
查看>>
编程之美-3.1-字符串移位包含的问题
查看>>
EPC是什么
查看>>
T-SQL查询进阶--数据集之间的运算
查看>>
【Vegas原创】Linux下unrar安装与配置
查看>>
HDOJ 2095(找出唯一的出现一次的数)
查看>>
java面试32问
查看>>
钟翔平:坚持走手机浏览器架构创新之路
查看>>
图片处理--浮雕特效
查看>>
chr() ord() 的用法
查看>>
C++对象模型简介(二)——深入底层,探索本质
查看>>
Nginx模块之————RTMP模块的FFmpeg的配置问题是FFmpeg的连续退出
查看>>
基本的RAID介绍
查看>>
服务信息块协议 SMB(Server Message Block protocol)
查看>>
QM、艾瑞力证ofo远甩摩拜稳居行业第一 数据与技术“双杀”
查看>>
重庆健全养老服务体系 2018年新增社区养老服务站200所
查看>>
2018年贵州各项存款增速回落明显 贷款增速居全国第一
查看>>