zoukankan      html  css  js  c++  java
  • Exam in BerSU (easy version) (模拟)

    题目链接:http://codeforces.com/problemset/problem/1185/C1

    题目大意:

    有n个学生排队依次进行考试(一次只能有一名同学进行考试,俺也不知道为啥,俺也不敢问),考试时间共计m,每个考生考试需要若干时间,考试时间结束后,没有时间考试的同学就不能考了。输入分两行,第一行为学生人数和考试时间,第二行输入每个考生考试需要多少时间。要去输出按照输入的考试时间来看,该同学如果想通过考试,他前面最少有几个同学不能参加考试(因为如果每个人都考的话,时间不够用)。题目保证数据正确(不会有某个学生通过考试的时间比考试总时间还长的情况)

    思路:

    分两种情况,一种是该同学和他之前的人都参加考试,也都能通过(时间足够),此时最少不参加考试人数为0;另一种情况即是考试时间不够用的时候了,此时,对数组排序(排序的人,应该是这位不能参与考试的同学前面的所有人,让他们中一部分人让出考试名额,让这位同学考试),优先让占用时间长的同学退出考试,直至遍历到的这位同学有足够时间通过考试,记录下有多少同学退出考试

    具体代码:

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <stdlib.h>
     4 #include <string>
     5 #include <string.h>
     6 #include <set>
     7 #include <queue>
     8 #include <math.h>
     9 #include <stdbool.h>
    10 
    11 #define LL long long
    12 #define inf 0x3f3f3f3f
    13 using namespace std;
    14 const int MAXN=1000005;
    15 
    16 
    17 int n,m;
    18 int a[105],b[105],pre[105];
    19 
    20 int main()
    21 {
    22 #ifndef ONLINE_JUDGE
    23     freopen("../in.txt","r",stdin);
    24 #endif
    25     scanf("%d%d",&n,&m);
    26     for (int i=0;i<n;i++)
    27     {
    28         cin >> a[i];
    29         if (i!=0)
    30             pre[i] = a[i]+pre[i-1];
    31         if (i==0)
    32             pre[i] = a[i];
    33     }
    34     for (int i=0;i<n;i++)
    35     {
    36         int sum = pre[i];
    37         b[i] = 0;
    38         if (sum>m)
    39         {
    40             int people = 0;
    41             sum -= a[i];
    42             sort(a,a+i);
    43             for (int j=i-1;j>=0;j--)
    44             {
    45                 sum -= a[j];
    46                 people++;
    47                 if (sum+a[i]<=m)
    48                     break;
    49             }
    50             b[i] = people;
    51         }
    52     }
    53     for (int i=0;i<n-1;i++)
    54         printf("%d ",b[i]);
    55     printf("%d
    ",b[n-1]);
    56     return 0;
    57 }
  • 相关阅读:
    python后端面试题
    Django模块
    centos 6.x下jira显示饼图乱码解决方法
    Confluence与Jira安装及后期迁移问题记录
    SaltStack安装部署
    jumpserver跳板机(堡垒机)安装
    Python之Web前端Ajax
    python3.6下pycharm连接mysql
    Mac下安装SecureCRT客户端并激活
    Python模块之paramiko
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/11221062.html
Copyright © 2011-2022 走看看