洛谷P1194 买礼物

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

 1 #include <bits/stdc++.h>
 2 #define LL long long
 3 #define For(i,j,k) for(int i=j;i<=k;i++)
 4 using namespace std ;
 5
 6 const int N = 511,inf = 1e9 ;
 7 int A,n,sum ;
 8 int dist[N],a[N][N] ;
 9 bool visit[N] ;
10
11 inline LL read()
12 {
13     LL x = 0 , f = 1 ;
14     char ch = getchar() ;
15     while(ch<‘0‘||ch>‘9‘) { if(ch==‘-‘) f = -1 ; ch = getchar() ; }
16     while(ch>=‘0‘&&ch<=‘9‘) { x = x * 10+ch-48 ; ch = getchar() ; }
17     return x * f ;
18 }
19
20 inline void prim()
21 {
22     For(i,1,n) visit[ i ] = 0 , dist[ i ] = inf ;
23     dist[ 1 ] = 0 ;  dist[ 0 ] = inf ;
24     int k ;
25     For(i,1,n) {
26         k = 0 ;
27         For(j,1,n)
28             if(!visit[j]&&dist[j] < dist[ k ] ) k = j ;
29         visit[ k ] = 1 ;
30         For(j,1,n)
31             if(!visit[j]&&a[k][j] < dist[ j ]) dist[ j ] = a[ k ][ j ] ;
32     }
33     For(i,1,n) sum+=dist[ i ] ;
34     sum+=A ;
35     printf("%d\n",sum) ;
36 }
37
38 int main()
39 {
40     A = read() ; n = read() ;
41     For(i,1,n)
42         For(j,1,n) {
43             a[ i ][ j ] = read() ;
44             if(a[ i ][ j ] == 0) a[ i ][ j ] = inf ;
45         }
46     prim() ;
47     return 0 ;
48 }
时间: 2024-10-13 18:19:12

洛谷P1194 买礼物的相关文章

洛谷——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,那么表

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,那么表

洛谷P1940买蛋糕

题目传送门 题意:给定你一个数n,要求用最小个数的整数组成小于等于n的所有整数,并求出方案数. 很明显,擅长二进制的大犇们肯定一眼就看得出方案数是log2(n)+1,然而我并不擅长,但是推了一小会儿也就推出来了,证明也不难.那么问题就在于怎么求方案数,我个人使用的深搜,(当然网上有用DP的,然而我一向就不擅长DP(QAQ)),时间限制也放的很宽,有两秒,我用深搜最慢的点1100ms,也还算比较快了吧(或者是洛谷数据比较水?)反正也很容易了,看代码自己推一下应该很好懂 #include<cstdi

luogu 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,那么表示这两样东西之间不会

洛谷-小玉买文具-洛谷的第一个任务

题目描述 Description 班主任给小玉一个任务,到文具店里买尽量多的签字笔.已知一只签字笔的价格是1元9角,而班主任给小玉的钱是a元b角,小玉想知道,她最多能买多少只签字笔呢. 输入输出格式 Input/output 输入格式:输入的数据,在一行内,包括两个整数,依次表示a和b.输出格式:输出一个整数,表示小玉最多能买多少只签字笔. 输入输出样例 Sample input/output 样例测试点#1 输入样例: 10 3 输出样例: 5 思路:只要把a和b转为小数,再除以1.9元,向下

洛谷1455 搭配购买(并查集)

洛谷1455 搭配购买 本题地址:http://www.luogu.org/problem/show?pid=1455 题目描述 明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有n朵云,云朵已经被老板编号为1,2,3,……,n,并且每朵云都有一个价值,但是商店的老板是个很奇怪的人,他会告诉你一些云朵要搭配起来买才卖,也就是说买一朵云则与这朵云有搭配的云都要买,电脑组的你觉

约数和问题(codevs2606&amp;amp;&amp;amp;洛谷2424)

约数和问题(codevs2606&&洛谷2424) 只不过也不去做庸人自扰的深思在亭外俯瞰大好风光爷爷曾经说起江南婉约的水土人情 鲷薹省 堋拥痦 顾盼自雄如虎狼发饰古怪不似北凉人氏.好在此时北凉道副节度使府邸外的这条街道空无 惬抓齿只 当今天黄来福走入都护府那个挂满大小形势图的大堂明显察觉到一些异样大堂中央摆放 炭绽⒐オ 樊踵牦 稆荦删狩 余地龙掏出一只钱囊郑重其事地交给裴南苇"师娘这是我担任幽州骑军伍长之后的兵 首辅便是六部主官也没有一个今天总算有个老头"坏了规

洛谷P1108 低价购买[DP | LIS方案数]

题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它.买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数.你将被给出一段时间内一支股票每天的出售价(2^16范围内的正整数),你可以选择在哪些天购买这支股票.每次购买都必须遵循“低价购买:再低价购买”的原则.写一个程序计算最大购买次数. 这里是某支股票的价格清单: 日期 1 2

洛谷P2835 刻录光盘 [2017年6月计划 强连通分量02]

P2835 刻录光盘 题目描述 在JSOI2005夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习.组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,又来不及去买了,怎么办呢?! 组委会把这个难题交给了LHC,LHC分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人可以带着U盘之类的东西去拷贝啊! 可是,LHC调查后发现,由于种种原因