首页 > 其他分享 >洛谷题解-P1673 [USACO05FEB] Part Acquisition S

洛谷题解-P1673 [USACO05FEB] Part Acquisition S

时间:2024-01-27 19:33:59浏览次数:31  
标签:le 洛谷 int 题解 Bi vis USACO05FEB 111 dis

https://www.luogu.com.cn/problem/P1673

题目描述

奶牛们接到了寻找一种新型挤奶机的任务,为此它们准备依次经过 N(1≤N≤5×104)N(1\le N\le 5\times 10^4)N(1≤N≤5×104) 颗行星,在行星上进行交易。为了方便,奶牛们已经给可能出现的 K(1≤K≤103)K(1\le K\le 10^3)K(1≤K≤103) 种货物进行了由 111 到 KKK 的标号。由于这些行星都不是十分发达。没有流通的货币,所以在每个市场里都只能用固定的一种货物去换取另一种货物。奶牛们带着一种上好的饲料从地球出发,希望在使用的物品的种类数量最少的情况下,最终得到所需要的机器。饲料的标号为 111,所需要的机器的标号为 KKK。如果任务无法完成,输出 −1-1−1。

输入格式

第 111 行是两个数字 NNN 和 KKK。

第 222 到 N+1N+1N+1 行,每行是两个数字 AiA_iAi​ 和 BiB_iBi​,表示第 iii 颗行星为得到 BiB_iBi​ 愿意提供 AiA_iAi​。

输出格式

输出最少经手物品数。

输入输出样例

输入 #1
6 5
1 3
3 2
2 3
3 1
2 5
5 4
输出 #1
4

说明/提示

奶牛们至少需要 444 种不同标号的物品,先用 111 去交换 333,再用 333 去交换 222,最后用 222 交换得到 555。

1≤N≤5×1041\le N\le 5\times 10^41≤N≤5×104,1≤K≤1031\le K\le 10^31≤K≤103。

 

 

 

 

1.边权为1的话也可以用dijk..算法求最短路  ;  2.读题结合样例理解(不要弄混了走不出来)    详解见下

很简单的板子题,主要在于读题和分析

第 i 颗行星为得到 Bi 愿意提供 Ai​  的意思是

 

拿Ai换Bi(提供Ai是你需要给他Ai,得到Bi是你得到Bi),在这里我分析了很久,导致被误导,一定不要弄混题意了走不出来了!!!多思考分析一下

#include <bits/stdc++.h>
using namespace std;

const int N=5e4+5;
struct node
{
	int v, w;
	bool operator <(const node &A) const
	{
		return w>A.w;
	}
};
int n, k, u1, v1, dis[N], vis[N];
vector<node> a[N];
priority_queue<node> q;
void dij(int s)
{
	memset(dis, 63, sizeof dis);
	memset(vis, 0, sizeof vis);
	dis[s]=0, q.push({s, 0});
	
	while (!q.empty())
	{
		int u=q.top().v;
		q.pop();
		
		if (vis[u]) continue;
		vis[u]=1;
		
		for (int i=0; i<a[u].size(); i++)
		{
			int v=a[u][i].v, w=a[u][i].w;
			if (!vis[v] && dis[v]>dis[u]+w) 
			{
				dis[v]=dis[u]+w;
				q.push({v, dis[v]});
			}
		}
	}
}
int main()
{
	scanf("%d%d", &n, &k);
	for (int i=1; i<=n; i++)
	{
		scanf("%d%d", &u1, &v1);
		a[u1].push_back({v1, 1}); //边权为1照样写,不用写 push(v)
	}
	dij(1);
	
	if (dis[k]==dis[0]) printf("-1"); //是k,结合题意
	else printf("%d", dis[k]+1);
	return 0;
}

 

标签:le,洛谷,int,题解,Bi,vis,USACO05FEB,111,dis
From: https://www.cnblogs.com/didiao233/p/17991828

相关文章

  • CF739A Alyona and mex 题解
    题目传送门前置知识贪心|构造解法从贪心的角度分析,最小的\(\operatorname{mex}\)仅会与长度最小的区间有关;另外为使得\(\operatorname{mex}\)最大,当\(\operatorname{mex}\)等于区间长度的时候即为所求。记\(ans\)表示此时得到的答案。构造序列时,长度最小的区间一定......
  • CF1433E Two Round Dances 题解
    题目传送门前置知识圆排列解法\(\dfrac{Q_{n}^{\frac{n}{2}}Q_{\frac{n}{2}}^{\frac{n}{2}}}{A_{2}^{2}}\)即为所求。同时因为\(n\le20\)和没有模数,所以不需要处理逆元,暴力算即可。代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#defineu......
  • 洛谷 P1749 [入门赛 #19] 分饼干 II 题解
    题目传送门先给结论:记\(S=1+2+\dots+k\),则当\(N\geS\)时为YES,当\(N<S\)时为NO。严谨一点,证明如下:若能成功分配饼干,记\(k\)名小朋友拿到的饼干数量分别为\(a_1,a_2,\dots,a_k\)。由于饼干数量各不相同且均为整数,不妨设\(a_1<a_2<\dots<a_k\),则\(a_2\gea_1+1,a_3\g......
  • 题解 NOIP2014 提高组-联合权值
    题解NOIP2014提高组-联合权值基本思路:以每个点为中转点,则与之相邻的点组成的点对都可产生联合权值,并且全覆盖。主要总结一下两种求权值和的思路:思路1(容斥):记与\(u\)相邻的点的集合为\(A\),则点\(u\)产生的贡献为\[ans_u=(\sum_{v\inA}w_i)^2-\sum_{v\inA}w_v\times......
  • P9550 「PHOI-1」晚宴筵题解
    题解简化一下题意,已知从\((p,q)\)直接到达\((x,y)\)的费用函数如下:\[\text{cost}(p,q,x,y)=\begin{cases}w_p+w_q+w_x+w_y-p-q-x-y,&l1_x\lep\ler1_x,l2_y\leq\ler2_y\\\text{inf},&\text{otherwise}\\\end{cases}\]问从\((1,1)\)到各位置的最小费用......
  • 洛谷题单指南-排序-P1177 【模板】排序
    原题链接:https://www.luogu.com.cn/problem/P1177题意解读:数据量为100000,必须用小于等于N*logN复杂度的排序算法,可以直接用sort,更重要需要掌握快速排序的过程。知识点:快速排序设定数组q[n],l,r第一步:确定分界点x可以取q[l]、q[(l+r)/2]、q[r]三种第二步:调整区间把<=x的数调......
  • 洛谷 P7906 [Ynoi2005] rpxleqxq
    洛谷传送门考虑莫队二次离线。剩下是平衡插入和查询复杂度的问题。考虑现在的问题:要求\(O(\sqrt{n})\)往集合里插入一个数,\(O(1)\)回答集合内有多少个数\(x\)满足\(z\oplusx\lem\)(\(z\)给定)。考虑高低位分块。先钦定\(z\)在前\(9\)位时\(z\oplusx<m\),枚举......
  • P2602 数字计数 题解
    QuestionP2602数字计数求\([a,b]\)中的所有整数中,每个数出现的次数Solution数位DP板子题定义\(dp[i]\)表示\(i\)位数的每种数字有多少个,我们把\(0\)和\(00\)看成两种不同的数,并且\(00\)中算\(0\)出现过两次显然,\(0\sim9\)在\(i\)位数中出现的次数是一样......
  • 洛谷题解-P2712 摄像头
    https://www.luogu.com.cn/problem/P2712可以看出是拓扑排序,因为是有前后关系的,但是坑点在于点并不连续,值得记录一下(刚开始70分,后来才AC)注意坑点:拓扑排序,遍历的点不连续 #include<bits/stdc++.h>usingnamespacestd;constintN=1e5+5;intn,x,m,y,d[N],cnt=0,v......
  • markdown图床问题解决
    写博客不仅要以文字形式记录,更重要的是把自己曾经的截图记录下来,更方便下次使用。所以有必要搞一个稳定的图床生成图片链接。一开始我是用的Github,新建一个仓库上传图片,优点是方便,缺点是网络不用魔法图片经常加载不出来。后来看到网上一些博主推荐使用七牛云图片存储,为此我购买......