codeforces B - Collecting Game

这篇具有很好参考价值的文章主要介绍了codeforces B - Collecting Game。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分析

  • a i a_i ai 小的一定对 a n s i ans_i ansi 有贡献(应该加上)。加上之后 s c o r e score score 变大,在 s c o r e score score 变大的过程中可能会有更多的 a j a_j aj 小于 s c o r e score score
  • 很容易想到排序,排序之后当前 s c o r e score score 就是 ∑ j = 1 i a j \sum\limits_{j = 1}^ia_j j=1iaj ,设 d p i dp_i dpi 表示当前 i i i 往右能覆盖的最多个数。双指针找到最大范围 r r r ,那么 a n s i = r − i + d p i ans_i = r - i + dp_i ansi=ri+dpi

Think Twice, Code Once文章来源地址https://www.toymoban.com/news/detail-808304.html

signed main() {
 
    int T = 1;
    T = read();
    while (T--) {
        int n = read();
        vector<pii> a(n + 1);
        int sum = 0;
        for (int i = 1; i <= n; ++i) {
            a[i].first = read(), a[i].second = i;
            sum += a[i].first;
        }
        sort(a.begin() + 1, a.end());
        int r = n;
        vector<int> dp(n + 1), ans(n + 1);
        ans[a[n].second] = n - 1;
        for (int i = n - 1; i >= 1; --i) {
            sum -= a[i + 1].first;
            while (a[r].first > sum) --r;
            dp[i] += r - i + dp[r];
            ans[a[i].second] = i - 1 + dp[i];
        }
        for (int i = 1; i <= n; ++i) writesp(ans[i]);
        puts("");
    }
    return 0;
}

到了这里,关于codeforces B - Collecting Game的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Codeforces Mahmoud the Thief(思维)

    As Ayoub was going home from Mahmoud\\\'s house, he remembered that he forgot his hard disk, which contains the solutions to n problems from the JU Flash contest. The ith problem has size ai. While panicking, he remembered that he installed a software that prevented the user from copying any files and only allowed the files to be cut from the hard disk in

    2024年02月09日
    浏览(43)
  • Codeforces 1855E 数学期望 + DP

    题意 传送门 Codeforces 1855E Expected Destruction 题解 将 S i S_i S i ​ 运动至 S i + 1 S_{i+1} S i + 1 ​ 的情况看作后者消失,则 S i S_i S i ​ 在碰到 S i + 1 S_{i + 1} S i + 1 ​ 前, S i + 1 S_{i + 1} S i + 1 ​ 必然存在。 根据数学期望的线性性质,可以独立地考虑每一个 S i S_i S i ​ 在碰到 S i

    2024年02月06日
    浏览(41)
  • CodeForces CF1846G 题解

    CodeForces题目链接 洛谷题目链接 标准答案是状压之后,转化成Dijkstra算法跑最短路。我这里提供一个不一样的思路。 主人公得了病,有部分类型的症状。所有类型症状共有 (n) 种,用长为 (n) 的01串表示是否有那种症状。共有 (m) 种药,吃第 (i) 种药需要花费时间 (t_i) ,

    2024年02月14日
    浏览(39)
  • 湘大 XTU OJ:1406 String Game、1098 素数个数 题解(非常详细)

    1406 String Game Alice和Bob正在玩一个基于字符串的游戏,一开始, Alice和Bob分别拥有一个等长的字符串S1和S2 ,且这两个字符串只包含小写字母。 在每个回合中, Alice和Bob 必须 分别选择自己的字符串的某一个位置并把这个位置上的字母改变为其他小写字母 。 经过P个回合后,他

    2024年02月13日
    浏览(41)
  • codeforce #925 (div3) 题解

    D. Divisible Pairs 给出数组 a a a ,如果二元组 ( i , j ) (i,j) ( i , j ) 满足 a i + a j m o d x = = 0 a i − a j m o d y = = 0 a_i + a_j mod x ==0 \\\\ a_i - a_j mod y == 0 a i ​ + a j ​ m o d x == 0 a i ​ − a j ​ m o d y == 0 ,则beauty。其中 i j ij i j 根据题意不难得出,符合条件的二元组应满足 a i m o d    x

    2024年04月16日
    浏览(36)
  • Codeforces Round 889 (Div. 2) 题解

    晚上睡不着就来总结一下叭~(OoO) 终榜!!! 先不放图了。。怕被dalaoHack...呜呜呜~         7.29半夜比赛,本来是不想打的,感觉最近做的题太多了,什么牛客杭电以及CF上的题等等等,挺杂的,也来不及整理,本想梳理一下,而且也感觉今天状态不太好,但见他们都要

    2024年02月15日
    浏览(48)
  • Codeforces Round 875 (Div. 1) 题解

    You are given two arrays a and b both of length n. Your task is to count the number of pairs of integers ( i , j ) (i,j) ( i , j ) such that 1 ≤ i j ≤ n 1≤ij≤n 1 ≤ i j ≤ n and a i ⋅ a j = b i + b j a_i⋅a_j=b_i+b_j a i ​ ⋅ a j ​ = b i ​ + b j ​ 。 1 ≤ a i , b i ≤ n 1≤a_i,b_i≤n 1 ≤ a i ​ , b i ​ ≤ n 考虑 m i n ( a i

    2024年02月08日
    浏览(44)
  • Codeforces Round 877 (Div. 2) 题解

    写了两题了,先总结一下吧。。。看了三题,都是思维题构造题,搞心态真的搞心态。。。感觉自己屁都不会,完全没有动力。。。有的有思路但是写不出来,但是思路不够成熟,练的题太少,其实这场到B题就卡住了,C题也是,题意都能读懂,但是思考的方向不对,很焦虑

    2024年02月10日
    浏览(41)
  • Codeforces Round 858 (Div. 2)题解

    目录 A. Walking Master(贪心) 题面翻译 思路: 代码实现  B. Mex Master(贪心) 题面翻译: 思路: 代码实现 C. Sequence Master(数学) 题面翻译: 思路: 代码实现 YunQian is standing on an infinite plane with the Cartesian coordinate system on it. In one move, she can move to the diagonally adjacent point on the

    2023年04月08日
    浏览(80)
  • Codeforces Round 830 (Div. 2)题解

    1A 这个设计到一个常识,如果知道能在三分钟之内解题: 相邻的两个数字的gcd肯定是1::这个没有问题,比如gcd(1,2),比如gcd(3,4) 但是我想要任何两个数字的的最大公约数为1,我们直接让这两个数字等于除以相邻的两个数字的结果就行, 结果必然是两个树的因子,两个相邻的

    2024年02月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包