1003 Emergency 测试点0

关键

这道题必须掌握Dijkstra算法的实现代码,在Dijkstra算法模板代码的基础上进行一定调整

易错点

测试点0或其他测试点错了,可以尝试用下面这个数据测试:

4 5 0 3
1 4 1 2
0 1 1
0 2 2
0 3 4
1 2 1
2 3 2

代码

#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;

float c[1001];
int main()
{
	for(int i=0;i<1001;i++){
		c[i]=0;
	}
	int k1,k2;
	int cnt=0;
	int expo;
	float coe;
	cin>>k1;
	for(int i=0;i<k1;i++){
		cin>>expo>>coe;
		c[expo]+=coe;
	}
	cin>>k2;
	for(int i=0;i<k2;i++){
		cin>>expo>>coe;
		c[expo]+=coe;
	}
	for(int i=1000;i>=0;i--){
		if(c[i]!=0){
			cnt++;
		}
	}
	cout<<cnt;
	for(int i=1000;i>=0;i--){
		if(c[i]!=0){
			cout<<" "<<i<<" ";
			cout<<fixed<<setprecision(1)<<c[i];
		}
	}
	return 0;
}

参考

PAT 甲级测试题目 -- 1003 Emergency - 走看看 (zoukankan.com)

posted @ 2022-07-18 12:49  qwasdasd  阅读(57)  评论(0)    收藏  举报