admin管理员组

文章数量:815885

C++上网统计

内存限制:256 MiB

时间限制:1000 ms

题目类型:传统评测方式:文本比较

题目描述

在一个网络系统中有N个用户1≤N≤1000、M次上网记录1≤M≤5000。每个用户可以自己注册一个用户名,每个用户名是一个只含小写字母的字符串。每个上网的账号每次上网都会浏览网页,网页名是一串只含小写字母的字符串,每次上网日志都会留下记录,现在请你统计一次上网日志中,每个用户浏览了多少个网页。(输出按照输入顺序输出)

输入格式

第一行N和M 第2行到第M+1行为M条上网日志,每行两个字符串,用空格隔开

输出格式

N个ID的上网记录,具体看样例

样例

样例输入

复制5 7
guomao wangyi
lifan tengxun
zhoushijian souhu
zhangshilin tengxun
guomao souhu
zhoushijian wangyi
liuyang bilibili

样例输出

复制guomao wangyi souhu
lifan tengxun
zhoushijian souhu wangyi
zhangshilin tengxun
liuyang bilibili

结构体:

#include<bits/stdc++.h>
using namespace std;
struct node{string a,b;
}a[5005];
int n,m;
bool c;
int main(){//ios::sync_with_stdio(false);scanf("%d %d",&n,&m);for(int i=1;i<=m;i++){cin>>a[i].a>>a[i].b;}for(int i=1;i<=m;i++){c=1;for(int j=1;j<i;j++){if(a[i].a==a[j].a){c=0;break;}}if(c){n--;cout<<a[i].a<<" "<<a[i].b;for(int j=i+1;j<=m;j++){if(a[i].a==a[j].a){cout<<" "<<a[j].b;}}cout<<endl;}if(n==0){break;}}return 0;
}

STL:

#include<bits/stdc++.h>
using namespace std;
int n,m;
queue<pair<string,string> >q;
int main(){cin>>n>>m;for(int i=1;i<=m;i++){string s1,s2;cin>>s1>>s2;q.push(make_pair(s1,s2));}for(int i=1;i<=n;i++){string ss=q.front().first;cout<<ss<<" ";int ll=0;for(int i=1;i<=m;i++){if(q.front().first==ss){cout<<q.front().second<<" ";q.pop(),ll++;}else q.push(q.front()),q.pop();}cout<<endl,m-=ll;}return 0;
}

本文标签: C上网统计