CF613B 技能

2021-03-01 智子筆記
1 CF613B 技能題目連結:https://codeforces.com/problemset/problem/622/b2 題目描述

時間限制

現在

數據範圍:

3 題解

我們分析題目,發現:最終的答案與技能本身的順序無關,只與它們的具體值有關。因此,我們可以先對所有技能按照初始等級排序。

這道題要我們求的是某兩個值的和的最大值。雖然這道題看起來可以用

第一層循環,我們利用

4 代碼(空格警告):
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5+10;
#define int long long
int n, A, cf, cm, m, Left, ans, alevel, ans1, ans2, aA;
int sum1[N], sum2[N];
struct num
{
    int level, id;
}a[N];
bool cmp1(num x, num y)
{
    return x.level < y.level;
}
bool cmp2(num x, num y)
{
    return x.id < y.id;
}
bool check(int x, int ed)
{
    int l = 1, r = ed, mid;
    while (l <= r)
    {
        mid = (l+r)/2;
        if (a[mid].level < x) ans2 = mid, l = mid+1;
        else r = mid-1;
    }
    if (Left - ans2 * x + sum1[ans2] < 0) return 0;
    return 1;
}
signed main()
{
    cin >> n >> A >> cf >> cm >> m;
    for (int i = 1; i <= n; i++) cin >> a[i].level, a[i].id = i;
    sort(a+1, a+n+1, cmp1);
    ans = -1;
    for (int i = 1; i <= n; i++)
    {
        sum1[i] = sum1[i-1] + a[i].level;
        sum2[i] = sum2[i-1] + a[n-i+1].level;
    }
    for (int i = 0; i <= n; i++)
    {
        int l = a[1].level, r = A - 1, mid;
        Left = m - i * A + sum2[i];
        if (Left < 0) break;
        if (i == n)
        {
            if (ans < n * cf + A * cm)
            {
                ans = n * cf + A * cm;
                alevel = A;
                aA = n;
            }
            continue;
        }
        while (l <= r)
        {
            mid = (l+r)/2;
            if (check(mid, n - i)) ans1 = mid, l = mid + 1;
            else r = mid - 1;
        }
        if (ans < i * cf + ans1 * cm)
        {
            ans = i * cf + ans1 * cm;
            alevel = ans1;
            aA = i;
        }
    }
    cout << ans << '\n';
    for (int i = 1; i <= aA; i++) a[n-i+1].level = A;
    for (int i = 1; i <= n; i++)
    {
        if (a[i].level >= alevel) break;
        a[i].level = alevel;
    }
    sort(a+1, a+n+1, cmp2);
    for (int i = 1; i <= n; i++) cout << a[i].level << " ";
    return 0;
}

歡迎關注

