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 //It is made by Awson on 2017.10.15
 2 #include <set>
 3 #include <map>
 4 #include <cmath>
 5 #include <ctime>
 6 #include <cmath>
 7 #include <stack>
 8 #include <queue>
 9 #include <vector>
10 #include <string>
11 #include <cstdio>
12 #include <cstdlib>
13 #include <cstring>
14 #include <iostream>
15 #include <algorithm>
16 #define LL long long
17 #define Min(a, b) ((a) < (b) ? (a) : (b))
18 #define Max(a, b) ((a) > (b) ? (a) : (b))
19 #define sqr(x) ((x)*(x))
20 using namespace std;
21 const int N = 2000;
22 const int INF = ~0u>>1;
23
24 int n, mp[N+5][N+5];
25 int dist[N+5];
26 bool vis[N+5];
27
28 LL Prim() {
29     LL ans = 0;
30     for (int i = 1; i <= n; i++) dist[i] = mp[1][i];
31     vis[1] = 1;
32     for (int t = 1; t < n; t++) {
33         int loc, minn = INF;
34         for (int i = 1; i <= n; i++) if (!vis[i] && dist[i] < minn) {
35             minn = dist[i], loc = i;
36         }
37         ans += minn; vis[loc] = 1;
38         for (int i = 1; i <= n; i++) dist[i] = Min(dist[i], mp[loc][i]);
39     }
40     return ans;
41 }
42 void work() {
43     scanf("%d", &n); n++;
44     for (int i = 1; i < n; i++) for (int j = i+1; j <= n; j++) scanf("%d", &mp[i][j]), mp[j][i] = mp[i][j];
45     printf("%lld\n", Prim());
46 }
47 int main() {
48     work();
49     return 0;
50 }

转载于:https://www.cnblogs.com/NaVi-Awson/p/7670872.html

[PA 2014]Kuglarz相关推荐

  1. 2014九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试题

    九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题 题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9.10月份陪伴了至少三届毕业生找工作的旅 ...

  2. 2014 360校园招聘技术类笔试题

    接下来的面试题传送门: 2014 360校园招聘技术类面试题 选择题 小毕最近电脑很慢,怀疑是中了病毒,于是找了三款杀毒软件扫描了一下: A软件扫描结果:如果中了病毒X,那么也可能中了病毒Y B软件扫 ...

  3. 【机试题】2014大疆嵌入式笔试题(附超详细解答,下篇)

    上一篇主要是对<2014大疆嵌入式笔试题>的前一部分进行了解答,本文主要是对接下来的几道题进行解答.想要参考上一篇的点击链接:[机试题]2014大疆嵌入式笔试题(附超详细解答,上篇). 嵌 ...

  4. 西工大计算机考研机试题练习(2019年-2014年)

    nwpu复试上机题练习 2019年 1.排序@@ #include "iostream" #include "set" using namespace std; ...

  5. 倍加福耦合器KFD2-BR-1.PA.1500

    倍加福耦合器KFD2-BR-1.PA.1500 基本段耦合器 KFD2-BR-1.PA.1500 输出:24 - 26 V/400 mA 将 PROFIBUS PA 设备透明地耦合到 PROFIBUS ...

  6. 2014华为武汉上机试题一:手机电池余量

     1. 手机电池余量  描述: 自从有了智能手机,时刻都要关心手机的电量.你的任务很简单,用程序打印符号来表示当前手机的电量. 用10行和10列来表示电池的电量,同时在外围加上边框,每一行表示10 ...

  7. 2014迅雷校园招聘(C++)(笔试题(四)

    迅雷2014校园招聘笔试题 转载请标明出处,原文地址:http://www.mianwww.com/html/2013/10/19169.html 温馨提示:客观题和主观题得分都要超过一定标准,才能获 ...

  8. 暴风影音2014校园招聘笔试题目-技术D卷

    /*暴风影音2014校园招聘笔试题目-技术D卷.6. m*n的网格从左上角A点走到右下角B点,每次可走一格,只能往右或下走.输出有多少种走法和所有路线数. */ #include <cstrin ...

  9. CC2530 CC2592 PA 功率最大

    CC2530 CC2592 PA LNA HGM增强信号 以及总结 PA 功率放大器 一般使能用于发送端,使发送功率放大 LNA 低噪音放大器 一般使能用于接收端 ,因为在放大微弱信号的场合,放大器自 ...

最新文章

  1. mysql根据字段长度查询_SQL语句如何查询某一字符串字段长度等于某个值的所有记录...
  2. 增强我们的Visual Studio(更新中)
  3. ORA-00257: archiver error
  4. wxWidgets:日志概述
  5. 项目--properties--Builder;MyEclipse---project---clean---指定项目
  6. Asp.net中实现同一用户名同时登陆,注销先前用户(转)
  7. GCC 命令选项使用详解
  8. 位运算java_Java中的位运算
  9. 史上最全企业数据产品选型对比(含数仓、报表、BI、中台、数据治理)
  10. html表单与python交互,HTML表单不能与python一起使用
  11. Java运行机制和运行过程基础知识
  12. springBoot操作数据库方式
  13. 【机械仿真】基于matlab GUI智能电梯仿真系统【含Matlab源码 1087期】
  14. Fruits 360(水果数据集)
  15. 面试题53:vue数据的双向绑定原理(如何实现vue的双向绑定)
  16. 5款伊思儷超媒體繁体游戏 简体中文补丁
  17. 笔记本电脑 编程_如何选择笔记本电脑进行编程
  18. 用H5新特性canvas绘制一个钟表
  19. Linux 中的内存管理单元MMU
  20. 《数据结构与算法》之课程实验

热门文章

  1. .net的label的背景如何设置成为透明_css如何设置背景图片?background属性添加背景图片...
  2. linux开发板作为蓝牙音箱,USB 蓝牙适配器在ARM 开发板下的使用
  3. java agent 监控tomcat_promethues监控tomcat
  4. axis=0 与axis=1 的区分
  5. 论文阅读 - Group Normalization
  6. LeetCode 723. 粉碎糖果(模拟)
  7. 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)
  8. LeetCode 1266. 访问所有点的最小时间(数学)
  9. python输入十个数输出最大值_python输入十个数如何输出最大值
  10. R语言第五讲 之R语言 变量