编译错误
  • 板块学术版
  • 楼主Chalage_2010
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/10/4 09:29
  • 上次更新2023/11/2 15:56:33
查看原帖
编译错误
760690
Chalage_2010楼主2023/10/4 09:29

老师给我的标程,一运行居然CE 无语.jpg

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

int main(){
	vector<int> ln(6);
	ln[2]=69,ln[3]=110,ln[5]=161;
	
	int n,m;
	scanf("%d %d",&n,&m);
	vector<int> f(n);
	vector<bool> vs(n);
	vector<LL> W(n);
	vector<vector<int> > g(n);
	int a,b;
	for(int i=0;i<n;i++){
		scanf("%d %d",&a,&b);
		if(a==4){
			a>>=1,b<<=1;
		}
		f[i]=b*ln[a];
	}
	
	set<pair<LL,int> > s;
	int x,y;
	for(int i=0;i<m;i++){
		scanf("%d%d",&x,&y);
		x-=1,y-=1;
		g[x].emplace_back(y);
		g[y].emplace_back(x);
		W[x]+=f[y];
		W[y]+=f[x];
	}
	for(int i=0;i<n;i++){
		s.insert(make_pair(W[i],i));
	}
	LL sum=0;
	for(int i=0;i<n;i++){
		auto[w,x]=*s.begin();
		s.erase(s.begin());
		sum=max(sum,w);
		vs[x]=true;
		for(int y:g[x]){
			if(vs[y]) continue;
			s.erase(make_pair(W[y],y));
			s.insert(make_pair(W[y]-=f[x],y));
		}
	}
	LL A=sum/100;
	int B=sum%100;
	printf("%lld.%02d\n",A,B);
	
	return 0;
}

改了一部分,剩下的完全看不懂

2023/10/4 09:29
加载中...