我吐了

这D题真的很水,难度和A题差不多(真的不夸张,很多人只是没看题把)

你要是没做出来,真的很不应该

把快乐因子分成两种,一种是大于m的,选了后,肯定闭嘴d天把快乐因子分成两种,一种是大于m的,选了后,肯定闭嘴d天把快乐因子分成两种,一种是大于m的,选了后,肯定闭嘴d天

一种是小于等于m的,选了后,没事哦一种是小于等于m的,选了后,没事哦一种是小于等于m的,选了后,没事哦~

那我们直接枚举选几个快乐因子大于m的不就行了吗?那我们直接枚举选几个快乐因子大于m的不就行了吗?那我们直接枚举选几个快乐因子大于m的不就行了吗?

比如选x个快乐因子大于m的,那我肯定拿x个快乐因子最大的,反正都是闭嘴比如选x个快乐因子大于m的,那我肯定拿x个快乐因子最大的,反正都是闭嘴比如选x个快乐因子大于m的,那我肯定拿x个快乐因子最大的,反正都是闭嘴

其中有一个快乐因子在第n天放,这样这次就不用闭嘴了,只需要消耗1天其中有一个快乐因子在第n天放,这样这次就不用闭嘴了,只需要消耗1天其中有一个快乐因子在第n天放,这样这次就不用闭嘴了,只需要消耗1天

所以此时消耗了(x−1)∗(d+1)+1所以此时消耗了(x-1)*(d+1)+1所以此时消耗了(x−1)∗(d+1)+1

