AcWing 1353. 滑雪场设计
思路
本题如果以贪心的思路来理解,则会遇到如果根据贪心算法变更后的最高峰和最低峰会发生改变,产生后效性,导致贪心算法无效,再考虑到本题目数据量不大,山峰数量在1k以内,山峰高度在100之内,正所谓暴力出奇迹,可以使用枚举的方法对每个山峰高度进行枚举,从而得到最小的花费。
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N];
int main()
{
int res = 0x3f3f3f;//求最小值,则初始化为最大值
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i+17<100;i++)//对每类山峰高度进行枚举,找出所有可能的山峰高度
{
int cost = 0,l = i, r = i+17;//初始化
for(int j=0;j<n;j++)//对于每个高度,枚举遍历每个山峰进行计算并求和
{
if(a[j] < l) cost += (a[j] - l) * (a[j] - l);//当前山峰高于我的期望高度l
else if(a[j] > r) cost += (r - a[j]) * (r - a[j]);//当前山峰低于我的期望高度r
}
res = min(cost, res);
}
cout<<res<<endl;
return 0;
}
AcWing 1353. 滑雪场设计的更多相关文章
- USACO翻译:USACO 2014 JAN三题(1)
USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...
- 剑指 Offer
3.1 找出数组中重复的数 来源:AcWing 题目描述 给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内. 数组中某些数字是重复的,但不知道有几个数字重复了,也不 ...
- AcWing 1052. 设计密码
//f[i][j]表示前 i 个字符与字符串匹配长度为 j 时的方案数 #include <cstring> #include <iostream> #include < ...
- acwing 23. 矩阵中的路径
习题地址 https://www.acwing.com/problem/content/description/21/ 题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路 ...
- AcWing 901. 滑雪
地址 https://www.acwing.com/problem/content/description/903/ 题目描述给定一个R行C列的矩阵,表示一个矩形网格滑雪场. 矩阵中第 i 行第 j ...
- AcWing 1248. 灵能传输 蓝桥杯
蓝桥杯的一道题:灵能传输 https://www.acwing.com/problem/content/description/1250/ 首先是简化操作,将原数组转化为前缀和数组(下标都是从1开始) ...
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成
阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...
- 设计爬虫Hawk背后的故事
本文写于圣诞节北京下午慵懒的午后.本文偏技术向,不过应该大部分人能看懂. 五年之痒 2016年,能记入个人年终总结的事情没几件,其中一个便是开源了Hawk.我花不少时间优化和推广它,得到的评价还算比较 ...
- 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车
阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...
随机推荐
- mysql 获取表信息 表备注等
select table_name, table_comment, create_time, update_time from information_schema.tables-- where ta ...
- 20200925--矩阵乘法(奥赛一本通P94 多维数组)
计算两个矩阵的乘法.n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵C是n*k阶的,且C[i][j]=A[i][0]*B[0][j]+A[i][1]*B[1][j]+...+A[i][m-1]*B[m- ...
- Python爬虫之Scrapy框架爬虫实战
Python爬虫中Scrapy框架应用非常广泛,经常被人用于属于挖掘.检测以及自动化测试类项目,为啥说Scrapy框架作为半成品我们又该如何利用好呢 ?下面的实战案例值得大家看看. 目录: 1.Scr ...
- Verilog 变量中位的数值类型
Verilog 变量中位的数值类型 Verilog变量中每个位(bit)的数值类型有四种,分别为1,0,Z,X.其中1,0比较明确就是高.低电平.而x, z在逻辑设计中也经常用到来建模.X,Z既可以大 ...
- STL练习-排列2
Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ...
- MySql创建表遇到的问题
SQL语句如下: CREATE TABLE IF NOT EXISTS `student`{ `id` INT(4) NOT NULL COMMENT '学号', `name` VARCHAR(30) ...
- ASP.NET的MVC模式中分布页和布局页的使用
大概描述一下,分布页是布局页的一部分,分布页就相当于小图标,布局页就相当于PPT模板,PPT模板可以加入一些小图标(分布页),你只需要改改内容就好,视图创建的时候要选择包含布局页的 首先,去Contr ...
- 更新kubeadm kubernets平台证书
证书过期失效: Unable to connect to the server: x509: certificate has expired or is not yet valid 更新证书: 1.查 ...
- PHP 二维按照某个字段对数组排序
function arraySort($arr, $keys, $type = 'asc') {//二维按照某个字段对数组排序 $keysvalue = $new_array = array(); f ...
- PyQt5高级窗口组件
https://blog.csdn.net/A642960662/article/details/123093350?utm_medium=distribute.pc_aggpage_search_r ...