zoukankan      html  css  js  c++  java
  • Codeforces Round #475 (Div. 2)

    B. Messages

      题意:有n个消息分别在ti的时候收到。设所有消息收到时初始值为A,每过一秒,其值减去B。当在某一秒选择读某个消息时,获值为当前消息的值;如果在某一秒结束的时候,手上有k则消息未读,则获值C*k。并且在T秒结束的时候,必须读完所有消息。问能获得的最大值为?

      思路:消息要么选择不读,则价值-B,但同时会获得C。因此如果C-B大于0,那么应该选择所有消息都在最后一秒读;否则应当收到的时候立即读。

     1 #include<cstdio>
     2 using namespace std;
     3 int v[1010];
     4 int main()
     5 {
     6     int n, A, B, C, T;
     7     scanf("%d%d%d%d%d", &n, &A, &B, &C, &T);
     8     for (int i = 1; i <= n; i++) scanf("%d", v + i);
     9     if (C - B > 0)
    10     {
    11         int sum = 0;
    12         for (int i = 1; i <= n; i++) sum += C * (T - v[i])+(A-B*(T-v[i]));
    13         printf("%d
    ", sum);
    14     }
    15     else
    16     {
    17         printf("%d
    ", n*A);
    18     }
    19     return 0;
    20 }
    View Code
  • 相关阅读:
    AD7606笔记
    转Keil 中使用 STM32F4xx 硬件浮点单元
    旋转编码器
    PT100/PT1000
    电压跟随器
    段式液晶驱动方法
    物联网的架构
    物联网的操作系统
    C8051开发环境
    解决time命令输出信息的重定向问题
  • 原文地址:https://www.cnblogs.com/ivan-count/p/8931785.html
Copyright © 2011-2022 走看看