Qbxt 模拟题 day3(am) T3 选数字 (select)(贪心)
选数字 (select
Time Limit:3000ms Memory Limit:64MB
题目描述
LYK 找到了一个 n*m 的矩阵,这个矩阵上都填有一些数字,对于第 i 行第 j 列的位置上
的数为 ai,j。
由于它 AK 了 noip2016 的初赛,最近显得非常无聊,便想到了一个方法自娱自乐一番。
它想到的游戏是这样的: 每次选择一行或者一列, 它得到的快乐值将会是这一行或者一列的
数字之和。之后它将该行或者该列上的数字都减去 p(之后可能变成负数) 。如此,重复 k
次,它得到的快乐值之和将会是它 NOIP2016 复赛比赛时的 RP 值。
LYK 当然想让它的 RP 值尽可能高,于是它来求助于你。
输入格式(select.in)
第一行 4 个数 n,m,k,p。
接下来 n 行 m 列,表示 ai,j。
输出格式(select.out)
输出一行表示最大 RP 值。
输入样例
2 2 5 2
1 3
2 4
输出样例
11
数据范围
总共 10 组数据。
对于第 1,2 组数据 n,m,k<=5。
对于第 3 组数据 k=1。
对于第 4 组数据 p=0。
对于第 5,6 组数据 n=1,m,k<=1000。
对于第 7,8 组数据 n=1,m<=1000,k<=1000000。
对于所有数据 1<=n,m<=1000,k<=1000000,1<=ai,j<=1000,0<=p<=100。
样例解释
第一次选择第二列,第二次选择第二行,第三次选择第一行,第四次选择第二行,第五
次选择第一行,快乐值为 7+4+2+0+-2=11。
/*
贪心+预处理.
处理出行和列分别选i次的最优值.
然后行选i次,列选k-i次相加减去中间重复的.
一开始暴力n==1处理和这个差不多.
暴力的时候也想处理出一些东西.
但是想到可能会对后面有影响
so 没处理(orz).
然后T挺了.
这题就是这点儿想不过来.
以后认识问题要深刻.
*/
#include<iostream>
#include<cstdio>
#include<queue>
#define LL long long
#define MAXN 1000001
#define MAXM 1001
using namespace std;
LL sum[MAXN],sum1[MAXN],ans=-1e18,c[MAXM],l[MAXM],xx;
LL n,m,k,p,g[MAXM][MAXM];
priority_queue<long long,vector<long long> >q;
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x*f;
}
void slove()
{
for(int i=1;i<=m;i++) q.push(c[i]);
for(int i=1;i<=k;i++) xx=q.top(),sum1[i]=sum1[i-1]+xx,q.pop(),q.push(xx-n*p);
while(!q.empty()) q.pop();
for(int i=1;i<=n;i++) q.push(l[i]);
for(int i=1;i<=k;i++) xx=q.top(),sum[i]=sum[i-1]+xx,q.pop(),q.push(xx-m*p);
for(int i=0;i<=k;i++)
ans=max(ans,sum[i]+sum1[k-i]-i*(k-i)*p);
return ;
}
int main()
{
freopen("select.in","r",stdin);
freopen("select.out","w",stdout);
n=read(),m=read(),k=read(),p=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
g[i][j]=read(),c[j]+=g[i][j],l[i]+=g[i][j];
slove();
cout<<ans;
return 0;
}
Qbxt 模拟题 day3(am) T3 选数字 (select)(贪心)的更多相关文章
- 2019.10.1 qbxt模拟题
第一题 考虑树上\(DP\),f[i][j][0/1]表示以\(i\)为根的子树,入读为零点的个数为\(j\),点\(i\)的入度为\(0\)/不为\(0\)时的方案数 转移的时候考虑\(u\)的一个 ...
- Qbxt 模拟题 day2(am) T2 jian
[问题描述] 有N个数,随机选择一段区间,如果这段区间的所有数的平均值在[L,R]中则你比较厉害.求你比较厉害的概率. [输入格式] 第一行有三个数N, l, r,含义如上描述. 接下来一行有N个数代 ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
- QBXT模拟赛2
总结 期望得分:\(100 + 40 + 0 = 140\) 实际得分:\(0 + 0 + 0 = 0\) 鬼知道为什么我代码没有交上..自测\(10 + 50 + 0\)--这是心态爆炸的一场考试 ...
- 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...
- NOIP模拟题汇总(加厚版)
\(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...
- QBXT模拟赛1
总结 期望得分:\(100 + 80 + 10 = 190\) 实际得分:\(90 + 80 + 10 = 180\) 这是在清北的第一场考试,也是在清北考的最高的一次了吧..本来以为能拿\(190\ ...
- CSP复赛day2模拟题
没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...
- poj 1008:Maya Calendar(模拟题,玛雅日历转换)
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64795 Accepted: 19978 D ...
随机推荐
- linux内核钩子--khook
简介 本文介绍github上的一个项目khook,一个可以在内核中增加钩子函数的框架,支持x86.项目地址在这里:https://github.com/milabs/khook 本文先简单介绍钩子函数 ...
- 【hash】珍珠
[来源] https://loj.ac/problem/2427 [参考博客] LOJ#2427. 「POI2010」珍珠项链 Beads [题解]: 复杂度计算: 暴力枚举k每次计算是n/2+n/3 ...
- python基础知识0-4
collection 他是对字典 元组 集合 进行加工的 是计数器 无论 深 ,浅 ,赋值 拷贝 内存地址都不变 赋值也是拷贝的一种 拷贝分两类数字 字符串 另一类: 列表 字典 元组 这一类还分两 ...
- 怎样修改输入框 placehoder 提示文本的颜色?
1. 在这个问题上, 不同浏览器的设置方法有所差异, 可以写成下面这种形式. ::-webkit-input-placeholder { /* WebKit browsers */ color: #9 ...
- 作业7:常用java命令(一)
一.Javac(java compiler) 1.功能:javac是一种前端编译器,负责将源代码转换为字节码. 2.例子 (1)代码 public class TestJavac { static c ...
- jsonp的跨域原理
在开发测试中,难免会在不同域下进行跨域操作,出于安全性考虑,浏览器中的同源策略阻止从一个域上加载的脚本获取或者操作 另一个域下的文档属性,这时需要进行跨域的方式进行解决,如:使用jsonp ,ifra ...
- 在vue-cli项目中使用bootstrap
1.安装插件 npm install jquery --save npm install bootstrap --save npm install popper.js --save 2.配置webpa ...
- 解决GitHub下载资源慢的问题
打开 C:\Windows\System32\drivers\etc\hosts 添加 # GitHub 解决下载速度慢的问题 192.30.253.113 github.com 151.101.18 ...
- python调用其他脚本
1.用python调用python脚本 #!/usr/local/bin/python3. import time import os count = str = ('python b.py') re ...
- vue +echarts树状图
<template> <div :class="className" :id="id" :style="{height:height ...