首页 > 其他分享 >Educational Codeforces Round 145 (Rated for Div. 2) B. Points on Plane

Educational Codeforces Round 145 (Rated for Div. 2) B. Points on Plane

时间:2023-10-21 19:34:43浏览次数:42  
标签:Educational Rated 个点 于是 芯片 ll cdots Points 代价

给一个二维平面,你需要在上面放 \(n\) 个芯片。将一个芯片放在 \((x, y)\) 的代价为 \(|x| + |y|\) 。放 \(n\) 个代价的代价为,所有芯片中耗费的最大代价。并且你需要保证任意两个芯片之间的距离严格 \(> 1\) 。

现在给出 \(n\) 给芯片,询问放 \(n\) 个芯片的最小代价。

一:不难想到 \(n\) 个芯片的最小代价为,所有芯片中的最大代价,于是保证任意两芯片距离 \(> 1\) 的情况下,使最大代价最小即可。

二:不难想到芯片和代价成正比例相关,于是可以二分。

三:假设代价为 \(k\) ,把握两个关键点:

  • \(|x| + |y| \leq k\)
  • \(|p_i - p_j| > 1\)

于是不妨按 \(x\) 坐标进行分组,由于大组会受到小组的影响,需要从边界开始考虑。

  • \(x = k\) ,有 \(y = 0\) 对应的 \(1\) 个点满足。
  • \(x = k - 1\) ,有 \(y = \{0, 1,-1\}\) 对应的 \(3\) 个点满足 \(|x| + |y|\) ,但需要和 \(x = k\) 的点间距 \(> 1\) 。于是只有 \(3 - 1 = 2\) 个点满足条件。
  • \(x = k - 2\) ,有 \(y = \{0, -1, 1, -2, 2\}\) 对应的 \(5\) 个点满足 \(|x| + |y| \leq k\) ,但需要和 \(x = k\) 的点间距 \(> 1\) ,于是只有 \(5 - 2 = 3\) 个点满足条件。
  • \(\cdots\)
  • \(x = 0\) ,有 \(k\) 个点满足条件。
  • \(\cdots\)
  • 负数同理

则 \(k \sim 0\) 对应的点数为 \(1, 2, 3, \cdots, k + 1\) ,同理 \(-1 \sim -k\) 对应的点数为 \(k, k-1, \cdots, 1\) 。

则 \(k\) 的代价最多能支持 \(k + 1 + \frac{k(1+k)}{2} \times 2 = (k+1)^2\) 。于是 \(k\) 的代价可支持点的区间为 \([k^2 + 1, (k + 1)^2]\) 。

已知答案位置,求区间范围,是经典二位可解决的问题。 \(n \in [k^2 + 1,(k+1)^2]\) ,于是可以二分到最后一个 \(k\) 满足 \(k^2 + 1 \leq n\) 或者第一个 \(k\) 满足 \((k+1)^2 \geq n\) 。

view
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
void solve(){
	ll n; std::cin >> n;
	ll L = 0 - 1, R = 1E9 + 1;
	while ( R - L > 1 ) {
		ll M = ( R + L ) >> 1;
		if ( M * M + 1 <= n) // 最后一个 k 满足 k^2 + 1 <= n
			L = M;
		else
			R = M;
	}
	std::cout << L << "\n";
}
		                
int main() { 
	int _ = 1; std::cin >> _;
	while (_--) solve();
	return 0;
}

标签:Educational,Rated,个点,于是,芯片,ll,cdots,Points,代价
From: https://www.cnblogs.com/zsxuan/p/17777801.html

