题意:n<=2000的盒子,有一些里面有球,再给你所有c[i][j](1<=i<=j<=n),即告诉你【i,j】里面球的总数的奇偶性需要花费c[i][j],现在求知道所有的盒子的状态需要最少花费为多少。。

思路:PA系列的题目确实不错。

思路比较有意思但是不难。

如果知道i,j之间任意两点间的关系以及任意一个盒子的状态,那么很显然i,j之间的所有盒子状态都可以推出来。。那么怎么表示关系呢?

很容易想到有关系就连一条边,那么就是求[1, n]之间的所有点有关系的最小花费吗?那不就是最小生成树吗?

具体实现的话在i<->j+1连一条C[i][j]的边,求1->n+1的最小生成树。。

code:

 #include <bits/stdc++.h>
using namespace std;
#define Inf 0x3fffffff
#define repf(i, a, b) for (int i = (a); i <= (b); ++i)
const int maxn = ;
int c[maxn][maxn], d[maxn], vis[maxn];
int n;
long long mst; inline void read(int& ret){
ret = ;
bool ok = ;
for( ; ;){
int c = getchar();
if (c >= '' && c <= '') ret = (ret << ) + (ret << ) + c - '', ok = ;
else if (ok) return;
}
} void prim(){
mst = ;
memset(vis, , sizeof(vis));
repf(i, , n+) d[i] = c[][i];
vis[] = ;
repf(i, , n){
int k = , mdis = Inf;
repf(j, , n+) if (!vis[j] && d[j] < mdis)
k = j, mdis = d[j];
vis[k] = ;
mst += mdis;
repf(j, , n+) if (!vis[j])
d[j] = min(c[k][j], d[j]);
}
} int main(){
// freopen("a.in", "r", stdin);
while (scanf("%d", &n) != EOF){
repf(i, , n) repf(j, i+, n+){
read(c[i][j]);
c[j][i] = c[i][j];
}
prim();
cout << mst << endl;
}
}

bzoj 3714的更多相关文章

  1. bzoj 3714 [PA2014]Kuglarz——思路+最小生成树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3714 如果用s[ i ]表示前 i 个的奇偶性,那么c(i_j)表示s[ i-1 ]^s[ ...

  2. bzoj 3714 [ PA 2014 ] Kuglarz —— 思路+最小生成树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3714 因为每个杯子下最多一个小球,所以从奇偶性就可以看出有没有球: 询问一段区间,等于知道一 ...

  3. BZOJ 3714: [PA2014]Kuglarz

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

  4. bzoj 3714 [PA2014]Kuglarz 最小生成树

    [PA2014]Kuglarz Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1335  Solved: 672[Submit][Status][Di ...

  5. bzoj 3714: [PA2014]Kuglarz【最小生成树】

    参考:https://blog.csdn.net/aarongzk/article/details/48883741 没想到吧.jpg 来自题解: "如果用sum[i]表示前i个杯子底球的总 ...

  6. [PA2014] [BZOJ 3709]~[BZOJ 3719] 合集

    今天起尝试做套题喵~ (当然是因为被最大流的题目弄得恶心死了) 一共是 10 道题一道一道做 预计 3~4 内做完 尽情期待 [BZOJ 3709]Bohater 一眼就能感受到贪心的气息 因为很直观 ...

  7. XOJ测试 2016.5.22

    哈哈 我是最先使用XOJ的人之一 膜拜zrt ing 首先是XOJ神奇的界面 还没有建设完的OJ是这个样子的 一共有5道题 这次小测有3道题 是T2T3T4 首先是骑士精神 (BZOJ1085) 上来 ...

  8. 【BZOJ】3714: [PA2014]Kuglarz

    题意 \(n(1 \le n \le 2000)\)个数每个数是\(0\)或\(1\),现在可以花费\(c_{i, j}\)知道\([i, j]\)的奇偶性,问将所有数都找出来的最小花费. 分析 如果 ...

  9. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

随机推荐

  1. [转]反向ajax项目

      ASP.NET WebSocket & Comet Ajax Library (Reverse Ajax - Server Push) 项目链接:http://pokein.codeple ...

  2. js- this

    this对象是基于函数在执行的环境绑定的. (一)   this 在闭包环境中指向的对象. <Js高级程序设计>中提到: 每个函数在被调用时,其活动对象都会自动取得两个特殊变量:this和 ...

  3. Spring Framework 笔记(一):IoC

    一:Spring中重要的概念 1. 容器( container ) : spring容器( ApplicationContext )的工作原则是创建容器中的组件( instance ),处理组件之间的 ...

  4. ZOJ 3705 Applications 模拟

    #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include< ...

  5. WinForm开发之取送货管理2

    写的有点慢,但都是一步步操作的,希望这些能成为以后宝贵的财富,话不多说,续上次取送货基本信息管理之产品分类管理,下面进行增删改的编写. 增加产品分类管理信息记录,双击[新增]按钮(其新增可让用户在Te ...

  6. Cordova系列(一)

    1.安装 这里推荐用npm安装cordova,至于npm的安装,网上有很多的.打开命令行,输入 npm install -g cordova 这里就安装了好了最新版的cordova,虽然绝大多数会成功 ...

  7. Ceph剖析:数据分布之CRUSH算法与一致性Hash

    作者:吴香伟 发表于 2014/09/05 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下三个 ...

  8. HTML5 CSS3学习

    HTML5 CSS3学习 :http://www.1000zhu.com/course/css3/ HTML5 相关书籍:   http://www.html5cn.com.cn/news/gdt/2 ...

  9. [Shell] swoole_timer_tick 与 crontab 实现定时任务和监控

    手动完成 "任务" 和 "监控" 主要有下面三步: 1. mission_cron.php(定时自动任务脚本): <?php /** * 自动任务 定时器 ...

  10. CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html、Ajax”(是否缺少程序集引用?)

    从SVN上down下来的程序,编译报了一大堆的错,发现是缺少引用,但是明明引用了,后来打开引用,发现system.web.mvc这个引用打着叹号,如图: 后来重新引用了本机的system.web.mv ...