相關焦點

  • 《cf》蘭屬性有什麼技能 蘭屬性技能介紹
    導 讀cf蘭屬性有什麼技能 cf中蘭的技能有防閃功能,對閃光彈免疫。
  • cf沙漠灰b點箱子跳法教學 輕鬆幾步上箱子
    問:cf沙漠灰b點箱子怎麼跳?   大家都知道cf沙漠灰b點箱子是精彩被潛伏者安保的地方,但是有很多玩家因為不會跳這個點位,而無法拆包,可以說這是一個無法修復的bug,那麼這個點位到底要如何跳呢?下面就來教大家跳法。
  • 《cf手遊》新角色孤狼怎麼樣 春節重點角色孤狼技能屬性介紹
    導 讀 穿越火線槍戰王者2019新的版本將會在1月25日正式更新上線,cf手遊2019新角色「孤狼」也會在新版本中跟大家見面
  • ...CF|穿越火線|CF9月活動|CF活動匯總|CF禮包|CF超級傭兵_網易遊戲
    :http://cf.qq.com/act/a20140829memory/活動時間:9月5日—9月15日激情九月寶妹陪你穿越火線活動地址:http://cf.qq.com/act/a20140901cyhx/活動時間:9月3日-9月30日蘭的秘密基地
  • 辦公高效佳能LBP613CDW彩色雷射印表機促
    【中關村在線 西安站】佳能LBP613Cdw雷射印表機,近日在商家「西安南唐辦公」特價促銷,優惠價為3099元 ,好物好價,值得您入手!感興趣的朋友可直接前往西安市雁塔中路19號鵬博大廈B座2609室,關於佳能LBP613Cdw雷射印表機的促銷信息也可諮詢(聯繫電話:13572029752,029-87876120 QQ:1418790086)該商家。
  • CF1月神槍節活動網址_CF1月神槍節英雄武器領取地址_CF1月神槍節...
    cf1月神槍節活動地址:http://cf.qq.com/cp/a20161219feast/pc.htm?e_code=290342  cf1月神槍節活動時間:2016年12月29日—2017年1月15日  cf1月神槍節領取時間:2016年12月29日--2017年1月15日10:00--23:59  cf1月神槍節英雄武器5選3:1月1日,加入任意一局遊戲,
  • CFWAVE模式是什麼意思 新版本WAVE有哪些新元素
    進入房間後,上面是潛伏者,下面是保衛者,進入後,點擊自個兒的專屬框框,選擇兵種(兵種有兩隻技能,主動和被動):一共5種:   等級到5級,才能使用主動技能哦,就像是Dota和LOL的大招要到6級才能使用一樣,被動技能從初期就有了,好了下邊介紹下各個兵種的技能吧——   ①爆破兵 按F鍵即出現C4炸彈,可投擲,放置於地上、牆上,扔出 爆破兵死亡後留下1顆即將引爆的手雷 C4後,再按一下即可引爆,能否利用好爆破兵的C4炸彈, 是能否快速拆塔的必要條件。
  • cf英雄武器換購系統 cf換購系統
    導 讀 CF英雄武器換購系統登錄了,為了滿足廣大CF玩家對於換購活動的需求,穿越火線為大家帶來了cf換購系統專題
  • 道聚城CF點半價活動 50Q幣購買10000CF點
    整理 近期官方再次開啟了道聚城CF點半價活動開始了,10元購2000CF點卷哦,58元購買10000cf
  • cf英雄換購計劃2016活動網址 cf換購第六期獎勵地址
    cf英雄換購計劃2016活動網址cf英雄換購計劃2016活動網址 cf換購第六期獎勵地址,CF換購2016年第六期活動地址出來了,小編帶來cf英雄換購計劃2016活動網址 cf換購第六期獎勵地址。
  • cf巴雷特M82A1武器介紹 cf大炮武器介紹
    cf cf巴雷特M82A1   槍械概述:   英文代碼:Barrett M82A1。   相關推薦:cf武器大全
  • cf非常幸運大抽獎活動地址 cf非常幸運活動介紹
    導 讀 CF幸運玩家直接來到非常幸運活動界面,即可馬上領取一份幸運禮包,不過cf非常幸運大抽獎活動地址是什麼呢
  • cf三號背包只能9.1用火線幣購買嗎? cf奧運禮包介紹
    cf三號背包只能9.1用火線幣購買嗎? cf奧運禮包介紹時間:2016-08-21 14:32   來源:川北在線整理   責任編輯:沫朵 川北在線核心提示:原標題:cf三號背包只能9.1用火線幣購買嗎? cf奧運禮包介紹 cf三號背包只能9.1用火線幣購買嗎?5個奧運禮包都有什麼?
  • 2020cf春節輪迴鑰匙順序是什麼 cf2020春節輪迴鑰匙需要多少
    2020年cf上線的春節輪迴活動中的鑰匙順序到底是怎麼樣的呢?好多小夥伴們都有在問呢,小編今天就給大家帶來了關於春節輪迴鑰匙順序介紹啦!  2020cf春節輪迴鑰匙順序是什麼  首先我們一起來看看2020穿越火線春節輪迴鑰匙順序:1、1、2、3、6、9、13、21、34 、44、56、66、99、233 ,這樣慢慢計算的話應該是需要588把鑰匙的,還是超級貴的,大家可以根據自己的需要自己決定購買多少鑰匙哦,祝大家好運哦。
  • DNF史上策劃最黑暗的一周,玩家開發票抗議,LOL和CF策劃卻躺槍
    甚至有在騰訊發票部門的玩家爆料每天都要開十萬張發票,這個發票聖戰讓dnf策劃最後也是不得不妥協了,最後終於確認b套可以升級了。沒想到dnf策劃也有妥協的時候,果然dnf玩家都不是一般人。你以為事情就這樣結束了嗎,不,還遠遠沒有。其他遊戲的玩家看到dnf玩家竟然讓策劃都妥協了,紛紛效仿開發票。
  • cf手遊藍焰背包裝備方法分享
    18183首頁 穿越火線:槍戰王者 cf手遊藍焰背包裝備方法分享 cf手遊藍焰背包裝備方法分享 來源:網絡
  • cf超級背包有什麼屬性
    cf超級背包有什麼屬性?想必有很多玩家對此不清楚,今天小編就為玩家們帶來cf超級背包屬性一覽,快來看看吧!
  • cf手遊換購系列武器 M240B蒼雷介紹
    cf這款遊戲很多玩家都十分喜歡,換購系列武器的M240B蒼雷是一把怎樣的武器,接下來就跟著18183小編來一睹究竟吧!