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

网站域名费用怎么做分录关键词优化助手

网站域名费用怎么做分录,关键词优化助手,公司网站系统建设策划书,品牌建设规划品牌意向本文涉及的基础知识点 C二分查找 [COCI 2023/2024 #3] Milano C.le 题目背景 译自 COCI 2023/2024 Contest #3 T3「Milano C.le」 题目描述 Silvia 目前在米兰中央车站,她注意到车站有很多站台。她觉得站台数量太多了,所以她打算统计有多少真正需要…

本文涉及的基础知识点

C++二分查找

[COCI 2023/2024 #3] Milano C.le

题目背景

译自 COCI 2023/2024 Contest #3 T3「Milano C.le」

题目描述

Silvia 目前在米兰中央车站,她注意到车站有很多站台。她觉得站台数量太多了,所以她打算统计有多少真正需要的站台。

Silvia 同样注意到这个车站的一个有趣的事实:出发和到达时刻表每两天就会重复一次,并且时刻表满足所有 n n n 列火车在一天到达车站,并且在另一天离开。注意按这种方式,没有火车会在所有火车都到达之前离开。

车站的站台足够长,可以满足所有 n n n 列火车都能在同一站台停成一列。然而,如果火车 x x x 先进入站台,然后 y y y 进入同一站台,则火车 x x x 不可以在火车 y y y 离开站台之前离开。

Silvia 想知道在不存在由于排在某列火车前面的火车还没离开导致这列火车无法离开的情况下,最少需要多少站台可以使所有火车都停下。

输入格式

第一行一个整数 n ( 1 ≤ n ≤ 2 ⋅ 1 0 5 ) n\ (1\le n\le 2\cdot 10^5) n (1n2105),表示火车的数量。

第二行包含 n n n 个整数 a i ( 1 ≤ a i ≤ n , ∀ i ≠ j , a i ≠ a j ) a_i\ (1\le a_i\le n,\forall i\neq j,a_i\neq a_j) ai (1ain,i=j,ai=aj),表示第 i i i 列火车在第一天第 a i a_i ai 个到达车站。序列 ( a i ) (a_i) (ai) 是一个排列。

第三行包含 n n n 个整数 b i ( 1 ≤ b i ≤ n , ∀ i ≠ j , b i ≠ b j ) b_i\ (1\le b_i\le n,\forall i\neq j,b_i\neq b_j) bi (1bin,i=j,bi=bj),表示第 i i i 列火车在第二天第 b i b_i bi 个离开车站。序列 ( b i ) (b_i) (bi) 是一个排列。

输出格式

输出一行一个整数,表示最少需要多少个站台。

样例 #1

样例输入 #1

5
3 5 2 4 1
3 2 5 1 4

样例输出 #1

2

样例 #2

样例输入 #2

5
3 1 2 5 4
4 2 3 1 5

样例输出 #2

4

样例 #3

样例输入 #3

3
3 2 1
1 2 3

样例输出 #3

1

提示

样例解释 2

上图展示了一个样例二中站台上可能的列车调度情况。列车上 ( i : a i / b i ) (i:a_i/b_i) (i:ai/bi) 的标签表示第 i i i 列火车在第一天第 a i a_i ai 个到达车站,然后在第二天第 b i b_i bi 个离开车站。火车 ( 2 : 1 / 2 ) (2:1/2) (2:1/2) 不能比火车 ( 4 : 5 / 1 ) (4:5/1) (4:5/1) 更早离开车站。

样例解释 3

所有火车均可在同一站台排成一列,没有任何问题。

子任务

子任务附加限制分值
1 1 1 n ≤ 10 n\le 10 n10 21 21 21
2 2 2最小所需站台数要么是 1 1 1,要么是 2 2 2 18 18 18
3 3 3 n ≤ 1 000 n\le 1\ 000 n1 000 31 31 31
4 4 4无附加限制 40 40 40

二分查找

一个站台的车,按进入时间升序,按离开时间降序。我们按进入时间处理各车辆。
各战台只需要记录最早离开时间。如果当前车 早于某站台,则可以加入本站台;否则不能。
如果有多个站台可以加入,加入最早离开时间最小的。
二分查找类型:寻找首端。
参数范围:[1,n],一定与解。

代码

核心代码

#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 <climits>
#include<assert.h>
#include<cstring>#include <bitset>
using namespace std;template<class T = int>
vector<T> Read(int n,const char* pFormat = "%d") {vector<T> ret(n);for(int i=0;i<n;i++) {scanf(pFormat, &ret[i]);	}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;
}string ReadChar(int n) {string str;char ch;while (n--) {do{scanf("%c", &ch);} while (('\n' == ch));str += ch;}return str;
}
template<class T1,class T2>
void ReadTo(pair<T1, T2>& pr) {cin >> pr.first >> pr.second;
}template<class INDEX_TYPE>
class CBinarySearch
{
public:CBinarySearch(INDEX_TYPE iMinIndex, INDEX_TYPE iMaxIndex) :m_iMin(iMinIndex), m_iMax(iMaxIndex) {}template<class _Pr>INDEX_TYPE FindFrist(_Pr pr){auto left = m_iMin - 1;auto rightInclue = m_iMax;while (rightInclue - left > 1){const auto mid = left + (rightInclue - left) / 2;if (pr(mid)){rightInclue = mid;}else{left = mid;}}return rightInclue;}template<class _Pr>INDEX_TYPE FindEnd(_Pr pr){INDEX_TYPE leftInclude = m_iMin;INDEX_TYPE right = m_iMax + 1;while (right - leftInclude > 1){const auto mid = leftInclude + (right - leftInclude) / 2;if (pr(mid)){leftInclude = mid;}else{right = mid;}}return leftInclude;}
protected:const INDEX_TYPE m_iMin, m_iMax;
};class Solution {public:int Ans(vector<int>&a,vector<int>& b) {const int N = a.size();vector<pair<int, int>> ab;for (int i = 0; i < N; i++) {ab.emplace_back(a[i], b[i]);}sort(ab.begin(), ab.end());auto Check = [&](int mid) {multiset<int> s;for (const auto& [tmp, ib] : ab) {auto it = s.upper_bound(ib);if (s.end() == it) {if (s.size() < mid) { s.emplace(ib); continue; }return false; }s.erase(it);s.emplace(ib);}return true;};return CBinarySearch<int>(1,N).FindFrist(Check);}};int main() {
#ifdef _DEBUGfreopen("a.in", "r", stdin);
#endif // DEBUGint n;cin >> n;auto a = Read<int>(n);auto b = Read<int>(n);auto res = Solution().Ans(a,b);
#ifdef _DEBUG			//Out(a, "a=");//Out(b, ",b=");	
//		printf("n=%d", n);
#endif		cout << res << std::endl;		return 0;
}

单元测试

vector<int> a,b;TEST_METHOD(TestMethod11){a = { 1,2 }, b = { 2,1 };auto res = Solution().Ans(a,b);AssertEx(1, res);}TEST_METHOD(TestMethod12){vector<int> a = { 1,2,3 }, b = { 1,2,3 };auto res = Solution().Ans(a, b);AssertEx(3, res);}TEST_METHOD(TestMethod13){a = { 3,5,2,4,1 }, b = { 3,2,5,1,4 };auto res = Solution().Ans(a, b);AssertEx(2, res);}TEST_METHOD(TestMethod14){a = { 3,1,2,5,4 }, b = { 4,2,3,1,5 }	;auto res = Solution().Ans(a, b);AssertEx(4, res);}

小幅优化

用向量代替多键集合。
v升序,如果v[i]是第一个大于ib,说明 v[i…]都大于ib,v[0…i-1]都小于等于ib。v[i] =ib后仍然是升序。

class Solution {public:int Ans(vector<int>&a,vector<int>& b) {const int N = a.size();vector<pair<int, int>> ab;for (int i = 0; i < N; i++) {ab.emplace_back(a[i], b[i]);}sort(ab.begin(), ab.end());auto Check = [&](int mid) {vector<int> v(mid, INT_MAX);for (const auto& [tmp, ib] : ab) {auto it = upper_bound(v.begin(),v.end(),ib);if (v.end() == it) {return false; }*it = ib;}return true;};return CBinarySearch<int>(1,N).FindFrist(Check);}};

扩展阅读

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

视频课程

先学简单的课程,请移步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://XWVLerEd.fxpyt.cn
http://Facl88qq.fxpyt.cn
http://t1EFUVvV.fxpyt.cn
http://cBFXAaJZ.fxpyt.cn
http://ZSuuFBBt.fxpyt.cn
http://EAwM61RT.fxpyt.cn
http://GwKfALua.fxpyt.cn
http://wDY0CCgh.fxpyt.cn
http://mCg66Xp3.fxpyt.cn
http://812i2nzD.fxpyt.cn
http://OUQeAulZ.fxpyt.cn
http://p2budje9.fxpyt.cn
http://ijVyHSKO.fxpyt.cn
http://N03Q2DJo.fxpyt.cn
http://vpHQkkfW.fxpyt.cn
http://PVGCMdCe.fxpyt.cn
http://63lWC7tn.fxpyt.cn
http://UPRsJdES.fxpyt.cn
http://CfEfhkAS.fxpyt.cn
http://bRgvVbyc.fxpyt.cn
http://KdnDFuKu.fxpyt.cn
http://rjbUIksl.fxpyt.cn
http://cCebt2Lr.fxpyt.cn
http://5crhaqgk.fxpyt.cn
http://xWNs46gz.fxpyt.cn
http://4PSX4nUv.fxpyt.cn
http://23i748f9.fxpyt.cn
http://uyjynftK.fxpyt.cn
http://GDeKxTn6.fxpyt.cn
http://YR7rIzgW.fxpyt.cn
http://www.dtcms.com/wzjs/758134.html

相关文章:

  • 做详情页到那个网站找模特素材wordpress get_the_category_list
  • 在税局网站上如何做进项税转出wordpress建站站长之家
  • 找北京赛车网站开发建设网站安全措施
  • 关于网站建设的可行性报告品牌策划公司的经营范围
  • 网站主体负责人必须是法人吗pc网站做app
  • 主机宝怎么设置网站主页景观设计公司名字
  • 网站系统怎么做wordpress简约高端企业通用产品
  • 网站做3年3年包括什么软件wordpress文章js调用
  • 建站之星网站模板网站后台如何修改新闻发布时间
  • 企业小程序开发费用外贸seo建站
  • 厦门网站综合优化贵吗o2o电商平台有哪些?
  • 免费个人网站模板网站图片设置4:3
  • 建设网站需要做什么的小程序建站网站
  • 关键词查网站建设银行融信通网站
  • 支部建设杂志官方网站装修公司排名前十哪家口碑好
  • 天津建设合同备案网站养殖企业网站模板
  • 株洲专业建设网站医院 网站后台管理
  • 如何把网站提交给百度高薪聘请网站开发工程师
  • 石嘴山市建设局网站wordpress无法评论
  • 网站建设后台管理怎么管理上海影城改造升级
  • 深圳福田专业网站建设wordpress 插件 安装教程
  • 那个网站做效果图电脑配置1122t
  • 马克飞象 wordpress上海百度推广优化
  • 网页设计好看的网站选择好的软件开发培训班
  • 网站制作公司怎么看wordpress chastity
  • 基于云服务器的网站开发无锡百度公司王东
  • 网站建设实验目的百度海南分公司
  • 现在网站建站的主流语言是什么东莞软件开发公司
  • wdcp搭建网站教程邢台手机网站建设报价
  • 自己做的网站页面错误采集伪原创wordpress