洛谷 B3842:[GESP202306 三级] 春游
【题目来源】https://www.luogu.com.cn/problem/B3842【题目描述】老师带领同学们春游。已知班上有 N 位同学每位同学有从 0 到 N−1 的唯一编号。到了集合时间老师确认是否所有同学都到达了集合地点就让同学们报出自己的编号。到达的同学都会报出自己的编号不会报出别人的编号但有的同学很顽皮会多次报出。你能帮老师找出有哪些同学没有到达吗 ?【输入格式】输入包含 2 行。第一行包含两个整数 N 和 M表示班级有 N 位同学同学们共有 M 次报出编号。约定 2≤N,M≤1000。第二行包含 M 个整数分别为 M 次报出的编号。约定所有编号是小于 N 的非负整数。【输出格式】输出一行。如果所有同学都到达则输出 N否则由小到大输出所有未到达的同学编号空格分隔。【输入样例】3 50 0 0 0 0【输出样例】1 2【数据范围】2≤N,M≤1000【算法分析】题目核心是统计哪些编号的同学没有报数然后输出结果。【算法代码】#include bits/stdc.h using namespace std; const int N1e35; int st[N]; int n,m; int main() { memset(st,0,sizeof st); cinnm; while(m--) { int x; cinx; st[x]true; } bool alltrue; for(int i0; in; i) { if(!st[i]) { allfalse; break; } } if(all) coutnendl; else { for(int i0; in; i) { if(!st[i]) couti ; } } return 0; } /* in: 3 5 0 0 0 0 0 out: 1 2 */【参考文献】https://www.luogu.com.cn/problem/solution/B3842https://gesp.ccf.org.cn/101/attach/1569361659691040.pdf