Ural 2064:Caterpillars(思维暴力)
http://acm.timus.ru/problem.aspx?space=1&num=2064
题意:有n只虫子在爬树,每个虫子往上爬ti距离后会往下掉落ti距离,每爬一个单位距离耗费一个单位时间,然后重新往上爬。有q个询问,询问当前的x时刻,爬的最高的虫子所在的最高位置。
思路:画个以时间为x轴,距离为y轴的图,可以清楚知道整个图是类似于一座座山峰的。我们只要处理每个时刻的最高点。
只考虑最高点所在的位置,处理出虫子能达到的最高点的时刻的最高点arrive[]。
考虑每个时刻要得到最优的两种情况:假设当前时刻为x。
1、第一种是某只虫子正在往上爬。这种情况可以考虑成时间逆流地往下掉。时间从后往前扫,对于每个时刻求出最大的arrive[i] - (i - x)。i代表之前某只虫子某个能达到的最高点的时刻。
2、第二种是某只虫子正在往下掉。这种情况将时间从前往后扫,对于每个时刻求出最大的arrive[i] - (x - i)。i的含义同上。
因为时间只有1e6,可以从后往前扫(处理出往上爬的情况)再从前往后(处理往下掉的情况)扫所有时间,处理出ans[]表。对于询问O(1)回答。
而且这题用scanf超时,用读入外挂偶尔超时,看别人代码用了“ios::sync_with_stdio(false);”取消同步,不会超时。
玄学。不懂。
#include <bits/stdc++.h>
using namespace std;
#define N 1000100
#define M 1000004
#define INF 0x3f3f3f3f
int arrive[N], ans[N]; int main() {
ios::sync_with_stdio(false);
int n, t, tid, q;
cin >> n;
bool flag = ;
for(int i = ; i <= n; i++) {
cin >> t; if(t >= M) flag = ;
for(tid = t; tid <= M; tid += * t)
if(arrive[tid] < t) arrive[tid] = t; // arrive[tid]记录tid时刻能达到的最大高度
if(arrive[M] < t - (tid - M)) arrive[M] = t - tid + M; // 终点向下掉
}
for(t = , tid = -INF; t <= M; t++) {
// 时间正着往下掉: (i < t)ans[t] = max(ans[t], arrive[i] + i - t);
if(tid < arrive[t] + t) tid = arrive[t] + t; // 记录目前最大的arrive[i]+i
if(ans[t] < tid - t) ans[t] = tid - t;
}
for(t = M, tid = -INF; t >= ; t--) {
// 时间逆着往下掉(向上爬): (t < i)ans[t] = max(ans[t], arrive[i] - i + t);
if(tid < arrive[t] - t) tid = arrive[t] - t; // 记录之前最大的arrive[i]-i
if(ans[t] < tid + t) ans[t] = tid + t;
}
cin >> q;
while(q--) {
cin >> t;
if(flag) cout << t << '\n';
else cout << ans[t] << '\n';
}
return ;
}
Ural 2064:Caterpillars(思维暴力)的更多相关文章
- ural 2064. Caterpillars
2064. Caterpillars Time limit: 3.0 secondMemory limit: 64 MB Young gardener didn’t visit his garden ...
- Nikita and string [思维-暴力] ACM
codeforces Nikita and string time limit per test 2 seconds memory limit per test 256 megabytes O ...
- codeforce 429D. Tricky Function (思维暴力过)
题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qu ...
- ZOJ - 3983 - Crusaders Quest(思维 + 暴力)
题意: 给出一个字符串,长度为9,包含三种各三个字母"a","g","o",如果一次消除连续三个一样的分数+1,消完自动向左补齐 其中可以消 ...
- codeforces 768 C. Jon Snow and his Favourite Number(思维+暴力)
题目链接:http://codeforces.com/contest/768/problem/C 题意:给出n个数,k个操作,和一个x,每次操作先排序然后对奇数位数进行xor x操作,最后问k次操作后 ...
- CodeForces - 1244D (思维+暴力)
题意 https://vjudge.net/problem/CodeForces-1244D 有一棵树,有3种颜色,第i个节点染成第j种颜色的代价是c(i,j),现在要你求出一种染色方案,使得总代价最 ...
- CodeForces - 1248D1 (思维+暴力)
题意 有一个括号序列,你可以选择两个位置i,j(i可以等于j),进行交换.使得最后的循环位置(i的数目)最大. 循环位置:i(0<=i<len),将前i个字符移到最后,得到的新序列是合法的 ...
- URAL 1957 Wrong Answer 暴力
Wrong Answer 思路: 1.先枚举4的全排列,即球赛的所有可能结果,一共4!=24种情况 2.对于每种情况,DFS 未确定的比赛 的结果,判断这种情况是否可达. 剪枝: 1.对于每种全排列, ...
- hdu 4970 Killing Monsters (思维 暴力)
题目链接 题意: 有n座塔,每座塔的攻击范围为[l,r],攻击力为d,有k个怪兽从这些塔前面经过,第i只怪兽初始的生命力为hp,出现的位置为x,终点为第n个格子.问最后有多少只怪兽还活着. 分析: 这 ...
随机推荐
- wpf C# 操作DirectUI窗口 SendMessage+MSAA
原文:wpf C# 操作DirectUI窗口 SendMessage+MSAA 最近做一个抓取qq用户资料的工具,需要获取qq窗口上的消息,以前这种任务是用句柄获取窗口中的信息,现在qq的窗口用的是D ...
- Nginx支持LInux的软链接或硬链接
在我们配置nginx的时候,有些时候,大部分都是讲root指向真实的目录.但是有些时候,我们需要指向一个软链接.但是配置的时候,发现会有问题. 我们可以通过以下的方法,来解决,让nginx支持软链接/ ...
- IDEA 自动化配置
# IDEA maven web项目:http://www.cnblogs.com/Sinte-Beuve/p/5730553.html # IDEA 数据库自动化 ## 功能 ① SQL 代码自动感 ...
- php将秒转换为 分:秒 函数
php将秒转换为 分:秒 函数 /** * 将秒转换为 分:秒 * s int 秒数 */ function s_to_hs($s=0){ //计算分钟 //算法:将秒数除以60,然后下舍入,既得到分 ...
- C#最简单的文本加密
#region AES加密 public static byte[] TextEncrypt(string content, string secretKey) { byte[] data = Enc ...
- 关于DDD领域驱动设计的理论知识收集汇总
原文:关于DDD领域驱动设计的理论知识收集汇总 最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一 ...
- JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember(转载)
原文地址:http://sporto.github.io/.../comparison-angular-backbone-can-ember/ 原文作者:Sebastian Porto @Twitte ...
- Codility----PermMissingElem
Task description A zero-indexed array A consisting of N different integers is given. The array conta ...
- Java的String类字符串的拆分
在java编程中,有时候我们需要把一个字符串按照某个特定字符.字母等作为截点分割这个字符串, 这样我们就可以使用这个字符串的一部分或者把所有截取的内容保存到数组里等操作. public class S ...
- spring boot单元测试之RestTemplate(二)
上篇博客中,简单介绍了RestTemplate,只是用到了单元测试环节,如果在正式开发环境使用RestTemplate调用远程接口,还有一些配置要做. 一.配置类 由于Spring boot没有对Re ...