题意:求净利益。

思路:

其实我也不怎么懂题面。

不过这种题一般来说就是从最大的开始选。

所以考虑贪心。

那么代价如何处理呢??

我们考虑两个序列同时选数,把代价每次记录到一个序列的和上,那么对于两次的净利益求最大即可。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
const int maxn = 100010;
int a[maxn];
int b[maxn];
inline int solve(int *a,int *b,int n,int W) {
int sum_a = 0;
int sum_b = 0;
int ans = -999;
for(int i = 1,tmp = 0;i <= n; ++i) {
sum_a += a[i];
while(tmp <= n && sum_b < sum_a) {
sum_b += b[++tmp];
}
if(sum_a <= sum_b) {
ans = max((ll)ans,sum_a - (ll)W * (i + tmp));
}
}
return ans;
}
inline bool cmp(int a,int b) {
return a > b;
}
int n,W;
signed main () {
cin >> n >> W;
for(int i = 1;i <= n; ++i) {
cin >> a[i];
}
for(int i = 1;i <= n; ++i) {
cin >> b[i];
}
sort(a + 1,a + n + 1,cmp);sort(b + 1,b + n + 1,cmp);
int ans1 = solve(a,b,n,W);
int ans2 = solve(b,a,n,W);
printf("%lld\n",max(ans1,ans2));
return 0;
}

最新文章

  1. 三大框架SSH整合
  2. paramiko模块的安装
  3. 在input中实现点点点与当鼠标移上去时显示剩余的字
  4. HTML-学习笔记(样式)
  5. Eclipse 语法提示
  6. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
  7. 用C#打开文件对话框的方法和简单使用的程序
  8. sql自动生成汉语拼音和首字母函数
  9. Ubuntu Nginx搭建Gitweb服务器
  10. CSAPP2e:Shell lab 解答
  11. poj 2406 Power Strings【最小循环节】
  12. removeObjectAtIndex
  13. linux判断文件是否存在
  14. Dynamics CRM Odata QueryUrl中的SetName问题
  15. 填坑!!!virtualenv 中 nginx + uwsgi 部署 django
  16. MySQL官方教程及各平台的安装教程和配置详解入口
  17. 转:slf4j-api、slf4j-log4j12、log4j之间关系
  18. 阿里云申请免费https证书 + IIS服务器安装
  19. 普通用户开放 sudo 权限
  20. 温故而知新 babel-cli 的相关使用

热门文章

  1. 手机号码格式验证和 FASTDFS 工具类
  2. 使用pangolin库画出轨迹
  3. 听说这个FFT跑得巨jb快
  4. yield和生成器, 通过斐波那契数列学习(2.5)
  5. html+css判断各个IE浏览器版本
  6. Jmeter断言-所有断言讲解
  7. 2、获取APP CPU占用率
  8. mkdir和_mkdir的区别
  9. 用js onselectstart事件鼠标禁止选中文字
  10. spring boot下WebSocket消息推送