P1194 买礼物

题目描述

又到了一年一度的明明生日了,明明想要买B样东西,巧的是,这B样东西价格都是A元。

但是,商店老板说最近有促销活动,也就是:

如果你买了第I样东西,再买第J样,那么就可以只花K[I,J]元,更巧的是,K[I,J]竟然等于K[J,I]。

现在明明想知道,他最少要花多少钱。

输入输出格式

输入格式:

第一行两个整数,A,B。

接下来B行,每行B个数,第I行第J个为K[I,J]。

我们保证K[I,J]=K[J,I]并且K[I,I]=0。

特别的,如果K[I,J]=0,那么表示这两样东西之间不会导致优惠。

输出格式:

仅一行一个整数,为最小要花的钱数。

输入输出样例

输入样例#1: 复制

【样例输入1】
1 1
0
【样例输入2】
3 3
0 2 4
2 0 2
4 2 0

输出样例#1: 复制

【样例输出1】
1
【样例输出2】
7

说明

样例解释2

先买第2样东西,花费3元,接下来因为优惠,买1,3样都只要2元,共7元。

(同时满足多个“优惠”的时候,聪明的明明当然不会选择用4元买剩下那件,而选择用2元。)

数据规模

对于30%的数据,1<=B<=10。

对于100%的数据,1<=B<=500,0<=A,K[I,J]<=1000。

裸的最小生成树

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 500100
using namespace std;
int n,m,x,y,z,fx,fy,tot,sum,ans,fa[N];
int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x*f;
}
struct Node
{int x,y,z;
}node[N];
int cmp(Node a,Node b)
{return a.z<b.z;
}
int find(int x)
{if(fa[x]==x) return x;fa[x]=find(fa[x]);return fa[x];
}
int main()
{m=read(),n=read();for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){z=read();if(z!=0){++tot;node[tot].x=i;node[tot].y=j;node[tot].z=z;}}sort(node+1,node+1+tot,cmp);for(int i=1;i<=tot;i++){x=node[i].x,y=node[i].y;fx=find(x),fy=find(y);if(fx==fy) continue;else fa[fy]=fx;ans+=node[i].z;sum++;if(sum==n-1) break; }for(int i=1;i<=n;i++) if(fa[i]==i) ans+=m;printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/z360/p/8213415.html

洛谷——P1194 买礼物相关推荐

  1. 洛谷P1194 买礼物

    洛谷P1194 买礼物 在买了第一次之后,你还要买 n-1次,把所有点都连起来,这样做一个最小生成树 就行了,然后要注意题目中说了如果a[ i ][ j ]==0 则表示两个点是不相连的,赋值 inf ...

  2. 洛谷 P1194 买礼物 (题解+代码)

    题目传送门:https://www.luogu.com.cn/problem/P1194 题解: 由于所有东西的价格都为a,并且买个第I个,再买第J个只需要话Kij.那么可以建立最小生成树,连接所有的 ...

  3. 【洛谷 P4934】 礼物 (位运算+DP)

    题目链接 位运算+\(DP\)=状压\(DP\)?(雾 \(a\&b>=min(a,b)\)在集合的意义上就是\(a\subseteq b\) 所以对每个数的子集向子集连一条边,然后答案 ...

  4. Java 洛谷 P1909 买铅笔讲解

    题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔 ...

  5. 洛谷 P1490 买蛋糕

    P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...

  6. 洛谷——P2524 Uim的情人节礼物·其之弐

    P2524 Uim的情人节礼物·其之弐 题目描述 前传:详见洛谷P2525 Uim成功地按照顺序将礼物送到了N个妹子的手里并维持她们的和谐. Uim现在想知道,他最终选择的顺序是所有给N个妹子送礼顺序 ...

  7. 洛谷:P2525 Uim的情人节礼物·其之壱

    洛谷:P2525 Uim的情人节礼物·其之壱:题目链接 题解:利用C++的prev_permutation函数:可以求出给定数组的上一个字典序排序. #include <bits/stdc++. ...

  8. P1421(洛谷)买文具

    小玉买文具 - 洛谷 1.计算钱数(我觉得和数学一样) 2.....(没啥好说的了,挺简单的 ) #include<bits/stdc++.h> using namespace std; ...

  9. 洛谷 题单2分支结构(freshman锻炼牛犇勿喷)

    第一题数的性质 题目描述 一些数字可能拥有以下的性质: 性质 1:是偶数: 性质 2:大于 4 且不大于 12. 小A 喜欢这两个性质同时成立的数字:Uim 喜欢这至少符合其中一种性质的数字:八尾勇喜 ...

最新文章

  1. 小师妹学JVM之:JIT中的LogCompilation
  2. CF718E Matvey‘s Birthday(状压、bfs、暴力、分类讨论)
  3. 年后开课 | 第 4 期临床基因组家系分析,同时解决科研和临床问题
  4. 结构体中操作c语言,C语言中结构体的操作
  5. ROS2 Galactic teb_local_planner
  6. 直播视频网站源码,登录界面LoginActivity
  7. Ubuntu20.04如何解决QQ闪退问题(亲测有效)
  8. 刷计算机导论的题用什么软件,计算机导论试题
  9. 2021年电赛F题智能送药小车(国二)开源分享
  10. 炼数成金-Spark大数据平台
  11. (4)bootstrap标签页
  12. html里面的view怎么修改,asp.net mvc 3-在局部视图中修改MVC 3 ViewBag不会保留到_Layout.cshtml...
  13. 蓝桥杯(Java) 回文日期
  14. 从0到1:微信小程序自选股项目回忆录
  15. 静态代理,JDK动态代理,Cglib动态代理详解
  16. TouchID 指纹登录
  17. Hadoop web端打开hdfs上的文件问题
  18. 性能测试-实例讲解VU、RPS、RT公式换算
  19. python手机脚本精灵使用教程_pygame 精灵的行走及二段跳的实现方法(必看篇)
  20. 数据库管理系统:与MySQL的第一次亲密接触

热门文章

  1. 团队-游戏《石头,剪刀,布》-团队一阶段互评
  2. 使用eclipse快速set/get
  3. MapReduce实例(数据去重)
  4. C++ CGI Helloword
  5. [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.3
  6. cookie读取中文时乱码
  7. BW之数据源 增量管理DELTA
  8. 什么是“GB/T ”? 计算机术语你又知道多少? 想不想别人听不懂的语言搞定别人!...
  9. phpMyAdmin开发人员访谈——4个人支持整个项目
  10. C++匿名管道详解及简单案例(基于VS2013)