专栏文章
题解:P13986 [PO Final 2023] 降重 / Synonyms
P13986题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minzzb32
- 此快照首次捕获于
- 2025/12/02 11:07 3 个月前
- 此快照最后确认于
- 2025/12/02 11:07 3 个月前
思路:
对于每个瑞典语单词,找到所有可能的外语翻译。
对于每个外语翻译,找到所有可能的瑞典语回译。
选择与原词不同的回译词(如果存在)。
对于每个外语翻译,找到所有可能的瑞典语回译。
选择与原词不同的回译词(如果存在)。
步骤:
使用两个数组
对于文本中的每个单词,遍历查找其外语翻译。
对于找到的每个外语翻译,查找是否有其他瑞典语单词对应此外语。
如果找到不同的回译词,选择它作为替换。
sw 和 fo 分别存储瑞典语和外语单词。对于文本中的每个单词,遍历查找其外语翻译。
对于找到的每个外语翻译,查找是否有其他瑞典语单词对应此外语。
如果找到不同的回译词,选择它作为替换。
CODE:
CPP#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m;
string sw[N],fo[N],text[N];
int main(){
cin>>n;
for(int i=0;i<n;i++)
cin>>sw[i]>>fo[i];
cin>>m;
for(int i=0;i<m;i++)
cin>>text[i];
for(int i=0;i<m;i++){
string word=text[i],ans=word;
for(int j=0;j<n;j++){
if(sw[j]==word){
for(int k=0;k<n;k++)
if(fo[k]==fo[j]&&sw[k]!=word){
ans=sw[k];
break;
}
if(ans!=word)
break;
}
}
cout<<ans<<" ";
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...