Codeforces Round #FF (Div. 2) D. DZY Loves Modification 贪心+优先队列
链接: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 贪心+优先队列相关推荐
- Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
原题链接:http://codeforces.com/problemset/problem/446/A 题意:给一个长度为n的序列,最多可以修改一个位置的数,求最长连续上升子序列. 题解:当a[i+1 ...
- Codeforces Round #FF (Div. 2) A.DYZ Loves Hash
水题.题目大意为输入一个p,n,再输入n组数据,每组数据对p取余,当和前面相同时,发现冲突,记下第几组,找到最后一组没有找到和前面一样的输出-1. *可以采用一个标记数组,就变得很简单了. A. DZ ...
- Codeforces Round #FF (Div. 2) B.DYZ Loves Strings
*思路为对26个字母的价值进行排序,找到最大的价值,加最大的价值的字母往后放,价值最大. B. DZY Loves Strings time limit per test 1 second memor ...
- Codeforces Round #FF (Div. 2)C.DYZ Loves Sequence
一道类似求严格递增子序列的题目.这道题可以改变一个数成任意数,使得严格递增子序列增加. *思路:两个标记数组from[i],to[i];from[i]的含义是从i出发的最长的严格递增序列长度,to[i ...
- Codeforces Round FF(Div. 2)
layout: post title: Codeforces Round FF(Div. 2) author: "luowentaoaa" catalog: true tags: ...
- Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...
- 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 ...
- 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 ...
- 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 ...
最新文章
- php与nginx链接,Nginx与PHP的交互
- python web开发-flask访问请求数据request
- python的优点有哪些-Python有哪些技术上的优点?比其他语言好在哪儿?
- jquery粘贴按钮_实现前端点击按钮自动复制剪贴板功能
- 第一次使用CoolEdit Pro将歌曲音频做成伴奏
- 清华钱颖一:什么造就了硅谷奇迹?这7个因素不可忽视
- Linux问题_02:tar: 它似乎不像是一个 tar 归档文件
- android导出微信朋友圈怎么发文字,微信朋友圈怎么发纯文字?看完这篇文章,你就知道该怎么操作了...
- opencv项目实践一(答题卡识别)
- 433模块-----HCS301芯片烧录器
- 华为荣耀开机停留在android,华为荣耀8变砖无法开机怎么办 华为荣耀8变砖无法开机解决方法...
- 图形学数学基础之重要性采样(Importance Sampling)
- GC是什么?为什么要用GC?
- JAVA incept_关于Inception默认配置的一个坑
- matlab神经网络应用设计 源代码,MATLAB神经网络应用设计
- Flutter中那些你需要知道的文本知识!
- SpringCloud 从入门到入土
- 英文好听的歌曲排行榜
- DS18B20读取温度(带小数)
- 三角网格参数化几种简单的方法比较
热门文章
- linux 版本信息 64位,Centos查看版本信息
- 【Python-3.5】win7安装Pygame
- 【Oracle】truncate分区表
- org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException异常解决
- Tomcat启动Maven项目异常:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
- java.net.NoRouteToHostException: No route to host解决方法
- vue 兼容IE报错解决方案
- 对服务与工厂感到困惑
- \ d效率低于[0-9]
- Win11管理员已阻止你运行此应用,有关详细信息怎么处理?