PTA 7-28 单身狗 题解
PTA 7-28 单身狗 题解
没有什么难度和含金量的题,唯二需要注意的是:
- \(\texttt{java}\) 的时空开销硕大,我目前试了多种方法都无法通过,于是改用 \(\texttt{C++}\)
- 注意 \(\texttt{ID}\) 的范围与“ID为五位数”这句话!!!!!!!如果 \(\texttt{ID=1}\) 我们要输出 \(00001\) 满足五位!
满分代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6+10;
int hum[maxn];
int vis[maxn];
int mp[maxn];
int main(){
int n, m;
cin >> n;
memset(mp, -1, sizeof(mp));
for(int i=1; i<=n; i++){
int x, y;
scanf("%d %d", &x, &y);
mp[x] = y;
mp[y] = x;
}
cin >> m;
int num = 0;
for(int i=1; i<=m; i++){
int x;
scanf("%d", &x);
hum[i] = x;
vis[x] ++;
if(mp[x] == -1) num++;
else if(vis[mp[x]] == 0) num++;
else num--;
}
cout << num << endl;
sort(hum+1, hum+1+m);
int flag = 0;
for(int i=1; i<=m; i++){
int x = hum[i];
if(vis[x] && vis[mp[x]]) continue;
if(!flag) printf("%05d", x);
else printf(" %05d", x);
flag = 1;
}
return 0;
}

浙公网安备 33010602011771号