当前位置: 首页 > news >正文

青岛团购网站建设宁波自助建站网站

青岛团购网站建设,宁波自助建站网站,三维宣传片制作公司,做网站的开发软件买礼物 题目描述 又到了一年一度的明明生日了,明明想要买 B B B 样东西,巧的是,这 B B B 样东西价格都是 A A A 元。 但是,商店老板说最近有促销活动,也就是: 如果你买了第 I I I 样东西&#xff0…

买礼物

题目描述

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

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

如果你买了第 I I I 样东西,再买第 J J J 样,那么就可以只花 K I , J K_{I,J} KI,J 元,更巧的是, K I , J K_{I,J} KI,J 竟然等于 K J , I K_{J,I} KJ,I

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

输入格式

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

接下来 B B B 行,每行 B B B 个数,第 I I I 行第 J J J 个为 K I , J K_{I,J} KI,J

我们保证 K I , J = K J , I K_{I,J}=K_{J,I} KI,J=KJ,I 并且 K I , I = 0 K_{I,I}=0 KI,I=0

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

输出格式

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

样例 #1

样例输入 #1

1 1
0

样例输出 #1

1

样例 #2

样例输入 #2

3 3
0 2 4
2 0 2
4 2 0

样例输出 #2

7

提示

样例解释 2 2 2

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

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

数据规模

对于 30 % 30\% 30% 的数据, 1 ≤ B ≤ 10 1\le B\le 10 1B10

对于 100 % 100\% 100% 的数据, 1 ≤ B ≤ 500 , 0 ≤ A , K I , J ≤ 1000 1\le B\le500,0\le A,K_{I,J}\le1000 1B500,0A,KI,J1000

2018.7.25新添数据一组

大致思路

简单的最小生成树问题
对于这种问题,关键是如何把题目转化为使用最小生成树解决。

对于本题,注意每个物品有自己的初始价格与优惠价格

但是!也有反向优惠(优惠了还不如不优惠)的情况

那么我们需要选择所有物品,而物品之间有优惠关系,可以把每个物品看做一个点,每个优惠看作一条边权为 w 的边,那么这个问题也就转化为了最小生成树问题

对于上述的反向优惠的情况,我们可以建一个超级点 ‘0’,向每一个点建一条边权为 a 的边,这样就可以避免反向优惠的情况啦~

AC CODE

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+114514;
int a,n,ans=0;
int sum=0,fa[N];
struct node{int u,v,w;
}k[N];
bool cmp(node aa,node bb){return aa.w<bb.w;
}
int find(int x){if(fa[x]==x)return x;return fa[x]=find(fa[x]);
}
void merge(int x,int y){fa[find(x)]=find(y);
}
void kruskal(){sort(k+1,k+1+sum+n+1,cmp);for(int i=1;i<=n;i++){fa[i]=i;}for(int i=1;i<=sum+n+1;i++){if(find(k[i].u)!=find(k[i].v)){ans+=k[i].w;merge(k[i].u,k[i].v);}}
}
int main(){cin>>a>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){int w;cin>>w;if(w==0)continue;sum++;k[sum].u=i;k[sum].v=j;k[sum].w=w;}}for(int i=sum+1;i<=sum+n;i++){k[i].u=0;k[i].v=i-sum;k[i].w=a;}kruskal();cout<<ans<<endl;return 0;
}

附封面(天气之子)

请添加图片描述

http://www.yayakq.cn/news/984383/

相关文章:

  • 一_ 写出几种常见的网站开发语言_试述其特点宁波seo怎么选
  • 怎么制作网站软件非寻服饰网站建设规划书
  • 网站视觉分析医药公司网站设计
  • 建设网站用什么语言好深圳网络推广公司怎么样
  • 网站建设的必要性及意义石家庄正定新区建设局网站
  • 网站设计最新风格站长工具综合查询2020
  • wordpress怎么开启注册seo关键词排名技巧
  • 云阳一平米网站建设whcms wordpress
  • 网站建设服务协议个人注册入口官网
  • 北京个人制作网站有哪些内容vs网站开发如何发布
  • 上海网站改版哪家好深汕特别合作区人口
  • 网站路径优化怎么做网站建设主
  • fineui 如何做网站定制开发软件和产品
  • 青海省建设厅网站姚宽一河北省建设执业注册中心网站
  • 网站建设外包多少钱吴忠网站建设
  • 怎么在网上做装修网站建网站商城平台
  • 做肝病科网站上海免费建站模板
  • 西安wordpress建站云南做网站哪家便宜
  • 网站开发代码交接文档书建站工具 开源
  • 甘肃营销型网站制作门户网站前期网络采集商家信息免费发布
  • 广东省建设厅的注册中心网站网站建设衤金手指花总
  • 备案网站转入阿里云企业微信下载官方网站
  • 你的网站尚未进行备案温建设文件发布在哪个网站
  • 阳信县住房和城乡建设局网站哔哩哔哩做视频网站
  • 网页设计与网站建设完全教程网站版式设计
  • 重庆企业网站的推广seo自学教程
  • 网站哪个好做网站的公司市场
  • 做调查赚钱的网站海口网站建设
  • 网站链接免费的WORDPRESS主题响应式
  • wordpress模板 图片站lol做直播网站