Codeforces Round #532(Div. 2) B.Build a Contest

落日映苍穹つ 2022-01-10 05:09 229阅读 0赞

链接:https://codeforces.com/contest/1100/problem/B

题意:

给n,m。

给m个数,每个数代表一个等级,没给一个将其添加到题目池中,当题目池中有难度(1-n)的题目都存在时,

即可产生一次竞赛。

每给一个数,如果可以出竞赛,输出1,否则输出0。

思路:

一个变量记录有几种题目,一个数组记录每种题目有几个。

能出题时将每种题目的数量减一,减完后为0,则记录种类变量减一。

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int MAXN = 1e5+10;
  4. int a[MAXN];
  5. int sum = 0;
  6. int main()
  7. {
  8. int n,m,v;
  9. scanf("%d%d",&n,&m);
  10. for (int i = 0;i<m;i++)
  11. {
  12. scanf("%d",&v);
  13. a[v]++;
  14. if (a[v] == 1)
  15. sum++;
  16. if (sum == n)
  17. {
  18. printf("1");
  19. for (int i = 1;i<=n;i++)
  20. {
  21. a[i]--;
  22. if (a[i] == 0)
  23. sum--;
  24. }
  25. }
  26. else
  27. {
  28. printf("0");
  29. }
  30. }
  31. printf("\n");
  32. return 0;
  33. }

  

转载于:https://www.cnblogs.com/YDDDD/p/10266136.html

发表评论

表情:
评论列表 (有 0 条评论,229人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Codeforces Round #663 (Div. 2) A

    [题目链接][Link 1] 这是一道简单题,我当时构造了一种剩余最大,剩余最小,轮番输出的方式,来实现了题目中的要求。 实际上好像还有更简单的方式,直接从大到小输出,或者

    相关 Codeforces Round #556 (Div. 2) A

    题面很简单,思路就是简单贪心,si数组是贮存购买数组,bi数组是贮存出售数组,题面是给你r的货币,让你通过出售和购买来获取最大价值,第一种算法是通过找出bi数组最大值,和si数

    相关 Codeforces Round #556 (Div. 2) A

    题面很简单,思路就是简单贪心,si数组是贮存购买数组,bi数组是贮存出售数组,题面是给你r的货币,让你通过出售和购买来获取最大价值,第一种算法是通过找出bi数组最大值,和si数