码迷,mamicode.com
首页 > 其他好文 > 详细

A1034

时间:2020-01-30 19:13:13      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:time   else   string   insert   越界   alt   mic   http   include   

#include<iostream>
#include<map>
#include<set>
#include<vector>
//研究一下stringToInt 
using namespace std;
map<string,int>stringToInt;
map<string,int>time1;
set<string>s;
map<int,string>IntTostring;
const int MAXV=1010;
bool G[MAXV][MAXV]={false};
int weight[MAXV][MAXV],we[MAXV]={0},count=0,tot=0,aut=0,head,max1,tot1=0,maxv;
bool visited[MAXV];
vector<int>v1;
vector<int>v2;
int reverse(string s){
	if(stringToInt[s]==0){
		stringToInt[s]=++aut;
		IntTostring[aut]=s;
		maxv=aut;
		
		return aut;
	}else return stringToInt[s];
}
int DFS(int v){
	count++;

	visited[v]=true;
	for(int i=1;i<MAXV;i++){
		if(weight[v][i]!=0&&!G[v][i]){
			tot+=weight[v][i];
			G[v][i]=true;
			if(we[i]>max1){
				max1=we[i];
				head=i;
			}
			if(!visited[i])
				DFS(i);
		}
	}
	return head;
}
int main(){
	int n,sx,w;
	string name1,name2;
	cin>>n>>sx;
	for(int i=0;i<n;i++){
		cin>>name1>>name2>>w;
		int n1=reverse(name1);
		int n2=reverse(name2);//转成数字
		we[n1]+=w;
		we[n2]+=w;
		weight[n1][n2]=w; 
	}
	for(int i=1;i<MAXV;i++){
		if(!visited[i]){
			count=0;
			tot=0;
			tot1++;
			max1=we[i];
			head=i;
			int head=DFS(i);
			if(tot>sx&&count>2){
//				v1.push_back(head);
//				v2.push_back(count); 
				time1[IntTostring[head]]=count;
				s.insert(IntTostring[head]);
			}
		}
	}
	cout<<s.size()<<endl;
	for(auto it=s.begin();it!=s.end();it++){
		cout<<*it<<" "<<time1[*it]<<endl;
	}
	return 0;
} 

  这个代码的第三个测试点因为段错误而错误,但是始终找不到错误点,猜测和数组越界无关而和递归溢出有关

 

-----------------------------------------------------------------------------------------------

在实现字符串对数的映射时可以使用:

int reverse(string s){
	if(stringToInt[s]==0){
		stringToInt[s]=++aut;
		IntTostring[aut]=s;
		maxv=aut;
		cout<<" ---------------"<<s<<" 对应 "<<aut<<endl;
		return aut;
	}else return stringToInt[s];
}

  另外我发现在pat上能跑出来的代码。上传到牛客网上最多只能对一半  让人心慌

技术图片

 

 技术图片

 

 技术图片

 

A1034

标签:time   else   string   insert   越界   alt   mic   http   include   

原文地址:https://www.cnblogs.com/tao7/p/12243209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!