zoukankan      html  css  js  c++  java
  • CF1394A Boboniu Chats with Du

    传送门

    注:把大于m的ai自身看作没有价值,即价值为0

    补:图中方块长度为4是错的,应该是3.即20覆盖0 0 0    18覆盖 1 2 2  17覆盖2 4 5

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <cmath>
     6 #include <queue>
     7 #include <vector>
     8 #include <cstring>
     9 #include <functional>
    10 #include <map>
    11 #define LL long long
    12 #define lson(rt) (rt << 1)
    13 #define rson(rt) (rt << 1 | 1)
    14 using namespace std;
    15 
    16 const int N = 1e6 + 10;
    17 
    18 void fun()
    19 {
    20 
    21     int sum = 0;
    22     int x;
    23     while(cin >> x) sum += x;
    24     cout << "sum =  " << sum << endl;
    25 }
    26 
    27 void solve ()
    28 {
    29     //fun();
    30     int n, d, m;
    31     scanf("%d%d%d", &n, &d, &m);
    32     d++;
    33     vector<LL > tmp, v, add;
    34     for(int i = 0; i < n; ++i) {
    35         long long x;
    36         scanf("%lld", &x);
    37         tmp.push_back(x);
    38     }
    39     sort(tmp.begin(), tmp.end());
    40     for(auto x : tmp) cout << x << " ";
    41     cout << endl;
    42     long long sum = tmp[n - 1];
    43     for(int i = 0; i < n - 1; ++i) {
    44         if(tmp[i] > m) {
    45             v.push_back(0);
    46             add.push_back(tmp[i]);
    47         } else v.push_back(tmp[i]);
    48     }
    49     sort(v.begin(), v.end());
    50     sort(add.begin(), add.end());
    51     reverse(add.begin(), add.end());/*
    52     for(auto x : v) cout << x << " ";
    53     cout << endl;
    54     for(auto x : add) cout << x << " ";
    55     cout << endl;*/
    56     int _add = add.size();
    57     int _v = v.size();
    58     int l = 0;
    59     for(int i = 0; i < _add; ++i) {
    60       //  l += d;
    61         if(l + d > _v) break;
    62         long long x = 0;
    63         for(int j = l; j < l + d; ++j) x += v[j];
    64         if(x < add[i]) {
    65             sum += add[i];
    66             l += d;
    67         } else break;
    68     }
    69     for(int i = l; i < _v; ++i) sum += v[i];
    70    // printf("value = %d
    ", sum);
    71     printf("%lld
    ", sum);
    72 }
    73 
    74 int main ()
    75 {
    76   //  ios::sync_with_stdio(false);
    77   //  cin.tie(0); cout.tie(0);
    78 
    79     solve();
    80 
    81     return 0;
    82 }
    1
  • 相关阅读:
    element table 树形结构
    vue element模拟select 内容树形显示
    vue 不人为知的小技巧
    【转】 我的java web登录RSA加密
    【转】 java RSA加密解密实现
    【转】 Java 进行 RSA 加解密时不得不考虑到的那些事儿
    【转】 基于C#.NET的高端智能化网络爬虫 2
    【转】 基于C#.NET的高端智能化网络爬虫
    【转】黄聪:HtmlAgilityPack教程案例
    【转】 HtmlAgilityPack使用——XPath注意事项
  • 原文地址:https://www.cnblogs.com/SSummerZzz/p/14287397.html
Copyright © 2011-2022 走看看