P1969积木大赛
这是2018与2013提高组的真题,可怕,,原题出了两年,是个纯模拟。
读完题后就想写一个朴素的模拟,先遍历层数,再把达到层数的宽度#存起来,再判断是否连续,如果不连续ans++,然后每一次循环都要初始化,所以第一次提交得了80pts,TLE了最后两个点。然后再去看题解,竟然发现:当i+1组数据大于i组数据,ans+=h[i+1]-h[i],因为只要小于就是前面的最大的操作数,然后因为不连续所以即使大于前面的但小于前面最大ans也需要++。
1.思路清晰,对时间复杂度进行计算,10^5for来for去再加memset一般就超时了
2.模拟题还是需要找找性质,找到最优的解题方法,简单的题要追求满分
代码1(80‘):
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#define N 10000005
using namespace std;
int n;
int h[N],biuld[N];
int max_h=-;;
int ans=;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&h[i]);
max_h=max(h[i],max_h);
}
for(int i=;i<=max_h;i++){
int cnt=;
memset(biuld,,sizeof(n+));
for(int j=;j<=n;j++){
if(h[j]>=i){//假如还需要加高度
biuld[++cnt]=j;//存储第几个
//cout<<biuld[cnt]<<endl;
}
}
// cout<<endl;
ans++;
for(int i=;i<=cnt-;i++){//判断需要几次操作
if(biuld[i+]-biuld[i]>=){//假如不是相邻的
ans++;
}
}
}
cout<<ans; return ;
}
代码2(100’):
#include<iostream>
#include<cstdio>
using namespace std;
int n,ans=;
int h[];
int main(){
cin>>n;
h[]=;
for(int i=;i<=n;i++){
cin>>h[i];
if(h[i]>h[i-]){//假如后面的比前面的要小
ans+=h[i]-h[i-];
}
}
cout<<ans; return ;
}
P1969积木大赛的更多相关文章
- 洛谷 P1969 积木大赛 解题报告
P1969 积木大赛 题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为\(n\)的大厦,大厦可以看成由\(n\)块宽度为1的积木组成,第\(i\)块 ...
- [NOIP2013] 提高组 洛谷P1969 积木大赛
题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...
- 洛谷 P1969 积木大赛
题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...
- noip 2013 luogu P1969 积木大赛
题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...
- 洛谷—— P1969 积木大赛
https://www.luogu.org/problem/show?pid=1969 题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度 ...
- 洛谷 P1969 积木大赛(NOIP2013)
题目描述春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成n ...
- 洛谷 P1969 积木大赛 —— 水题
题目:https://www.luogu.org/problemnew/show/P1969 看每个高度和前面的关系即可. 代码如下: #include<iostream> #includ ...
- 【做题笔记】P1969 积木大赛
非常感谢 rxz 大佬提供的思路. 首先放个图(rxz 画的) 采用贪心的策略:对于一个期望高度 \(h_i\) ,如果大于 \(h_{i-1}\),那么最终答案要加上二者之差:如果小于或等于,那么说 ...
- noip2018 洛谷 P1969积木大赛
1 //一定不要忘记这句话 “连续区间 ”!! #include<bits/stdc++.h> using namespace std; int main(){ int n, h;//n是 ...
- P1969 积木大赛
题意:给你一段序列,一次操作:[l,r]内所有数+1 初始序列全为0 现在给你最后序列,问最少操作几次能达到这样的序列 蒟蒻表示秒想到------差分啊 每次差分必有一个+1,一个-1 把差分数组求出 ...
随机推荐
- R语言-六大数据结构
R语言有六种基本的数据结构(或者说数据类型吧).根据数据的维度和同质/异质可分为5种数据类型,最后再介绍一种特殊的类型“因子”. 同质 异质 1维 原子向量 列表 2维 矩阵 数据框 n维 数组 ...
- APIview的请求生命周期源码分析
目录 APIview的请求生命周期源码分析 请求模块 解析模块 全局配置解析器 局部配置解析器 响应模块 异常处理模块 重写异常处理函数 渲染模块 APIview的请求生命周期源码分析 Django项 ...
- 防火墙firewalld 案例1.内网请求转发到外网
环境: 内网应用服务端口流量需要转发请求到外网端口 解决思路: firewalld 的富规则 d主机: 富规则 d主机对外dnat发布5423端口,然后dnat请求s的80端口: s主机snat返回8 ...
- MFC多文档获取窗口句柄
GET App AfxGetInstanceHandle() AfxGetApp() GET Frame->View->Document SDI AfxGetM ...
- Linux入门培训教程 linux系统中文件I/O教程
linux 文件I/O教程 一,文件描述符 对内核而言,所以打开的文件都通过文件描述符引用.每个进程都有一些与之关联的文件描述符.文件描述符是一个非负整数.当打开一个现有文件或创建一个新文件时,内核向 ...
- MYSQL安装失败,一打开就出现MySQL-Workbench已停止工作
1.由于系统重新安装,环境都是新的,出现MySQL-Workbench已停止工作 解决:下载 微软常用运行库合集 安装即可
- logstash搭建
logstash就是一个具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端:与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满 ...
- vue之Object.defineProperty()
了解Object.defineProerty()方法 关于Object.defineProperty()方法的解释,理解Object.defineProperty的作用 这篇文章做了很详细的概述 关于 ...
- 第五周总结&实验报告三
第五周总结&实验报告三 实验报告 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s ...
- 在HTML标签元素中,绑定JS函数
<a onclick="ShowMsg(this)" id="myA" href="#">按钮</a> //JS方法 ...