ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蔚来杯2022牛客暑期多校训练营1

2022-07-31 16:03:37  阅读:119  来源: 互联网

标签:电线 int 蔚来 建筑物 多校 发电站 牛客 电塔 include


Villages: Landlines

题意

一条数轴上有一个发电站和n个建筑物。现要建立一些电塔,并用电线将发电站,电塔,建筑物相连。其中发电站和建筑物不能直接相连,建筑物之间也不能直接相连。每个建筑物有一个坐标\(x_i\),以及一个半径\(r_i\)表示若在\([x_i-r_i,x_i+r_i]\)范围内有电塔可以不用电线直接相连。发电站也有相应的\(x_s,r_s\)。两个电塔可以用电线相连,若两个电塔的坐标分别位\(a,b\)则需电线|a-b|。求电线最少要多少。

数据范围

\(1<=n<=2e5,-1e9<=x_s,x_i<=1e9,1<=r_s,r_i<=1e9\)

思路

首先发电站和建筑物没有什么本质区别,都可以看作建筑物。

然后,没有规定电塔的数量。

按\(x_i-r_i\)排序,维护当前到达的最右端的位置R。能直接连就直接连,不能就拉电线。

(注:若按\(x_i\)排序不能处理1先与3连,3再与2连这种情况)

#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
const int N = 2e5+10;
int n;
struct node{ int x , r; }s[N];
bool cmp(node &A , node &B) { return A.x - A.r < B.x - B.r; }
int main()
{
	scanf("%d" , &n);
	for(int i = 1 ; i <= n ; ++i) scanf("%d%d" , &s[i].x , &s[i].r);
	sort(s + 1 , s + 1 + n , cmp);
	//for(int i = 1 ; i <= n ; ++i) cout << s[i].x << ' ' << s[i].r << '\n';
	int R = s[1].x + s[1].r;
	long long res = 0;
	for(int i = 2 ; i <= n ; ++i)
		if(R >= s[i].x - s[i].r) R = max(R , s[i].x + s[i].r);
		else res += s[i].x - s[i].r - R , R = max(R , s[i].x + s[i].r);
	cout << res << '\n';	
	return 0;
}
/*
5
0 1
0 3
5 1
6 3
9 2
*/

Lexicographical Maximum

题意

给一个数n,求1~n中字典序最大的数。

数据范围

\(1<=n<=10^{1000000}\)

思路

若它前n-1位全是9,答案就是它本身,否则就是n-1个9.

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a;
	cin >> a;
	int l = a.length() - 1;
	bool flag = false;
	for(int i = 0; i <= l - 1; i++)
	{
		if(a[i] != '9')
		{
			flag = true;
			break;
		}
	}
	if(flag)
	{
		for(int i = 0; i <= l - 1; i++)cout << "9";
	}
	else
	{
		cout << a;
	}
	return 0;
}

标签:电线,int,蔚来,建筑物,多校,发电站,牛客,电塔,include
来源: https://www.cnblogs.com/R-Q-R-Q/p/16537277.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有