LuoguP7008 [CERC2013]What does the fox say? 题解
2024-09-04 23:23:46
Content
森林里面有很多声响,你想知道有哪些声响是由狐狸发出来的。
已知你搜集到了 \(n\) 个声响,并且还知道某些其他动物能够发出的声响,已知如果没有哪一个声响是由其他任何一种动物发出来的话,那这个声响绝对是由狐狸发出来的。现在,给定你这 \(n\) 个声响,以及某些其他动物能够发出的声响,请你求出狐狸发出的声响。
其他动物的声响和名字都仅由一个字符串组成。
数据范围:\(t\) 组询问,\(n\leqslant 100\),每个字符串的长度不超过 \(100\) 个字符且仅由小写字母组成。
Solution
简单的字符串模拟。
由于我们输入时不能确定 \(n\),我们先把所有的 \(n\) 个声响都一个个统计出来,然后再看这 \(n\) 个声响都被那些其他种类的动物给占了,这里我们可以开一个 \(\texttt{map}\),记录一下每个声响是否已经被占,最后输出所有没有被占的字符串即可。
记得多组询问时要清空数组和变量。
Code
int t;
string s[107], ss[107];
int main() {
//This program is written in Windows 10 by Eason_AC
getint(t);
while(t--) {
map<string, int> vis;
int cnt = 1;
string so;
getline(cin, so);
int lenso = so.size();
_for(i, 0, lenso - 1) {
if(so[i] == ' ') cnt++;
else s[cnt] += so[i];
}
while(getline(cin, so)) {
int cntt = 1; lenso = so.size();
_for(i, 0, lenso - 1) {
if(so[i] == ' ') cntt++;
else ss[cntt] += so[i];
}
if(cntt > 3) {
_for(i, 1, cntt) ss[i].clear();
break;
}
else vis[ss[3]] = 1;
_for(i, 1, cntt) ss[i].clear();
}
_for(i, 1, cnt) {
if(!vis[s[i]]) cout << s[i] << ' ';
s[i].clear();
}
puts("");
}
return 0;
}
最新文章
- 自定义从Azure下载回来的远程桌面连接(.rdp)文件,使其提供更多丰富功能
- [LintCode] Delete Node in the Middle of Singly Linked List 在单链表的中间删除节点
- Sublime Text 2 安装主题的方法
- the structure of the project (MVC)
- MVC 表单提交提示:已添加了具有相同键的项。
- Study notes for Sparse Coding
- HTML5学习笔记简明版(10):过时的元素和属性
- CenOS 6.5下 mysql自动备份
- template()方法
- 【自制插件】将MMD4Mecanim转换的MMD模型导入maya
- 第六届Code+程序设计网络挑战赛
- 科大讯飞语音合成api
- Numpy系列(十二)- 矩阵运算
- Angular中不同的组件间传值与通信的方法
- 使用 dotTrace 分析 .NET Core 代码问题
- .net视频教程代码之《提交注册内容》
- svn .a文件上传不了
- jzoj4229
- Linux Delay Accounting
- js 获取字符串的 像素 宽度 ----字符串格式化输出