相关文章

  • Educational Codeforces Round 149 (Rated for Div. 2)
    这场D被切穿了。A题答案为x或者x-11B题答案就是最长的连续一段的长度+1证明的话大概可以将它看成是几段连续上升和下降的段,然后在峰谷、峰顶分别填上最小、最大,剩下的就依次递增或递减就行。C题将一段连续的0/1视作一个块,那么我们最小化这个块的数量就行。D题如果猜到......
  • sonarqube启动报错:You must address the points described in the following [2] line
    Youmustaddressthepointsdescribedinthefollowing[2]linesbeforestartingElasticsearch.bootstrapcheckfailure[1]of[2]:maxnumberofthreads[3870]foruser[sonar]istoolow,increasetoatleast[4096]bootstrapcheckfailure[2]of[2]:maxvi......
  • Educational Codeforces Round 149 (Rated for Div. 2) C. Best Binary String
    给一个字符串\(s\)包含\(0,1,?\)。定义一个\(01\)串\(s\)的\(cost\)为:选择\(s\)的任意一个子段\([l,r]\)并\(reverse\)。将\(s\)变为一个非降序序列时的\(reverse\)最小次数即\(cost\)。你可以让\(s\)的\(?\)换成\(0/1\),使新\(s\)的\(cost\)......
  • Educational Codeforces Round 150 (Rated for Div. 2) B. Keep it Beautiful
    数组\(a=[a_1,a_2,\cdots,a_n]\)被称为是美丽的,如果可以将\([1,x]\)段移到\([x+1,n]\)段后面,\(x\geq0\),数组可以构成非降序。现在有一个数组\(a\)(一开始为空)和\(q\)个询问,第\(i\)个询问给一个正整数\(x_i\)。需要逐步执行以下操作。若\(x_i\)拼接......
  • Educational Codeforces Round 154 (Rated for Div. 2) B. Two Binary Strings
    给定两个长度相等的\(01\)字符串\(a\)和\(b\)。每个字符串都是以\(0\)开始以\(1\)结束。在一步操作中,你可以选择任意一个字符串:选择任意两个位置\(l,r\)满足\(s_l=s_r\),然后让\(\foralli\in[l,r],s_i=s_l\)。询问经过若干次操作后能否使得\(a=b......
  • Testing Round 16 (Unrated) B. Square?
    给定一个矩形,然后切成两个矩形。尺寸分别为\(a\timesb\),\(c\timesd\)。你需要确定开始的矩形是否可能是个正方形。假设初始矩形为正方形,则两个小矩形的长边是正方形的边长。不妨让\(a\geqb,c\geqd\)。只需判断\(a=c,a=b+d\)是否成立即可。view#includ......
  • Educational Codeforces Round 91 (Rated for Div. 2) A. Three Indices
    给一个\(n\)个整数的排列\(p_1,p_2,\cdots,p_n\),需要找到三个数\(i,j,k\)满足:\(1\leqi<j<k\leqn\)\(p_i<p_j\),\(p_j<p_k\)否则回答不可能。\(key\):若存在上述\(i,j,k\),则存在\(x\)满足\(p_{x-1}<p_{x},p_{x}>p_{x+1......
  • Landsat 8 Collection 2 Tier 1 calibrated top-of-atmosphere (TOA) reflectance
    Landsat8Collection2Tier1calibratedtop-of-atmosphere(TOA)reflectance.Calibrationcoefficientsareextractedfromtheimagemetadata.See Chanderetal.(2009) fordetailsontheTOAcomputation.Landsatsceneswiththehighestavailabledataqual......
  • Educational Codeforces Round 116 (Rated for Div. 2) A. AB Balance
    给一个长为\(n\)的字符串\(s\),只包含\(0\)\(1\)两种字符。定义\(AB(s)\)是\(s\)中出现的\(01\)子串个数,\(BA(s)\)是\(s\)中出现的\(10\)子串个数。在一步操作中,可以选择一个字符进行异或。询问最小的操作次数使得\(AB(s)=BA(s)\)。显然连续的\(11\)或连......
  • Educational Codeforces Round 96 (Rated for Div. 2) A. Number of Apartments
    有三种建筑:三室厅、五室厅、七室厅。每个房间严格有一扇窗户。现在有\(n\)扇窗户,询问完全用完这些窗户的情况下,\(3,5,7\)室厅各有多少间。输出任意一种答案,或者回答不可能。假设一定有解,显然可以选择\(mod\)任意一个数贪心,不妨选最小的\(3\)。假设答案为\(a,b,c\):......