博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SRM 624 DIV2
阅读量:6659 次
发布时间:2019-06-25

本文共 1510 字,大约阅读时间需要 5 分钟。

hot3.png

1. 250-point

(1). 题意
取一个 vector<int> 中任意 K 个值相加的最小和. 
(2). 思路
(a). 从小到大排序
(b). 取前 K 个值相加
(3). 代码

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;class CostOfDancing{ public: int minimum(int K, vector
danceCost) { // 从小到大排序 sort(danceCost.begin(), danceCost.end()); // 取前 K 个值相加 int sum = 0; for (int i=0; i

2. 500-point

(1). 题意
(a). 用最小的代价, 使 vector<int> 中有 M 个相等的数
(b). 代价: 较小的数与较大的数的差的和
(2). 思路
(a). 从小到大排序
(b). 从第 M 个数开始往后遍历
(c). 每个数都与其前面 M-1 个数的差的和, 就是所需生成与 M 个相同 height[i] 的最小和
(d). 最后取所有的最小和中取最小的那个即可
(3). 代码

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define MAX_INT (numeric_limits
::max())class BuildingHeightsEasy{ public: int minimum(int M, vector
heights) { // 如果 M 为 1, 则无需进行操作 if (M == 1) return 0; // 按从小到大排序 sort(heights.begin(), heights.end()); // 从第 M 个数开始往后遍历 // 每个数都与其前面 M-1 个数的差的和, // 就是所需生成与 M 个相同 height[i] 的最小和 // 最后取所有的最小和中取最小的那个即可 int min = MAX_INT; for (int i=M-1; i
< num ? min : num; } return min; }};

3. 1000-point

(1). 题意
(a). 由 N 个点组成的凸边形
(b). 两个人交替画线, 每次可以画一条边, 或者画一条对角线
(c). 所画的线不能与前面的线相交
(d). 最后无法画线的人输
(2). 思路
注: 见官方题解
(3). 代码
见官方题解.

转载于:https://my.oschina.net/zenglingfan/blog/282082

你可能感兴趣的文章
PL/SQL Developer 访问远程数据库(本机不包含oracle客户端)
查看>>
3.成员变量标准访问方法的实现(@property和@synthysize)
查看>>
SpringMVC的第一个入门案例
查看>>
Logstash使用介绍
查看>>
亿级商品详情页架构演进技术解密 | 高可用架构系列
查看>>
[WinApi]内存基本操作Review
查看>>
MicroPython支持最新的STM3232F769IDISCOVERY
查看>>
eclipse调试
查看>>
Linux下Redis安装
查看>>
2013-7-11学习作业[有面试题]
查看>>
appstore审核因 ipv6 被拒的问题
查看>>
AD RMS服务客户端故障排错
查看>>
深入浅出Hyper-V网络虚拟化(序)
查看>>
css样式表中的样式的优先级
查看>>
cocos2dx android mk解释
查看>>
在Mac OS X El Capitan上安装PHP
查看>>
ThinkPad 安装win7 64 位系统不能识别联想的外置DVD
查看>>
std::unique and removing duplicates from a container of objects
查看>>
JSON-RPC请求
查看>>
MMSegAnalyzer 自定义 同义词分词器
查看>>