题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82662#problem/A
题目:DZY Loves Modification
第一次接触优先队列,直接选择了百度,做完之后,对优先队列的理解也没有加深,明天有空会继续看优先队列相关的知识点
本题的意思是说:我有一个n*m的矩阵,我要对它进行k次操作,每次操作只能对行或者列进行操作,操作之后该行或列会减p,并且会ans+行或列的元素之和,求出操作之后最大的ans的值
可以先只考虑,对行进行了i次操作,之后对列进行k-i次操作,即,行操作对列操作的影响为i*(k-i)*p,每次操作之后对应的行or列会对应的减少p*n or p*m,
选出其中:行元素之和+列元素之和-i*p*(k-i) 的最大值即可
include
include
include
include
include
using namespace std;
define ll __int64
define N 1005
define M 1000005
ll matrix[N][N];
ll hang[M] ,lie[M];
priority_queue< pair