求教
查看原帖
求教
542221
KidA楼主2023/7/28 21:05

代码复杂度 O(m3n)O(m^3n),用 map 做的,感觉没啥问题,但交上去只 AC 了一个点。求助dalao来帮我调一下代码 qwqqwq。

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

int n,m,ans;
unordered_map<string,bool> vis; 
char a[531][131],b[531][131]; 

bool check(int x,int y,int z){
	vis.clear();
	for(int i=1;i<=n;i++){
		string s="";
		s+=a[i][x]+a[i][y]+a[i][z];
		vis[s]=1;
	}
	for(int i=1;i<=n;i++){
		string s="";
		s+=b[i][x]+b[i][y]+b[i][z];
		if(vis[s]) return 0; 
	}
	return 1;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>a[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>b[i][j];
	for(int i=1;i<=m;i++)
		for(int j=i+1;j<=m;j++)
			for(int k=j+1;k<=m;k++)
				if(check(i,j,k)) ans++;
	cout<<ans;
	return 0;
}
2023/7/28 21:05
加载中...