当前位置: 首页 > wzjs >正文

学校网站建设项目需求报告搜索引擎优化seo专员

学校网站建设项目需求报告,搜索引擎优化seo专员,什么网站做海报赚钱,邢台网站建设多少钱本文涉及知识点 本博文代码打包下载 C贪心 C二分查找 [NOI Online #2 入门组] 未了 题目描述 由于触犯天神,Sisyphus 将要接受惩罚。 宙斯命 Sisyphus 推一块巨石上长度为 L L L 的山坡。Sisyphus 匀速向上推的速度为每年 v v v 的长度(由于是匀速…

本文涉及知识点

本博文代码打包下载
C++贪心
C++二分查找

[NOI Online #2 入门组] 未了

题目描述

由于触犯天神,Sisyphus 将要接受惩罚。

宙斯命 Sisyphus 推一块巨石上长度为 L L L 的山坡。Sisyphus 匀速向上推的速度为每年 v v v 的长度(由于是匀速,故经过 1 2 \frac{1}{2} 21 年将能向上推 v 2 \frac{v}{2} 2v 的长度)。然而,宙斯并不希望 Sisyphus 太快到达山顶。宙斯可以施展 n n n 个魔法,若宙斯施展第 i i i 个魔法 ( 1 ≤ i ≤ n ) (1\leq i \leq n) (1in),则当 Sisyphus 第一次到达位置 a i a_i ai 时,他将会同巨石一起滚落下山底,并从头推起。(滚落的时间忽略不计,即可看作第一次到达位置 a i a_i ai 后 Sisyphus 立即从山底重新出发)

例如宙斯施用了 a i = 3 a_i=3 ai=3 a i = 5 a_i=5 ai=5 的两个魔法。Sisyphus 的速度 v = 1 v=1 v=1 ,山坡的长度 L = 6 L = 6 L=6,则他推石上山过程如下:

  • 3 3 3 年走到位置 3 3 3

  • a i = 3 a_i=3 ai=3 的魔法影响,回到了山底出发。

  • 再用 3 3 3 年走到位置 3 3 3,然而因为是第二次到达, a i = 3 a_i=3 ai=3 的魔法不起作用。

  • 2 2 2 年走到位置 5 5 5

  • a i = 5 a_i=5 ai=5 的魔法影响,回到了山底出发。

  • 6 6 6 年从山底走到了山顶。花费的总时间为 14 14 14 年。

现在,宙斯有 q q q 个询问。对于第 i i i 个询问 t i t_i ti,宙斯想知道,他最少需要施展多少个魔法才能使 Sisyphus 到达山顶所用的年数大于 t i t_i ti

输入格式

第一行三个整数 n , L , v n,L,v n,L,v 分别表示魔法的种类数,山坡的长度,Sisyphus 的速度。

第二行 n n n 个整数。第 i i i 个整数 a i a_i ai 表示第 i i i 个魔法作用的位置。 ( 1 < i < n ) (1<i<n) (1<i<n)

第三行一个整数 q q q 表示宙斯的询问个数。

接下来 q q q 行每行一个整数,第 i i i 行的整数 t i t_i ti 表示宙斯的第 i i i 个询问。 ( 1 < i < n ) (1<i<n) (1<i<n)

输出格式

输出 q q q 行,每行恰好一个整数,第 i i i 行的整数对应第 i i i 个询问的答案。 ( 1 ≤ i ≤ q ) (1 \leq i\leq q) (1iq)

如果宙斯无论如何都不能使 Sisyphus 使用的年数大于 t i t_i ti,请输出 − 1 -1 1

样例 #1

样例输入 #1

3 6 3
3 5 1
4
1
3
4
5

样例输出 #1

0
1
2
-1

提示

  1. 不使用任何魔法,Sisyphus 需要 2 2 2 年走上山顶。
  2. 使用魔法 2 2 2 ,Sisyphus 需要 11 3 \frac{11}{3} 311 年走上山顶。(用时 5 3 \frac{5}{3} 35 年走到魔法 2 2 2 的位置并滚落下山,再用时 6 3 = 2 \frac{6}{3}=2 36=2 年走到山顶)
  3. 使用魔法 1 , 2 1,2 1,2 ,Sisyphus 需要 14 3 \frac{14}{3} 314 年走上山顶。
  4. 宙斯不能使 Sisyphus 用大于 5 5 5 年的时间走上山顶。

对于测试点 1 ∼ 8 : n = 1 1\sim 8:n=1 18:n=1

对于测试点 9 ∼ 12 : n = 2 9\sim 12:n=2 912:n=2

对于测试点 13 ∼ 17 : n , q ≤ 1000 13\sim 17:n,q\le 1000 1317:n,q1000

对于所有测试点: 1 ≤ n , q ≤ 2 × 1 0 5 1 \leq n,q \leq 2 \times 10^5 1n,q2×105 1 ≤ v ≤ L ≤ 1 0 9 1\leq v\leq L\leq 10^{9} 1vL109 1 ≤ a i < L 1\leq a_i < L 1ai<L 1 ≤ t i ≤ 1 0 9 1 \leq t_i\leq 10^9 1ti109

数据保证 a i a_i ai 两两不同。

贪心+前缀和

假定施法若干次,回退的距离记录到v中。v之和+山顶的距离就是需要爬行的距离。
要想v之和最大,只需取a的最大v.size()个值。
a降序,preSum是其前缀和。upper(preSum,ti × \times ×v-L)-preSum.begin

代码

核心代码

#include <iostream>
#include <sstream>
#include <vector>
#include<map>
#include<unordered_map>
#include<set>
#include<unordered_set>
#include<string>
#include<algorithm>
#include<functional>
#include<queue>
#include <stack>
#include<iomanip>
#include<numeric>
#include <math.h>#include <bitset>
using namespace std;template<class T = int>
vector<T> Read(int n,const char* pFormat = "%d") {vector<T> ret;T d ;while (n--) {scanf(pFormat, &d);ret.emplace_back(d);}return ret;
}template<class T = int>
vector<T> Read( const char* pFormat = "%d") {int n;scanf("%d", &n);vector<T> ret;T d;while (n--) {scanf(pFormat, &d);ret.emplace_back(d);}return ret;
}class Solution {
public:vector<int> Query(long long L, long long v, vector<int>& a, vector<int>& que) {sort(a.begin(), a.end(), greater<>());vector<long long> preSum(1);for (const auto& n : a) {preSum.emplace_back(n + preSum.back());}vector<int> ans;for (const auto& ti : que) {auto n = upper_bound(preSum.begin(), preSum.end(), v * ti - L) - preSum.begin();if (n >= preSum.size()) { ans.emplace_back(-1); }else { ans.emplace_back(n); }}return ans;}
};int main() {
#ifdef _DEBUGfreopen("a.in", "r", stdin);
#endif // DEBUGint n,L,v;scanf("%d%d%d", &n,&L,&v);auto a = Read<int>(n);auto que = Read<int>();Solution slu;auto res = slu.Query(L, v, a, que);for (const auto& i : res) {std::cout << i << std::endl;}return 0;
}

单元测试

TEST_METHOD(TestMethod11){vector<int> a = { 3, 5 ,1 }, que = { 1,3,4,5 };auto res = Solution().Query(6, 3, a, que);AssertEx({ 0,1,2,-1 }, res);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

http://www.dtcms.com/wzjs/99922.html

相关文章:

  • asp网站建设与设计一个具体网站的seo优化
  • 网站建设知名公司排名推广公众号的9种方法
  • 套模版做网站网络公关
  • 网站建设可研报告百度seo推广优化
  • 泗阳县住房和城乡建设局网站站长之家ip查询工具
  • 空投注册送币网站怎么做如何制定会员营销方案
  • 做网站开发甲方一直要求p图软文营销的概念
  • 建设一个小网站需要多少钱软文推广一般发布在哪些平台
  • 上海待遇好的公司排名排名优化价格
  • 做淘宝链接的网站百度网盘搜索
  • 免费wap网站推荐网络课程
  • 做网站哪家专业百度搜索关键词指数
  • 手机网站布局如何在网上推广自己
  • 专门做折扣的网站超云seo优化
  • 有经验的南昌网站设计华联股份股票
  • 网站的首页怎么做的今日最新足球推荐
  • 网站怎么做下载网页代码网络营销八大目标是什么
  • 贵州做农业网站腾讯nba新闻
  • 做门户网站用什么模板网站服务器搭建与管理
  • 建设的比较好的网站推广公司哪家好
  • 广州 网站开发公司新乡seo公司
  • 西安微商城网站建设泰安网站推广优化
  • 网站开发需要多少钱怎样vue seo 优化方案
  • 平度市建设部网站广告代运营公司
  • 网站 申请seo关键词优化排名哪家好
  • 银行网站模板免费下载windows优化大师兑换码
  • win7卸载电脑上的wordpressseo相关ppt
  • 微信小程序直播平台seo是什么的缩写
  • 新疆兵团建设局网站简述获得友情链接的途径
  • 电商app软件开发seo顾问服