链接:http://codeforces.com/problemset/problem/447/D

题意:一个n*m的矩阵。能够进行k次操作,每次操作室对某一行或某一列的的数都减p,获得的得分是这一行或列原来的数字之和。求N次操作之后得到的最高得分是多少。

思路:首先分别统计每行和每列的数字和。

进行的k次操作中,有i次操作是对行进行操作,剩余k-i次操作是对列进行操作。

首先在操作中忽略每次操作中行对列的影响,然后计算列的时候,最后能够计算出,总共的影响是i*(k-i)*p。

找出对于每一个i次操作选取最高价值来计算出得到的最高分。记录为cn[i],rn[i](用优先队列取首)。

对于不同的i取ans=max(cn[i]+rn[k-i]-i*(k-i)*p)。

注意点是数据会超int,ans初始值要取得极小。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<queue>
#include<stack>
#include<vector>
#include<ctype.h>
#include<cstdlib>
#include<algorithm>
#include<string>
#define PI acos(-1.0)
#define maxn
typedef long long ll;
using namespace std;
long long INF =(1LL << 60);
priority_queue < long long > c,r;
int main()
{int n,m,k,p,x;long long y;scanf("%d%d%d%d",&n,&m,&k,&p);int col[1005],row[1005];long long cn[1000005],rn[1000005];for(int i=0; i<n; i++)for(int j=0; j<m; j++){scanf("%d",&x);col[j]+=x;row[i]+=x;}for(int i=0; i<n; i++)r.push(row[i]);for(int i=0; i<m; i++)c.push(col[i]);cn[0]=rn[0]=0;for(int i=1; i<=k; i++){y=c.top();cn[i]=cn[i-1]+y;c.pop();c.push(y-n*1LL*p);y=r.top();rn[i]=rn[i-1]+y;r.pop();r.push(y-m*1LL*p);}long long ans=-INF;for(int i=0; i<=k; i++)ans=max(ans,cn[i]+rn[k-i]-i*1LL*(k-i)*p);printf("%I64d\n",ans);return 0;
}

Codeforces Round #FF (Div. 2) D. DZY Loves Modification 贪心+优先队列相关推荐

  1. Codeforces Round #FF (Div. 1) A. DZY Loves Sequences

    原题链接:http://codeforces.com/problemset/problem/446/A 题意:给一个长度为n的序列,最多可以修改一个位置的数,求最长连续上升子序列. 题解:当a[i+1 ...

  2. Codeforces Round #FF (Div. 2) A.DYZ Loves Hash

    水题.题目大意为输入一个p,n,再输入n组数据,每组数据对p取余,当和前面相同时,发现冲突,记下第几组,找到最后一组没有找到和前面一样的输出-1. *可以采用一个标记数组,就变得很简单了. A. DZ ...

  3. Codeforces Round #FF (Div. 2) B.DYZ Loves Strings

    *思路为对26个字母的价值进行排序,找到最大的价值,加最大的价值的字母往后放,价值最大. B. DZY Loves Strings time limit per test 1 second memor ...

  4. Codeforces Round #FF (Div. 2)C.DYZ Loves Sequence

    一道类似求严格递增子序列的题目.这道题可以改变一个数成任意数,使得严格递增子序列增加. *思路:两个标记数组from[i],to[i];from[i]的含义是从i出发的最长的严格递增序列长度,to[i ...

  5. Codeforces Round FF(Div. 2)

    layout: post title: Codeforces Round FF(Div. 2) author: "luowentaoaa" catalog: true tags: ...

  6. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

  7. Codeforces Round #297 (Div. 2)C. Ilya and Sticks 贪心

    Codeforces Round #297 (Div. 2)C. Ilya and Sticks Time Limit: 2 Sec  Memory Limit: 256 MB Submit: xxx ...

  8. Codeforces Round #324 (Div. 2) E. Anton and Ira 贪心

    E. Anton and Ira Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...

  9. Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心

    C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...

最新文章

  1. php与nginx链接,Nginx与PHP的交互
  2. python web开发-flask访问请求数据request
  3. python的优点有哪些-Python有哪些技术上的优点?比其他语言好在哪儿?
  4. jquery粘贴按钮_实现前端点击按钮自动复制剪贴板功能
  5. 第一次使用CoolEdit Pro将歌曲音频做成伴奏
  6. 清华钱颖一:什么造就了硅谷奇迹?这7个因素不可忽视
  7. Linux问题_02:tar: 它似乎不像是一个 tar 归档文件
  8. android导出微信朋友圈怎么发文字,微信朋友圈怎么发纯文字?看完这篇文章,你就知道该怎么操作了...
  9. opencv项目实践一(答题卡识别)
  10. 433模块-----HCS301芯片烧录器
  11. 华为荣耀开机停留在android,华为荣耀8变砖无法开机怎么办 华为荣耀8变砖无法开机解决方法...
  12. 图形学数学基础之重要性采样(Importance Sampling)
  13. GC是什么?为什么要用GC?
  14. JAVA incept_关于Inception默认配置的一个坑
  15. matlab神经网络应用设计 源代码,MATLAB神经网络应用设计
  16. Flutter中那些你需要知道的文本知识!
  17. SpringCloud 从入门到入土
  18. 英文好听的歌曲排行榜
  19. DS18B20读取温度(带小数)
  20. 三角网格参数化几种简单的方法比较

热门文章

  1. linux 版本信息 64位,Centos查看版本信息
  2. 【Python-3.5】win7安装Pygame
  3. 【Oracle】truncate分区表
  4. org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException异常解决
  5. Tomcat启动Maven项目异常:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
  6. java.net.NoRouteToHostException: No route to host解决方法
  7. vue 兼容IE报错解决方案
  8. 对服务与工厂感到困惑
  9. \ d效率低于[0-9]
  10. Win11管理员已阻止你运行此应用,有关详细信息怎么处理?