http://codeforces.com/problemset/problem/446/B

分别将每行的和与每列的和存入优先队列,计算操作n次的最大和,保存每一次结果。

枚举行和列操作的次数,注意要减去补偿的值。

#include<cstdio>
#include<algorithm>
#include<queue>
#include<iostream> using namespace std;
long long a[][],r[],c[];
long long rr[],cc[];
int main()
{ int n,m,k,p;
scanf("%d%d%d%d",&n,&m,&k,&p);
for(int i = ;i <= n;i++)
{
for(int j = ;j <= m;j++)
{
scanf("%lld",&a[i][j]);
r[i] += a[i][j];
c[j] += a[i][j];
}
}
priority_queue<long long> q;
for(int i = ;i <= n;i++)
{
q.push(r[i]);
}
for(int i = ;i <= k;i++)
{
long long temp = q.top();
q.pop();
rr[i] = rr[i-]+temp;
temp -= p*m;
q.push(temp);
}
while(!q.empty())
{
q.pop();
}
for(int i = ;i <= m;i++)
{
q.push(c[i]);
}
for(int i = ;i <= k;i++)
{
long long temp = q.top();
q.pop();
cc[i] = cc[i-]+temp;
temp -= p*n;
q.push(temp);
}
long long sum = -1LL<<;
for(int i = ;i <= k;i++)
{
sum = max(sum,rr[i]+cc[k-i]-1LL*p*i*(k-i));
}
cout << sum << endl;
return ;
}

Codeforces_446_B的更多相关文章

随机推荐

  1. 怎样使我们的用户不再抵触填写Form表单?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/8-tips-for-an-awesome-sign ...

  2. Mysql备份与恢复(2)---逻辑备份

    数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小.上一篇针对使用xtrabackup工具进行物理备份和数据恢复做了一个详细讲解,本篇 ...

  3. 初学者的API测试技巧

    API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层 ...

  4. ffmpeg参数编码大全

    ffmpeg version N-49044-g89afa63 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 19 2013 2 ...

  5. Java小白集合源码的学习系列:ArrayList

    ArrayList源码学习 本文基于JDK1.8版本,对集合中的巨头ArrayList做一定的源码学习,将会参考大量资料,在文章后面都将会给出参考文章链接,本文用以巩固学习知识. ArrayList的 ...

  6. web实现点击左侧导航,右侧加载不同的网页(这种布局多用于后台管理系统)

    (1)实现方法:采用ajax实现点击左侧菜单,右侧加载不同网页(在整个页面无刷新的情况下实现右侧局部刷新,用到ajax注意需要在服务器环境下运行,从HBuilder自带的服务器中打开浏览效果即可) ( ...

  7. python打印图形

    i = 0 while i < 5: # print('*****') 效果与下行相同 print('*'*5) i+=1 print('\n\n') i = 1 while i < 6: ...

  8. VirtualBox扩充磁盘&清空安装包

    1.virtual box 扩充磁盘空间 D:\VirtualBox\VBoxManage.exe modifyhd "E:\virtual box\daisyyun\daisyyun.vd ...

  9. java 数组2

    一.创建异常 1.空指针异常 2.超出索引范围 二.遍历 for循环 三.求数组中的最大值 package cn.wt.day05.demon02; public class DemonArray03 ...

  10. python接口自动化测试 - unittest框架suite、runner详细使用

    test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 ...