剩下的几天,都选快乐因子小于等于m的且最大的,反正不用闭嘴了嘛剩下的几天,都选快乐因子小于等于m的且最大的,反正不用闭嘴了嘛剩下的几天,都选快乐因子小于等于m的且最大的,反正不用闭嘴了嘛

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[100009],b[100009],pre[100009];
int top1,top2,n,d,m;
bool com(int q,int w){return q>w;
}
signed main()
{cin >> n >> d >> m;for(int i=1;i<=n;i++){int x; scanf("%lld",&x);if( x<=m ) a[++top1]=x;//不被禁言的 else b[++top2]=x;//要被禁言的 }sort(a+1,a+1+top1,com);sort(b+1,b+1+top2,com);for(int i=1;i<=n;i++)    pre[i]=pre[i-1]+a[i];int sumn=0,ans=pre[n];//我这里强调一点,评论区也有朋友指出了//我们把其中一个大于m的放在n位置可以省掉这次的禁言时间//所以选x个大于m的最少花费(n-1)*(d+1)+1天,记作q//若最后一个不放在n,则最多可能禁言天数完全占满,最多花费n*d天,记作w//下面计算剩余可用的天数实际上是一个区间,[n-w,n-q]//若小于m的总天数不在这个区间范围,说明根本不能形成(填充)一个排列//在这个区间范围,我们肯定选可利用天数最多的,也就是yu=n-qfor(int j=1;j<=top2;j++)//被禁言几次{sumn+=b[j];int yu=(j-1)*(d+1)+1;if( yu>n )  break;yu=n-yu;//现在最多还可以选yu个不大于m的ans=max(ans,sumn+pre[yu] );} cout << ans;
}

D. Boboniu Chats with Du(暴力枚举)相关推荐

  1. D. Boboniu Chats with Du(枚举+思维)Codeforces Round #664 (Div. 2)

    原题链接: https://codeforces.com/contest/1395/problem/D 题意: 你用过QQ吧,用过QQ就跳过咯?就是你有一堆有趣的快乐因子,然后你要搞怪群主,如果你的快 ...

  2. D. Boboniu Chats with Du (664 div2 贪心 枚举)

    D. Boboniu Chats with Du 题意: 给 n 个快乐值,你可以按任何顺序在群里说出快乐值为 kik_iki​ 的话,当 m<kim<k_im<ki​ 时,你会获得 ...

  3. CodeForces - 1395D - Boboniu Chats with Du 贪心

    CodeForces - 1395D - Boboniu Chats with Du 贪心 题意:如果ai>ma_i>mai​>m,并且当天可以说话,则接下来ddd天不能说话.其余所 ...

  4. A. Boboniu Chats with Du

    A. Boboniu Chats with Du 解题思路:先将>m的和<=m的分别统计一下,然后再来枚举>m的,每次的枚举的a个都必须有一个放在最后,对于剩下的a-1个,应该消耗( ...

  5. Boboniu Chats with Du(贪心 + 前缀和)

    题目链接: Boboniu Chats with Du 大致题意: 给你n个数字, 让你给这n个数字进行合理排序, 使得结果这n个数字之和最大. 条件: 如果某个位置i出现了大于m的数字, 则接下来的 ...

  6. Codeforces1395 D. Boboniu Chats with Du(贪心)

    Have you ever used the chat application QQ? Well, in a chat group of QQ, administrators can muzzle a ...

  7. acm-(模拟、暴力枚举)Codeforces Round #664 (Div. 1) A. Boboniu Chats with Du

    传送门 将元素分为两类,大于mmm的和小于等于mmm的. 对于大于mmm的,我们将最大的那个放在序列末端,然后枚举其它元素有多少个能产生贡献,假设有xxx个能产生贡献,那么这xxx个元素还会消耗xdx ...

  8. Codeforces 1395 D. Boboniu Chats with Du(贪心枚举答案)

    传送门 题意: 思路: 先把大于m的放在b数组,小于m的放在a数组 枚举一下最终结果中用了几个b,取一个最大值即可 看代码应该能明白(有注释) 代码: int a[MAXN],b[MAXN]; ll ...

  9. codeforces-1395D Boboniu Chats with Du【前缀和】【枚举】

    题目 codeforces-1395D 题意 给出n个数的数组a,从1开始遍历数组 当a[i]<=m时,直接拿走a[i], 当a[i]>m时,拿走a[i],i后面的d个数不能拿,即a[i+ ...

最新文章

  1. 2021年机器学习的下一步是什么?
  2. Android 8.0 运行时权限策略变化和适配方案
  3. linux UID,GID,EUID,EGID,SUID,SGID
  4. java 字符串匹配_多模字符串匹配算法原理及Java实现代码
  5. java标量替换_JAVA逃逸分析、栈上分配、标量替换、同步消除
  6. 浅谈:如何加快本本的开机时间
  7. 网站可行性报告范文_孝感做可行性报告本地立项范文
  8. 关于代理。谢谢方志朋
  9. 2015到3020计算机参考文献,同等学力相关论文范文素材,与计算机网络参考文献2016年相关硕士毕业论文...
  10. android js桥接,聊一聊桥接(JSBridge)的原理(下)
  11. 动画七、动画的PropertyValuesHolder与Keyframe
  12. [译] 揭开 ARIA 的神秘面纱
  13. MySQL每秒50w+的写入,如何实现?
  14. mysql 导出dmp文件_15款优秀的mysql管理工具与应用程序推荐
  15. MySQL页面打捞工具使用方法
  16. 航班号校验正则表达式
  17. 杭州复杂美科技有限公司专利“平均实力指数”全球排名
  18. eclipse皮肤包下载链接
  19. 大数据升级治霾手段:拒绝“一刀切”误伤
  20. 回收站删除的文件怎么恢复,2个方法汇总助您快速解决

热门文章

  1. R语言结构方程模型(SEM)在生态学领域中的实践
  2. Prometheus监控实战系列九:主机监控
  3. idea选择某一列的所有数据快捷键
  4. 小学生的简易版计算器
  5. Linux(Ubuntu)安装和完美卸载Apache详细教程和配置多域名、端口映射
  6. 做了十年程序员的苏明哲被裁掉的真正原因!
  7. 原生JavaScript实现选项卡
  8. 三星Mega 6.3(i9200)删除kingroot
  9. 武器装备系统数字孪生技术
  10. android之声音管理器AudioManager的使用