为什么这道题要用二维map查询才行?
查看原帖
为什么这道题要用二维map查询才行?
550074
cloudemakers楼主2023/1/2 22:00

RT,这串是AC的代码

#include<bits/stdc++.h>
using namespace std;
map< string,map<string,int> > a;
int n,ans;
string aa,bb;
int main(){
	cin>>n;
	for (int i=1;i<=n;i++){
		cin>>aa>>bb;
		aa=aa.substr(0,2);
		if (aa!=bb){
		ans+=a[aa][bb];
		a[bb][aa]++;
		}
}
	cout<<ans;
}

如果第一次查到 它的对应的一组省市的值就会+1 下次如果查到这组数据ans就会+1

但为什么这串代码就不行?

#include<bits/stdc++.h>
using namespace std;
map<string,string> a;
int n,ans;
string aa,bb;
int main(){
	cin>>n;
	for (int i=1;i<=n;i++){
		cin>>aa>>bb;
		aa=aa.substr(0,2);
		if (aa!=bb){
		a[aa]=bb;
		if (a[bb]==aa) ans++;//如果已经存在这组数据 ans++ 
		}
}
	cout<<ans;
}
2023/1/2 22:00
加载中...