Educational Codeforces Round 118 div.2 A-E题解

Posted 欣君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Educational Codeforces Round 118 div.2 A-E题解相关的知识,希望对你有一定的参考价值。

视频讲解:咕了 ,推荐看wls的视频题解

A. Long Comparison

题目大意

有两个数,它们都用同一种格式表示:一个正整数 x ( 1 ≤ x ≤ 1 0 6 ) x(1 \\leq x \\leq 10^6) x(1x106) ,后面附加 p ( 0 ≤ p ≤ 1 0 6 ) p(0 \\leq p \\leq 10^6) p(0p106) 0 0 0
现在给定两个数,求他们的大小比较关系。

题解

由于 1 ≤ x ≤ 1 0 6 1 \\leq x \\leq 10^6 1x106 ,因此若 p p p 相差超过 6 6 6 ,则直接比较 p p p 的大小。反之在 p 1 , p 2 p1,p2 p1,p2 都减去 min ⁡ ( p 1 , p 2 ) \\min(p1,p2) min(p1,p2) 后,还原处原数进行比较。

参考代码

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

int main()

	int T;
	ll x1,x2,p1,p2;
	scanf("%d",&T);
	while(T--)
	
		scanf("%lld%lld%lld%lld",&x1,&p1,&x2,&p2);
		if(p1+6<p2)
			puts("<");
		else if(p1>p2+6)
			puts(">");
		else
		
			x1*=pow(10,max(0ll,p1-p2));
			x2*=pow(10,max(0ll,p2-p1));
			if(x1>x2)
				puts(">");
			else if(x1==x2)
				puts("=");
			else
				puts("<");
		
	

B. Absent Remainder

题目大意

给定长度为 n ( 2 ≤ n ≤ 2 ⋅ 1 0 5 ) n(2 \\leq n \\leq 2 \\cdot 10^5) n(2n2105) 的互不相同的正整数序列 a 1 , a 2 , . . . , a n ( 1 ≤ a i ≤ 1 0 6 ) a_1,a_2,...,a_n(1 \\leq a_i \\leq 10^6) a1,a2,...,an(1ai106) ,求 ⌊ n 2 ⌋ \\lfloor \\fracn2 \\rfloor 2n 对不同的正整数 对 x , y x,y x,y ,满足以下条件:

  • x ≠ y x \\neq y x=y
  • x x x y y y 都在 a a a 中出现;
  • x m o d    y x \\mod y xmody 不在 a a a 中出现;

注意,某些 x x x y y y 可以属于不同对。
如果有多组解,输出任意一组即可。可以证明至少存在一个解。

题解

a a a 从小到大排序后,易得 a i m o d    a 1 < a 1 a_i \\mod a_1<a_1 aimoda1<a1 ,即不在 a a a 中出现。因此直接构造 ⌊ n 2 ⌋ \\lfloor \\fracn2 \\rfloor 2n ( a i , a 1 ) (a_i,a_1) (ai,a1) 即可,注意 i > 1 i>1 i>1

参考代码

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

const int MAXN=200200;
int a[MAXN];

int main()

	int T;
	int n,i;
	scanf("%d",&T);
	while(T--)
	
		scanf("%d",&n);
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);
		sort(a+1,a+n+1);
		for(i=2;i<=n/2+1;i++)
		
			printf("%d %d\\n",a[i],a[1]);
		
	

C. Poisoned Dagger

题目大意

Monocarp在玩一个电脑游戏。在游戏种,他的角色必须杀死一条龙。战斗会持续 10 0 500 100^500 100500 秒,期间Monocarp会用毒匕首攻击龙 n ( 1 ≤ n ≤ 100 ) n(1 \\leq n \\leq 100) n(1n100) 次。第 i i i 次攻击在战斗开始后第 a i ( 1 ≤ a i ≤ 1 0 9 , a i < a i + 1 ) a_i(1 \\leq a_i \\leq 10^9,a_i<a_i+1) ai(1ai109,ai<ai+1) 秒发生。毒匕首本身不会对龙造成伤害,但会对龙施加中毒效果,在接下来 k k k 秒内每秒造成 1 1 1 点伤害(从龙被匕首刺伤的同一秒开始)。如果龙已经中毒,则会刷新持续时间。

已知龙有 h ( 1 ≤ h ≤ 1 0 18 ) h(1 \\leq h \\leq 10^18) h(1h1018) 点生命,如果在战斗中队龙造成至少 h h h 点伤害,则会成功杀死这条龙。求杀死这条龙的情况下, k k k 的最小值。

题解

二分答案,对于每个答案以 O ( n ) O(n) O(n) 复杂度进行模拟。

参考代码

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

const int MAXN=110;
ll n,h,a[MAXN];

bool check(ll x)

	ll last=h-x;
	for(int i=1;i<=n;i++)
		last-=min(x,a[i]-a[i-1]);
	if(last<=0)
		return true;
	else
		return false;


int main()

	int T,i;
	ll lef,rig,mid;
	scanf("%d",&T);
	while(T--)
	
		scanf("%lld%lld",&n,&h);
		for(i=1;i<=n;i++)
			scanf("%lld",&a[i]);
		a[0]=a[1];
		lef=1,rig=h;
		while(lef<=rig)
		
			mid=(lef+rig)>>1;
			if(check(mid))
				rig=mid-1;
			else
				lef=mid+1;
		
		printf("%lld\\n",lef);
	

D. MEX Sequences

题目大意

如果一个整数序列 x 1 , x 2 , . . . , x k x_1,x_2,...,x_k x1,x2,...,xk 满足 ∀ i ( 1 ≤ i ≤ k ) \\forall i(1 \\leq i \\leq k) i(1ik) ∣ x i − M E X ( x 1 , x 2 , . . . , x i ) ∣ ≤ 1 |x_i-MEX(x_1,x_2,...,x_i)| \\leq 1 xi以上是关于Educational Codeforces Round 118 div.2 A-E题解的主要内容,如果未能解决你的问题,请参考以下文章

Educational Codeforces Round 7 A

Educational Codeforces Round 7

Educational Codeforces Round 90

Educational Codeforces Round 33

Codeforces Educational Codeforces Round 54 题解

Educational Codeforces Round 27