本文主要是介绍PTA-天梯赛---当芸芸众生忙着在朋友圈中发照片的时候。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
#include<iostream>
#include<vector>
#include<map>
using namespace std;
int sum,ans,ans1,ans2;
int main() {int N,K,M,L;//定义的符号与题目中的意义是相同的vector<int> vt,vt1,vt2,vt3;map<int,bool> mp;cin>>N;for(int i=0; i<N; i++) {cin>>K;for(int j=0; j<K; j++) {cin>>M;vt.push_back(M);//把所有人的ID压入到vt容器中}}cin>>L;//待查询的人数int a[L];//待查询的IDfor(int i=0; i<L; i++) {cin>>a[i];}for(int i=0; i<L; i++) {for(vector<int>::iterator it=vt.begin(); it!=vt.end(); it++) {if(a[i]==*it) {vt1.push_back(a[i]);//找出 待查询的ID与全部的ID相同的ID,并压入vt1容器中ans++;//一共有多少个是相同的break;//一找到相同的就跳出循环,寻找下一个ID.这样好知道是否有不相同的,//方便计算ans,好判断是否有不同的。}}}if(ans==L)cout<<"No one is handsome";//如果都是相同的,就是ans==L。else {for(int i=0; i<L; i++) {//vt1是 待查询的ID与全部的ID相同的ID;for(vector<int>::iterator it1=vt1.begin(); it1!=vt1.end(); it1++) {if(a[i]!=*it1) ans1++;}if(ans1==vt1.size()) {//找出查询没有的ID;vt2.push_back(a[i]);}ans1=0;}//但是查询不到的ID中,会有重复的。比如:55555 44444 10000 88888 23333 88888//有两个88888,要除去其中的一个88888,且不改变元素原来的位置。for(int i=0; i<vt2.size(); i++) {//除去重复数字且不改变元素原来的位置。if(!mp[vt2[i]]) {vt3.push_back(vt2[i]);mp[vt2[i]]=true;}}for(int i=0; i<vt3.size(); i++) {//最后输出且末尾不能有空格。ans2++;if(ans2==vt3.size())cout<<vt3[i];//判断是否是最后一个数字,如果是就不输出空格 //else cout<<vt3[i]<<" ";}}return 0;
}
。。。。。。。。。
写了那么久只有前面的测试数据通过。
希望能够给点建议,后面会继续改正。
这篇关于PTA-天梯赛---当芸芸众生忙着在朋友圈中发照片的时候。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!