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,那么表示这两样东西之间不会…
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 买礼物 题目描述 又到了一年一度的明明生日了,明明想要买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 买礼物 题目描述 又到了一年一度的明明生日了,明明想要买B样东西,巧的是,这B样东西价格都是A元. 但是,商店老板说最近有促销活动,也就是: 如果你买了第II样东西,再买第J样,那么就可以只花KI,J​元,更巧的是,KI,J​竟然等于KJ,I​. 现在明明想知道,他最少要花多少钱. 输入输出格式 输入格式: 第一行两个整数,A,B. 接下来BB行,每行B个数,第I行第J个为KI,J​. 我们保证KI,J​=KJ,I​并且KI,I​=0. 特别的,如果KI,J​=0,那么表示这两…
P1194 买礼物 题目描述 又到了一年一度的明明生日了,明明想要买\(B\)样东西,巧的是,这\(B\)样东西价格都是\(A\)元. 但是,商店老板说最近有促销活动,也就是: 如果你买了第II样东西,再买第JJ样,那么就可以只花\(K_{I,J}\)元,更巧的是,\(K_{I,J}\)​竟然等于\(K_{J,I}\). 现在明明想知道,他最少要花多少钱. 输入格式 第一行两个整数,\(A,B\). 接下来\(B\)行,每行\(B\)个数,第\(I\)行第\(J\)个为\(K_{I,J}\)​.…
https://www.luogu.org/problem/show?pid=1194 题目描述 又到了一年一度的明明生日了,明明想要买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[…
题目描述 又到了一年一度的明明生日了,明明想要买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,那么表示这两样东西之间不会…
tmk买礼物 Description 今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下. TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店第2147483647位顾客,本店在搞一个活动,对本店第2147483647位顾客进行赠送活动.你先看看你有多少钱?” TMK一摸口袋,发现只有n个硬币,每个硬币的价值为a[i]. 然后店主继续说:“现在你用你的钱凑一些数,如果你的钱能凑成[0,x]里面所有的数,那么你将会免费获得该店价值x元的代金…
luogu题目传送门! 懒得找最小生成树模板了,就把这题当板子吧. 最小生成树,就是指对于一张图,我们将图转换成一棵树,连通的,同时让所有的边尽可能的小(废话). 最小生成树一般都采用Kruskal算法,期间需要用到并查集.大体思路如下: 先将所有边从小到大排序,对所有的节点维护并查集 f. 然后依次遍历所有的边,(当然是先从小的开始).可以将并查集的 f 理解为缩点的类似操作.如果一条边的两个点 在同一个 f 中,则证明这两个点已经连通,不需要这条边(当然是前面通过别的小边已经连通了). 因此…
这道题其实就是转化一个模型就可以了. 买了一个另外一个又优惠,其实就相当于在优惠的时候连一条边,因为不可能多买,所以就是建一棵最小生成树.最后因为肯定买了一件物品,要加上最初的单价. 代码: #include <bits/stdc++.h> using namespace std; struct node{ int l , r , w; }; node e[510000]; int price , n , tot , now , ans; int fa[5100] , vis[5100][51…