首页 > 其他分享 >Codeforces Round 895 (Div. 3)

Codeforces Round 895 (Div. 3)

时间:2023-09-08 21:23:00浏览次数:36  
标签:895 int 房间 Codeforces long solve ans Div

Codeforces Round 895 (Div. 3)

比赛链接

A. Two Vessels

题目链接
给你三个数a,b,c每次把a,b中较大的数中拿去最多等于c的数给较小的数字,问多少次使得a,b两个数字相等。

A思路:

可恶,在写的过程中出现了精度丢失的情况,导致出现了好多问题,问多少次使得a和b相等,就是

\[abs(a-b)/2/c向上取整 \]

因为这里还需要除以2,导致一部分精度丢失,所以我们可以将c扩大二倍,这样就可以避免这个问题,

\[c*=2; abs(a-n)/c向上取整 \]

A代码:

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

void solve(){
	int a,b,c;
	cin>>a>>b>>c;
	int ans=abs(a-b);
	c*=2;
	cout<<(abs(ans+c-1)/c)<<endl;
	return ;
	
}
int main(){
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;

}

B. The Corridor or There and Back Again

题目链接
有一个无限长的走廊,这就意味着有无限多的房间,有个人从一号房出发,要穿过每个房间并且能安全返回1号房,有的房间设置了陷阱,当我们打开有陷阱的房间时候,我们有s秒的移动时间,之后我们就不能穿过设有这个陷阱的地方,问我们最远可以走到哪里。

B思路:

仔细想想我们要想在s秒钟以后不再穿过这个房间是不是就意味着我们只能走到s-1/2的地方,这样我们就可以留一半时间返回并且穿过这个房间,这样一想结果就出来了。

B代码:

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

void solve(){
	int n;
	cin>>n;
	int ans=1e9;
	for(int i=1;i<=n;i++){
		int a,b;
		cin>>a>>b;
		a=a+(b-1)/2;
		ans=min(ans,a);
	}
	cout<<ans<<endl;
	return ;
}
int main(){
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;

}

C. Non-coprime Split

题目链接
给定两个数l,r,让求两个数a,b使得满足下列要求
l<=a+b<=r
gcd(a,b)!=1

C思路:

需要注意几个条件就可以了,主要看r是奇数还是偶数,如果是偶数直接除以2就是正解,但是当r<4时是没有解的,之后我们需要判断r是奇数的情况,如果l==r就找r的因子d即可,因为d和r-d都可以被d整除,如果l< r直接在其中取一个偶数例如r-1就可以然后除以2.

C代码:

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

void solve(){
	int l,r;
	cin>>l>>r;
	if(r<4){
		cout<<-1<<endl;
		return ;
	}
	if(r%2==0){
		int a=r/2;
		cout<<a<<" "<<a<<endl;
		return ;
	}
	else{
		if(l==r){
			for(int i=2;i*i<=r;i++){
				if(l%i==0){
					cout<<r-i<<" "<<i<<endl;
					return ;
				}
			}
			cout<<-1<<endl;
		}
		else{
			 cout<<r-3<<" "<<2<<endl;
			 return ;
		}
	}
}
int main(){
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

标签:895,int,房间,Codeforces,long,solve,ans,Div
From: https://www.cnblogs.com/du463/p/17688566.html

相关文章

  • CodeForces 960G Bandit Blues
    洛谷传送门CF传送门发现设排列最大值位置为\(i\),那么\([1,i]\)只可能存在前缀最大值,\([i,n]\)只可能存在后缀最大值。由此设\(f_{i,j}\)为长度为\(i\)的排列,前缀最大值有\(j\)个的方案数,有转移:\[f_{i,j}=f_{i-1,j-1}+(i-1)f_{i-1,j}\]意思是每......
  • Codeforces Round 406 (Div. 2) D. Legacy 线段树优化建图
    传送门题目大意:给定n个点,m个操作,和起点s。其中n和q大于等于1小于等于1e5,s大于等于1小于等于n其中m个操作有三种情况:  1.输入1uvval表示从u号点向v号点连一个权值为val的有向边,其中1<=u<=n,1<=v<=n,1<=val<=1e9  2.输入2ulrval表示从u号点......
  • Educational Codeforces Round 154 (Rated for Div. 2)
    EducationalCodeforcesRound154(RatedforDiv.2)比赛链接我都快忘了还有这一场比赛,今天打开cf看见这场比赛正好有时间就补了!!!2023.9.3也许是出去玩了一下午脑子不够用了??怎么现在读题都有一点读不懂了!!!2023.9.4我靠这场我怎么感觉没什么思路呢????A题PrimeDeletion题目链接......
  • Pinely Round 2 (Div. 1 + Div. 2)
    Channel简单分类讨论情况即可 算下最多有多少人在线即可voidsolve(){intn,a,q;cin>>n>>a>>q;intadd=0,minn=0,maxx=0;cin>>in+1;for(inti=1;i<=q;i++){if(in[i]=='+')......
  • Educational Codeforces Round 154 (Rated for Div. 2)
    Preface太FW了现在,纯纯给队伍拖后腿,马上要成为我们队CFRating最低的了但换句话说徐神和祁神都这么猛,我直接躺着被嘎嘎带飞好像也很爽啊不管怎么样还是要多练,不过接下来可能要按专题重点突破了,明天队里开个会确定下大家的主攻方向再说A.PrimeDeletion因为\(13\)和\(31\)都......
  • Pinely Round 2 (Div. 1 + Div. 2)
    Preface唉懒狗了这把比赛的时候突然不想打了跑去看AIR了,所以就没打了,后面补题的时候发现前面题挺合我口味的如果打了大概率能上橙不过这种第二天早上有早八的时间还是很难打的,苦路西苦路西A.Channel统计当存在某个时刻在线人数为\(n\)时就是YES否则把所有的+加起来看看是否......
  • Educational Codeforces Round 23 A - F
    EducationalCodeforcesRound23目录EducationalCodeforcesRound23A-TreasureHuntB-MakesAndTheProductC-ReallyBigNumbersD-ImbalancedArrayE-ChoosingTheCommanderF-MEXQueriesA-TreasureHunt往四个方向走,每次操作会变动横坐标和纵坐标,横纵坐标......
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—C)
    A.PrimeDeletion思路:从1到9,每个数后面都可以加一个数构成一个含有两个数的质数,只需要从s[1]~s[9]中找到一个数与s[0]构成质数即可代码实现/*******************************|Author:CHC|Problem:A.PrimeDeletion|Contest:Codeforces-EducationalCodeforcesR......
  • 【题解】Educational Codeforces Round 153(CF1860)
    每次打都想感叹一句,Educational名不虚传。A.NotaSubstring题目描述:有\(t\)组数据,对于每一组数据,你需要判断能否构造一个只由左右括号组成且长度为已经给定字符串的\(2\)倍且已经给定的字符串不是子串的合法字符串。注:合法的字符串是左右括号能完全匹配的字符串。如果能,......
  • Educational Codeforces Round 113
    稳定发挥4题A题文件输出没去掉WA了一发B题特殊情况没判到,WA了好几发,中间还交到D题去了C题简单判断一下无解,然后组合数求一下就行D题其实也挺简单的,考虑严格夹在两条竖线之间的点(不包括边界),如果它们不是在同一水平线上,则必然大于Manhattan距离,而且两个点对之间要么是x方向走多......