当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
#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!d(); 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!d(); 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;
}
。。。。。。。。。
写了那么久只有前面的测试数据通过。
希望能够给点建议,后面会继续改正。
本文发布于:2024-01-28 03:46:03,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063847654546.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |