P14609 [NWRRC 2025] Judging Problem
超劣解。
我们令第
1. 题目分析
简单来说,如果一个字符串的相似字符串还没有用完,那么就是不合法的,否则合法。一个很好想的做法就是用两个
于是很简单的做完了,复杂度是
2. 代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
string a[N],b[N];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int T;
cin>>T;
while(T--)
{
int n,flag=1;cin>>n;
unordered_map<string,set<int>>visA,visB;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
visA[a[i]].insert(i);
visB[b[i]].insert(i);
}
visA[a[1]].erase(1),visB[b[1]].erase(1);
for(int i=2;i<=n;i++)
{
if(a[i]==a[i-1]||b[i]==b[i-1])goto MAI;
if(!visA[a[i-1]].empty()||!visB[b[i-1]].empty()){flag=false;break;}
MAI:;visA[a[i]].erase(i),visB[b[i]].erase(i);
}
if(flag)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}