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/ ...
随机推荐
- Linux下常用组件镜像源、smaba、gcc、ssh、mysql安装
Linux安装 博主使用的是ubuntu 16.04 apt更换镜像源 这里以更换阿里云镜像源为例. 首先去阿里云官方网站找对应版本系统的镜像源https://developer.aliyun.com ...
- Python 项目及依赖管理工具技术选型
Python 项目及依赖管理工具,类似于 Java 中的 Maven 与 Node 中的 npm + webpack,在开发和维护项目时起着重要的作用.使用适当的依赖管理工具可以显著提高开发效率,减少 ...
- uni-app 小程序 前置摄像头
在小程序拍照的话,uni.chooseImage()可以直接调取摄像头拍照,而如果要调用前置摄像头,这个api就没有提供了. 在查找官方文档发现,可以通过camera有提供这么一个组件,页面内嵌的区域 ...
- android java.lang.Exception: java.net.ProtocolException: Expected HTTP 101 response
Android stomp长连接连接异常: 报错:java.lang.Exception: java.net.ProtocolException: Expected HTTP 101 response ...
- hook拼多多客服软件发消息,拼多多客服机器人代码,拼多多发消息代码
最近由于工作需要,逆向了拼多多客服平台,能调用消息监听.消息发送.根据订单号发起会话,是纯hook实现的,demo包括c++调用demo,c#调用demo.hook 的dll是c++编写的,有需要的人 ...
- wxpython开发gui界面基础
wxpython 开发gui 基础知识 一 .前言 记录使用wxpython开发gui工具吧.gui界面主要就是先布局,每个模块都是一个对象. 二.基础知识 import wx class MyFra ...
- GPUStack正式发布: 为大模型而生的开源GPU集群管理器
经过 Seal 研发团队几个月来持续的开发和测试,我们满怀期待及热情地发布新的产品 GPUStack,GPUStack 是一个用于运行 LLM(大型语言模型)的开源 GPU 集群管理器.尽管如今大语言 ...
- 《Vue.js 设计与实现》读书笔记 - 第15章、编译器核心技术概览
第15章.编译器核心技术概览 15.1 模板 DSL 的编译器 完整的编译包括 [源代码] -->词法分析-->语法分析-->语义分析(编译前端) -->中间代码生成--> ...
- USB分析仪USB3.2日志分析
1.简介 USB2.0总线采用轮询模式,即总线事务开始时,都要先发送IN或者OUT令牌包,以通知端点或者查询端点是否准备好.而USB3.2采用了异步通知模式,若端点没有准备好,则主机无需轮询,端点准备 ...
- Leetcode Practice --- 栈和队列
目录 155. 最小栈 思路解析 20. 有效的括号 思路解析 1047. 删除字符串中的所有相邻重复项 思路解析 1209. 删除字符串中的所有相邻重复项 II 思路解析 删除字符串中出现次数 &g ...
