题意

给定一个整数 \(T\),代表共有\(T\)组测试用例,对于每组测试用例:

给定四个整数 \(n,m,k和w(1 \leq n,m \leq 2 * 10^5, 1 \leq w \leq n * m \leq 2 * 10^5, 1 \leq k \leq min(n, m))\),随后输入 \(w\) 个整数 \(a_i\) 代表大猩猩的高度。

你需要从 \(n * m\) 的网格中,选出所有 \(k * k\) 的子网格,并且累计所有的子网格获取到的观赏价值。一个 \(k * k\) 的子网格获取到的观赏价值定义为:该网格内全部大猩猩的高度之和。

你要做的是将 \(w\) 只大猩猩按某个方式放入 \(n * m\) 的网格中,并且每个格子至多只能放置一只大猩猩,然后获取最大的观赏价值。

题解

\(\because\) 每个各自至多只能放置一只大猩猩

\(\therefore\) 将高度较高的大猩猩优先放置在所有子网格中出现频率最高的格子,可以获取到最大的观赏价值

对于格子 \((i, j)\),在所有的子网格中出现的频率为:$$freq = (min(k, (ll)n - i) + min(0LL, i + 1 - k)) * (min(k, (ll)m - j) + min(0LL, j + 1 - k))$$

那么,总体的代码思路就是对所有各自的频率排序,并对猩猩高度排序,从大到小依次配对即可。

参考代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);
using namespace std; typedef long long ll;
constexpr int N = 2e5 + 7;
int T = 1, n, m, w;
ll k, ans;
int a1[N];
ll a2[N]; void solve() {
ans = 0;
cin >> n >> m >> k >> w;
for (int i = 0; i < w; ++ i) cin >> a1[i];
sort(a1, a1 + w, [](int &a, int &b) {
return a > b;
});
for (int i = 0; i < n; ++ i) {
for (int j = 0; j < m; ++ j) {
a2[i * m + j] = (min(k, (ll)n - i) + min(0LL, i + 1 - k)) * (min(k, (ll)m - j) + min(0LL, j + 1 - k));
}
}
sort(a2, a2 + n * m, [](ll &a, ll &b) {
return a > b;
});
for (int i = 0; i < w; ++ i) {
ans += a1[i] * a2[i];
}
cout << ans << '\n';
} int main() {
IOS
cin >> T;
while (T --) {
solve();
}
return 0;
}

E. Photoshoot for Gorillas的更多相关文章

  1. iOS Developer Libray (中文版)-- Defining Classes 定义类

    该篇是我自己学习iOS开发时阅读文档时随手记下的翻译,有些地方不是很准确,但是意思还是对的,毕竟我英语也不是很好,很多句子无法做到准确的字词翻译,大家可以当做参考,有错误欢迎指出,以后我会尽力翻译的更 ...

  2. English trip V2 - 4. Really Wild Teacher:Maple Key:Adjectives of feeling

    In this lesson you will learn how to recognize animals and describe feeling. 课上内容(Lesson) 词汇(Key Wor ...

  3. gym101350 c h m

    C. Cheap Kangaroo time limit per test 1.0 s memory limit per test 256 MB input standard input output ...

  4. css中attribute selector及pseudo class

    https://developer.mozilla.org/en-US/docs/Web/CSS/Reference#Selectors 在css3规范中,定义了以下几种类型的selector: Ba ...

  5. iOS平台iPhone和iPad免费开放源代码游戏案例列表

    此页面列表收集的是一些iPhone和iPad等iOS操作系统的开放源代码(Open Source)游戏.这些iOS开源游戏都是曾经或正发布在App Store.列表中的这些iOS开源游戏都是使用主流的 ...

  6. 最长回文子串(Mirrored String II)

    Note: this is a harder version of Mirrored string I. The gorillas have recently discovered that the ...

  7. App Store中的开源游戏汇总

    这是国外达人收集的曾经在app store上出现过,或者还在app store上卖的iOS开源游戏的列表,其中代码大部分人你托管在google code或者github上,其中有很多使用Cocos2D ...

  8. App Store上的开源应用汇总

    以下是互联网上主要的开源iOS应用的列表,在学习的时候,多看看完成的功能代码可以给我们带来很多经验,但是除了Apple官方提供的Sample Code之外,我们很难找到优质的开源项目代码,所以我搜集了 ...

  9. jQuery和CSS的拍摄效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Manacher(最长镜面回文串)

    I - O'My! Gym - 101350I Note: this is a harder version of Mirrored string I. The gorillas have recen ...

随机推荐

  1. 关于 B 先生

    B 先生是不是要疯了,他今天说的都是他妈什么几把

  2. 《赵渝强》《Docker+Kubernetes容器实战派》新书上市!!!

    用一本书掌握Docker与Kubernetes核心内容!!! 本书基于作者多年的教学与实践经验编写,分为上下两篇,共20章. 上篇(第1-11章)介绍Docoker,包含:Docker入门.Docke ...

  3. 【赵渝强老师】史上最详细的PostgreSQL体系架构介绍

    PostgreSQL是最像Oracle的开源数据库,我们可以拿Oracle来比较学习它的体系结构,比较容易理解.PostgreSQL的主要结构如下: 一.存储结构 PG数据存储结构分为:逻辑存储结构和 ...

  4. Ftrace 进阶用法

    1 前言 本文为 Ftrace 系列文章第二篇,描述 Ftrace 进阶用法.上一篇文章中我们接触到了 Ftrace 基本概念,知道了如何 trace 一个函数,知道了如何 enable 一个 tra ...

  5. 什么是 vite ?

    vite 是尤雨溪团队开发的新一代前端构建工具,作者尤雨溪宣传的时候表示 vite 是下一代的构建工具,并表示自己再也不会 webpack 了 : vite 的优点主要有3点 : 第一:开发环境中,无 ...

  6. python中队列deque的使用

    队列,堆栈是程序开发中常用的两种数据存储模型.python中队列怎么运用呢?以下内容介绍了队列的使用和队列的函数. from collections import deque q = deque() ...

  7. nicegui太香了,跨平台开发和跨平台运行--使用Python+nicegui实现系统布局界面的开发

    在现今国产化浪潮的驱动下,跨平台或者缩小范围说基于国产化Linux或者基于国产鸿蒙系统的开发才是未来的趋势了,风口浪尖上,我们开发人员也只能顺势而为,本篇随笔介绍在Python开发中,使用使用Pyth ...

  8. 在 Exchange Server 中配置特定于客户端的消息大小限制

    在 Exchange Server 中配置特定于客户端的消息大小限制 微软官方详细文档如下: https://learn.microsoft.com/zh-cn/exchange/architectu ...

  9. keycloak~token配置相关说明

    会话有效期 在 Keycloak 中,"SSO Session Idle" 和 "SSO Session Max" 是用于配置单点登录(SSO)会话的两个参数. ...

  10. mini-web 框架添加路由

    阅读目录 1.mini web框架-4-路由 2.伪静态.静态和动态的区别 3.mini-web框架-实现伪静态url 4.准备股票数据 5.mini-web框架-从mysql中查询数据 6.mini ...