bzoj3714 [PA2014]Kuglarz
3714: [PA2014]Kuglarz
Time Limit: 20 Sec Memory Limit: 128 MB
Submit: 805 Solved: 447
[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
1 2 3 4 5
4 3 2 1
3 4 5
2 1
5
Sample Output
分析:我们要知道1到n个杯子中是否小球,必须要知道1~1,1~2...1~n个杯子中小球个数的奇偶性,事实上,对于每一次区间询问,我们知道了[l,r]的小球个数的奇偶性,也就是相当于从l-1转移到了r,也就是说如果我们知道了1~l-1的奇偶性,就能知道1~r的奇偶性,那么同样的反过来也是一样。我们从l-1到r连一条无向边,因为我们要知道1~1,1~2...1~n个杯子中小球个数的奇偶性,也就是这n个点被连通,我们只需要做一次最小生成树就好了.
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm>using namespace std;int n,cnt,fa[2010]; long long ans;struct node {int x, y, w; }e[2005000];bool cmp(node a, node b) {return a.w < b.w; }int find(int x) {if (x == fa[x])return x;return fa[x] = find(fa[x]); }int main() {scanf("%d", &n);for (int i = 1; i <= n; i++)for (int j = i; j <= n; j++){int t;scanf("%d", &t);e[++cnt].x = i - 1;e[cnt].y = j;e[cnt].w = t;}sort(e + 1, e + cnt + 1, cmp);for (int i = 1; i <= n; i++)fa[i] = i;for (int i = 1; i <= cnt; i++){int fx = find(e[i].x), fy = find(e[i].y);if (fx != fy){ans += e[i].w;fa[fx] = fy;}}printf("%lld\n", ans); return 0; }
转载于:https://www.cnblogs.com/zbtrs/p/7341804.html
bzoj3714 [PA2014]Kuglarz相关推荐
- bzoj3714:[PA2014]Kuglarz
Pre 神一样的\(MST\) Solution 考虑计算出(或者直接得出)\(sum[i]\)和\(sum[i-1]\)来得出其情况. 转化为得到每一个前缀和(奇或者偶)的值. 对于一个询问\(i\ ...
- bzoj 3714: [PA2014]Kuglarz
3714: [PA2014]Kuglarz Time Limit: 20 Sec Memory Limit: 128 MB Submit: 1151 Solved: 611 [Submit][St ...
- 【PA2014】【BZOJ3714】Kuglarz
Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+ ...
- 【BZOJ3714】Kuglarz
[题意] 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+1,-,j底下 ...
- 省选之前的未完成的计划(截至到省选)
PLAN OF THE COMING HEOI good problems: -bzoj4823:[Cqoi2017]老C的方块 [*] -bzoj3171:[Tjoi2013]循环格 [*] -bz ...
- [暑假的bzoj刷水记录]
(这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊 堆一起算了 隔一段更新一下. 7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...
- bzoj3714【PA2014】Kuglarz
3714: [PA2014]Kuglarz Time Limit: 20 Sec Memory Limit: 128 MB Submit: 361 Solved: 219 [ Submit][ ...
- 清北学堂学习笔记 第一期
Day 1 1.贪心的奇怪方法:调整法 调整法,顾名思义,就是用别的方式进行题目的分析以及证明,例如说luogu的最大乘积.这种题目的主要分析思路为:先考虑一些简单的情况,通过简单的情况来推出一些有用 ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
最新文章
- 地图样式自定义_干货在线 | ArcGIS中定义图框样式
- WinHEC(Windows硬件project产业创新峰会)将2015回归
- [机器学习笔记]Note8--机器学习应用建议
- 获取object的值
- 【英语学习】【English L06】U07 Jobs L2 I have my own bakery now
- BitMEX将于3月份分批推出DOT、YFI、UNI等六个币种的双币种永续合约
- Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心
- 前端开发:报错Error in created hook:”SyntaxError:Unexpected token u in JSON at position 0”…解决方法
- Kali linux 安装Ralink外置无线网卡
- HTML+JS+CSS实现幻灯片效果(附代码)
- jay chou歌词 文本下载数据下载
- 亲测可行ie8与ie11共存方法支持win7x64等
- 全国计算机二级很难得吗,全国计算机二级考试难吗?
- 浏览器兼容性笔记(转)
- miniUI实现指定行可编辑,其他行仍然只读
- 基于LRU-K算法设计本地缓存实现流量削峰
- 如何开发一款报表引擎(一) 框架梳理
- 114.使用SVG filter创建粘糊糊效果
- 一个能永久存储网页快照的网站
- 什么设备升级android9,三星设备安卓9.0升级路线图更新:共30款