洛谷——P1194 买礼物
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 0 【样例输入2】 3 3 0 2 4 2 0 2 4 2 0
【样例输出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 买礼物相关推荐
- 洛谷P1194 买礼物
洛谷P1194 买礼物 在买了第一次之后,你还要买 n-1次,把所有点都连起来,这样做一个最小生成树 就行了,然后要注意题目中说了如果a[ i ][ j ]==0 则表示两个点是不相连的,赋值 inf ...
- 洛谷 P1194 买礼物 (题解+代码)
题目传送门:https://www.luogu.com.cn/problem/P1194 题解: 由于所有东西的价格都为a,并且买个第I个,再买第J个只需要话Kij.那么可以建立最小生成树,连接所有的 ...
- 【洛谷 P4934】 礼物 (位运算+DP)
题目链接 位运算+\(DP\)=状压\(DP\)?(雾 \(a\&b>=min(a,b)\)在集合的意义上就是\(a\subseteq b\) 所以对每个数的子集向子集连一条边,然后答案 ...
- Java 洛谷 P1909 买铅笔讲解
题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔 ...
- 洛谷 P1490 买蛋糕
P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...
- 洛谷——P2524 Uim的情人节礼物·其之弐
P2524 Uim的情人节礼物·其之弐 题目描述 前传:详见洛谷P2525 Uim成功地按照顺序将礼物送到了N个妹子的手里并维持她们的和谐. Uim现在想知道,他最终选择的顺序是所有给N个妹子送礼顺序 ...
- 洛谷:P2525 Uim的情人节礼物·其之壱
洛谷:P2525 Uim的情人节礼物·其之壱:题目链接 题解:利用C++的prev_permutation函数:可以求出给定数组的上一个字典序排序. #include <bits/stdc++. ...
- P1421(洛谷)买文具
小玉买文具 - 洛谷 1.计算钱数(我觉得和数学一样) 2.....(没啥好说的了,挺简单的 ) #include<bits/stdc++.h> using namespace std; ...
- 洛谷 题单2分支结构(freshman锻炼牛犇勿喷)
第一题数的性质 题目描述 一些数字可能拥有以下的性质: 性质 1:是偶数: 性质 2:大于 4 且不大于 12. 小A 喜欢这两个性质同时成立的数字:Uim 喜欢这至少符合其中一种性质的数字:八尾勇喜 ...
最新文章
- 小师妹学JVM之:JIT中的LogCompilation
- CF718E Matvey‘s Birthday(状压、bfs、暴力、分类讨论)
- 年后开课 | 第 4 期临床基因组家系分析,同时解决科研和临床问题
- 结构体中操作c语言,C语言中结构体的操作
- ROS2 Galactic teb_local_planner
- 直播视频网站源码,登录界面LoginActivity
- Ubuntu20.04如何解决QQ闪退问题(亲测有效)
- 刷计算机导论的题用什么软件,计算机导论试题
- 2021年电赛F题智能送药小车(国二)开源分享
- 炼数成金-Spark大数据平台
- (4)bootstrap标签页
- html里面的view怎么修改,asp.net mvc 3-在局部视图中修改MVC 3 ViewBag不会保留到_Layout.cshtml...
- 蓝桥杯(Java) 回文日期
- 从0到1:微信小程序自选股项目回忆录
- 静态代理,JDK动态代理,Cglib动态代理详解
- TouchID 指纹登录
- Hadoop web端打开hdfs上的文件问题
- 性能测试-实例讲解VU、RPS、RT公式换算
- python手机脚本精灵使用教程_pygame 精灵的行走及二段跳的实现方法(必看篇)
- 数据库管理系统:与MySQL的第一次亲密接触
热门文章
- 团队-游戏《石头,剪刀,布》-团队一阶段互评
- 使用eclipse快速set/get
- MapReduce实例(数据去重)
- C++ CGI Helloword
- [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.3
- cookie读取中文时乱码
- BW之数据源 增量管理DELTA
- 什么是“GB/T ”? 计算机术语你又知道多少? 想不想别人听不懂的语言搞定别人!...
- phpMyAdmin开发人员访谈——4个人支持整个项目
- C++匿名管道详解及简单案例(基于VS2013)