codeforces Round #451 (Div. 2) Phone Numbers
来源:互联网 发布:知乎回答排名规则 编辑:程序博客网 时间:2024/05/19 20:59
思路:直接暴力就好了,写这道题主要还是熟悉一下对stl的用法。
每次插入map去重,然后每次双重循环判断是否是某个数的字串。
#include <cstdio>#include <cstring>#include <iostream>#include <string>#include <set>#include <map>#include <vector>using namespace std;typedef long long LL;map<string, set<string> > mp;map<string, set<string> > ans;bool judge(string s1, string s2){ if(s1.size()>s2.size()) return false; for(int i=0;i<s1.size();++i) { if(s1[i]!=s2[s2.size()-s1.size()+i]) return false; } return true;}/*bool judge(string s1, string s2){ if(s1.size()>=s2.size()) return false; int x=s2.find(s1,s2.size()-s1.size()); //cout<<s1<<" "<<s2<<" "<<x<<endl; if(x==s2.size()-s1.size()) return true; else return false;}*/int main(){ int n, num; string s, ss; ios::sync_with_stdio(false); cin>>n; for(int i=0;i<n;++i) { cin>>s>>num; for(int j=0;j<num;++j) { cin>>ss; mp[s].insert(ss); } } cout<<mp.size()<<endl; map<string, set<string> >::iterator it; set<string> ::iterator its, itss; for(it=mp.begin();it!=mp.end();++it) { for(its=(*it).second.begin();its!=(*it).second.end();++its) { string s1=*its; int flag=0; for(itss=(*it).second.begin();itss!=(*it).second.end();++itss) { string s2=*itss; if(itss==its) continue; if(judge(s1,s2)) { flag=1; break; //cout<<*its<<endl; } } if(!flag) { ans[it->first].insert(s1); } } } for(it=ans.begin();it!=ans.end();++it) { cout<<it->first<<" "<<it->second.size(); for(its=it->second.begin();its!=it->second.end();its++) { cout<<" "<<*its; } cout<<"\n"; } return 0;}
阅读全文
0 0
- codeforces Round #451 (Div. 2) Phone Numbers
- Codeforces Round #451 (Div. 2) C. Phone Numbers
- Codeforces Round #330 (Div. 2)B Pasha and Phone
- Codeforces Round #209 (Div. 2) D. Pair of Numbers
- Codeforces Round #209 (Div. 2) D. Pair of Numbers
- Codeforces Round #209 (Div. 2), problem: (D) Pair of Numbers
- Codeforces Round #209 (Div. 2) D. Pair of Numbers
- Codeforces Round #226 (Div. 2) C. Bear and Prime Numbers
- Codeforces Round #232 (Div. 2) B. On Corruption and Numbers
- Codeforces Round #235 (Div. 2) ----D. Roman and Numbers
- Codeforces Round #226 (Div. 2)C. Bear and Prime Numbers
- Codeforces Round #136 (Div. 2) B. Little Elephant and Numbers
- Codeforces Round #235 (Div. 2) D. Roman and Numbers
- Codeforces Round #139 (Div. 2) B. Well-known Numbers
- Codeforces Round #240 (Div. 2) C. Mashmokh and Numbers
- Codeforces Round #240 (Div. 2) Mashmokh and Numbers
- Codeforces Round #150 (Div. 2) B. Undoubtedly Lucky Numbers
- Codeforces Round #FF (Div. 2) E.DZY Loves Fibonacci Numbers
- Ubuntu 常用终端命令
- jupyter notebook资料
- 蓝桥杯 算法训练 邮票
- SpringBoot使用进阶
- 利用Docker,构建宝塔linux面板镜像
- codeforces Round #451 (Div. 2) Phone Numbers
- Linux安装JDK
- 录音文件与Base64编码相互转换的方法
- Ubuntu 常用快捷键
- 大型分布式网站架构设计与实践 第四章
- Java基础—常用DOS命令
- 37. Sudoku Solver
- 早绑定和晚绑定
- ReentrantLock可重入锁的原理及使用场景