Codeforces #635题解

Codeforces round 635赛后解题报告

A. Ichihime and Triangle

首先这是一道几何题

那么我们知道,在此题中, x , y , z x,y,z x,y,z 满足 x ≤ y ≤ z , x + y > z x\leq y\leq z,x+y>z xyz,x+y>z。这是三角形三边的关系,很好理解。那么我们对这样一道构造题,又是在第一题,一定没什么难度。我们想是否能用 a , b , c , d a,b,c,d a,b,c,d 找出一组万能解。
我们再来看等腰三角形的性质,如果我们知道了两条腰的长:

此时满足 a + x > x , x + x > a a+x>x,x+x>a a+x>x,x+x>a,所以 a < 2 x a<2x a<2x 即可。因此我们发现 a , c , c a,c,c a,c,c 是一组万能的解,满足所有条件。所以,直接输出即可,时间复杂度为 O ( 1 ) O(1) O(1)

但为什么我在比赛里做了15min,错了三次qwq

#include<bits/stdc++.h>
#define int long long
using namespace std;

int read() {
   
	char ch=getchar();
	int f=1,x=0;
	while(ch<'0'||ch>'9') {
   
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
   
		x=x*10+ch-'0';
		ch=getchar();
	}
	return f*x;
}

int a,b,c,d,n;

signed main() {
   
	n=read();
	for(int i=1;i<=n;i++) {
   
		a=read();b=read();c=read();d=read();
		printf("%lld %lld %lld\n",a,c,c);
	}
	return 0;
}

B. Kana and Dragon Quest game

那个switch好珂爱

首先,我们要考虑贪心,但有一个问题:因为一技能 ⌊ h 2 ⌋ + 10 \lfloor \frac{h}{2}\rfloor+10 2h+10 有可能会使得龙的血量变大,那么什么时候采用第一种会使龙的血量增加呢?

Q:不就是不等式吗,小学三年级都会做,说的那么玄乎
A:你说的没错

我们来列个不等式看看:
⌊ h 2 ⌋ + 10 ≥ h \lfloor \frac{h}{2}\rfloor+10\geq h 2h+10h
⌈ h 2 ⌉ ≤ 10 \lceil \frac{h}{2}\rceil\leq 10 2h10
h ≤ 20 h\leq 20 h20

所以我们就知道,如果 h ≤ 20 h\leq 20 h20,就只能用第二种技能,否则龙的血量会增加。一个贪心地思路就出现了:
1.我们先尽量使用一技能,直到 h ≤ 20 h\leq 20 h20 或一技能 n n n 次用完了,在等时间为 ∞ ∞ 的CD。
2.我们一直用二技能,直到 h ≤ 0 h\leq 0 h0 或二技能 m m m 次用完了,在等时间同样为 ∞ ∞ 的CD。
3.如果 h ≤ 0 h\leq 0 h0,输出 YES,否则 NO。(由于题目说 YES,NO 大小写随意,所以代码会有点不正常(滑稽))

总结这道题,是一个不等式的小应用,同时用贪心辅助即可,作为CF的div2 B还是很合适的~

还有注意:

多组数据!!!

#include<bits/stdc++.h>
#define int long long
using namespace std;

int read() {
   
	char ch=getchar();
	int f=1,x=0;
	while(ch<'0'||ch>'9') {
   
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
   
		x=x*10+ch-'0';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值