NZOJ 模拟赛5
T1 逃离遗迹
根据外星人的回信,在遗迹中有分布着三样道具。当三样道具都拿走后,遗迹就很快自动毁灭,所以必须要在最短时间内离开。遗迹可以看作是由N个房间(编号1..N)和N-1条长度不等通道所组成,并且任意两个房间之间有且只有一条路可以相互到达。现在我们的队员已经在编号为A,B,C的房间内拿到道具,并且准备撤退。由于只有一架直升机,所以只能在一个房间上停留。现在请你决定将直升机停在哪一个房间之上,能够使三人到达该房间的距离之和最短。
考虑最短路模型,对 \(A, ~ B, ~ C\) 三个点分别作为源点跑一次最短路,扫一遍所有的点,找到 \(dist[A] + dist[B] + dist[C]\) 最小的点即可。
T2 遗址
很久很久以前有一座寺庙,从上往下看寺庙的形状正好是一个正方形,在4个角上竖立着圆柱搭建而成。现在圆柱都倒塌了,只在地上留下圆形的痕迹,可是现在地上有很多这样的痕迹,专家说一定是最大的那个。
写一个程序,给出圆柱的坐标,找出由4个圆柱构成的最大的正方形,因为这就是寺庙的位置,要求计算出最大的面积。注意正方形的边不一定平行于坐标轴。
例如下图有10根柱子,其中(4,2),(5,2),(5,3),(4,3)可以形成一个正方形,(1,1),(4,0),(5,3),(2,4)也可以,后者是其中最大的,面积为10。
考虑枚举正方形对角线上两点 \((x_1, ~ y_1), ~ (x_2, ~ y_2)\),可以轻松计算出另外两点的坐标,判断另外两点是否存在即可,如果存在,则更新我们的答案,初始化答案为 \(-1\),如果结果为 \(-1\) 则不存在正方形。
T3 迷之阶梯
在经过地球防卫小队的数学家连续多日的工作之后,外星人发的密码终于得以破解。它告诉我们在地球某一处的古老遗迹中,存在有对抗这次灾难的秘密道具。防卫小队立刻派出了一个直升机小分队,迅速感到了这处遗迹。要进入遗迹,需要通过一段迷之阶梯。登上阶梯必须要按照它要求方法,否则就无法登上阶梯。它要求的方法有以下三个限制:
- 如果下一步阶梯的高度只比当前阶梯高1,则可以直接登上。
- 除了第一步阶梯外,都可以从当前阶梯退到前一步阶梯。
- 当你连续退下k后,你可以一次跳上不超过当前阶梯高度2^k的阶梯。比如说你现在位于第j步阶梯,并且是从第j + k步阶梯退下来的。那么你可以跳到高度不超过当前阶梯高度 + 2^k的任何一步阶梯。跳跃这一次只算一次移动。
开始时我们在第1步阶梯。由于时间紧迫,我们需要用最少的移动次数登上迷之阶梯。请你计算出最少的移动步数。
考虑动规,不妨设 \(dp[i]\) 表示到达第 \(i\) 级别阶梯即 \(h[i]\) 高度时的最少步数,我们模拟每个后退的过程,记录后退了 \(k\) 步,对于 \(i\) 以后的阶梯 \(t\) 只要满足 \(h[t] - h[i - k] <= (1 << k)\) 即可转移 \(dp[t] = min(dp[t], dp[i - 1] + k + 1)\),我们可以枚举 \(t\) 和 \(k\) 完成转移,这样是 \(O(n^3)\) 的,不过足以通过此题了,此题还有 \(O(n^2)\) 的做法,欢迎同学对代码改进。
参考代码
#include<bits/stdc++.h>
using namespace std;
const int N = 210;
int n, h[N], dp[N];
int main()
{
cin >> n;
memset(dp, 0x3f, sizeof dp), dp[1] = 0;
for (int i = 1; i <= n; i ++ ) cin >> h[i];
for (int i = 2; i <= n; i ++ )
for (int j = i - 1, k = 0; j; j -- , k ++ )
for (int t = i; t <= n; t ++ )
if (k >= 31 || h[t] - h[j] <= (1 << k))
dp[t] = min(dp[t], dp[i - 1] + k + 1);
cout << (dp[n] == 0x3f3f3f3f ? -1 : dp[n]);
return 0;
}
T4 买票
周末Ztc想去剧场看演出,但他没有票。这时,救世主Wzj出现了,他慷慨地愿意卖给Ztc一些票。
Wzj手上共有n张票,但每张票的费用都不一样,贪心的ztc想要得到尽可能多的票,但又想花费最少,慷慨的wzj愿意给连续的m张票。
Ztc希望你能帮助他在花钱范围内取得最大的票数。
双指针板题,考虑扩大右指针后,左指针右移使得区间和小于上界,对区间和取 \(max\) 即可。
NZOJ 模拟赛5的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 小奇模拟赛9.13 by hzwer
2015年9月13日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- [GRYZ]寒假模拟赛
写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...
- BZOJ2741: 【FOTILE模拟赛】L
2741: [FOTILE模拟赛]L Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1170 Solved: 303[Submit][Status] ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
随机推荐
- elementui二维表动态渲染
elementUI如何动态渲染二维表,动态渲染表格的列,例如下图: 代码: <div id="app"> <template> <el-table : ...
- C++ : 如何用C语言实现C++的虚函数机制?
前言 在 googletest的源码中,看到gtest-matchers.h 中实现的MatcherBase 类自定义了一个 VTable,这种设计实现了一种类似于C++虚函数的机制.C++中的虚函数 ...
- dotnet 学习 CPF 框架笔记 了解 X11 里如何获取触摸信息
本文记录我学习 CPF 框架的笔记,本文记录我阅读 CPF 框架,学习到了如何在 dotnet C# 里面获取到 X11 的触摸信息,获取到多指触摸以及触摸点的面积和触摸点压感等信息的方法 开始之前, ...
- CSP初赛知识点:Linux 系统
CSP初赛知识点:Linux 系统 前言 近年 CSP 初赛几乎前 5 道选择题都有一两道有关 Linux 系统的使用,所以作为备战 CSP-J/S 2024 的资料,整理下来啦. 祝各位今年所有考试 ...
- JAVAEE——idea安装
一.安装idea 1.点击这里下载jar包 2.点击这里下载idea2019 提取码:1234 (也可自行官网下载付费版自行寻找破解) 3.下载后jar压缩包后解压,把里面那个jar文件随意放在 ...
- Go 学习路线图
基础阶段 学习内容: 掌握 Go 的基本语法,包括变量.常量.数据类型(如整数.浮点数.字符串.布尔值.数组.切片.映射等).运算符等. 理解程序的控制流,如条件语句(if-else.switch-c ...
- 第15天:信息打点-主机架构&蜜罐识别&WAF识别&端口扫描&协议识别&服务安全
端口扫描:Nmap.Masscan.网络空间 开放状态:Close Open Filtered https://nmap.org/download.html https://github.com/ro ...
- 常用的linux命令 docker常用命令
mkdir 新建目录 rmdir 删除目录 rm只能删除文件,不能删除目录 cp test.txt Documents 进入容器的目录 docker exec -it <container_id ...
- 删除 设置 获取 cookies 的第三方包 js-cookies
// 第三方包 js-cookies 是一个操作cookies的包 import Cookies from 'js-cookie' // Cookies.set(key,value) 存值 // Co ...
- 在 VMware vSphere 中构建 Kubernetes 存储环境
作者:马伟,青云科技容器顾问,云原生爱好者,目前专注于云原生技术,云原生领域技术栈涉及 Kubernetes.KubeSphere.kubekey等. 相信很多小伙伴和企业在构建容器集群时都会考虑存储 ...
