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

5
1 2 3 4 5
4 3 2 1
3 4 5
2 1
5

Sample Output

7

分析:我们要知道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相关推荐

  1. bzoj3714:[PA2014]Kuglarz

    Pre 神一样的\(MST\) Solution 考虑计算出(或者直接得出)\(sum[i]\)和\(sum[i-1]\)来得出其情况. 转化为得到每一个前缀和(奇或者偶)的值. 对于一个询问\(i\ ...

  2. bzoj 3714: [PA2014]Kuglarz

    3714: [PA2014]Kuglarz Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1151  Solved: 611 [Submit][St ...

  3. 【PA2014】【BZOJ3714】Kuglarz

    Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+ ...

  4. 【BZOJ3714】Kuglarz

    [题意] 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+1,-,j底下 ...

  5. 省选之前的未完成的计划(截至到省选)

    PLAN OF THE COMING HEOI good problems: -bzoj4823:[Cqoi2017]老C的方块 [*] -bzoj3171:[Tjoi2013]循环格 [*] -bz ...

  6. [暑假的bzoj刷水记录]

    (这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...

  7. bzoj3714【PA2014】Kuglarz

    3714: [PA2014]Kuglarz Time Limit: 20 Sec   Memory Limit: 128 MB Submit: 361   Solved: 219 [ Submit][ ...

  8. 清北学堂学习笔记 第一期

    Day 1 1.贪心的奇怪方法:调整法 调整法,顾名思义,就是用别的方式进行题目的分析以及证明,例如说luogu的最大乘积.这种题目的主要分析思路为:先考虑一些简单的情况,通过简单的情况来推出一些有用 ...

  9. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

  10. [颓废史]蒟蒻的刷题记录

    QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...

最新文章

  1. 地图样式自定义_干货在线 | ArcGIS中定义图框样式
  2. WinHEC(Windows硬件project产业创新峰会)将2015回归
  3. [机器学习笔记]Note8--机器学习应用建议
  4. 获取object的值
  5. 【英语学习】【English L06】U07 Jobs L2 I have my own bakery now
  6. BitMEX将于3月份分批推出DOT、YFI、UNI等六个币种的双币种永续合约
  7. Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心
  8. 前端开发:报错Error in created hook:”SyntaxError:Unexpected token u in JSON at position 0”…解决方法
  9. Kali linux 安装Ralink外置无线网卡
  10. HTML+JS+CSS实现幻灯片效果(附代码)
  11. jay chou歌词 文本下载数据下载
  12. 亲测可行ie8与ie11共存方法支持win7x64等
  13. 全国计算机二级很难得吗,全国计算机二级考试难吗?
  14. 浏览器兼容性笔记(转)
  15. miniUI实现指定行可编辑,其他行仍然只读
  16. 基于LRU-K算法设计本地缓存实现流量削峰
  17. 如何开发一款报表引擎(一) 框架梳理
  18. 114.使用SVG filter创建粘糊糊效果
  19. 一个能永久存储网页快照的网站
  20. 什么设备升级android9,三星设备安卓9.0升级路线图更新:共30款

热门文章

  1. 我必须得告诉大家的 MySQL 优化原理
  2. Google Instant Apps VS 微信小程序
  3. Android 下拉刷新库,这一个就够了!
  4. 2016 Android Top 10 Library
  5. Google中国要来啦
  6. 关于MYSQL ERROR1045 报错的解决办法
  7. 动态规划——硬币找零
  8. 数据库开发基础-教案-3-认识数据库备份和事务日志备份
  9. 【jQuery】jQuery操作input的聚焦与全选其内容
  10. 制作验证码使用到的函数