首页 > 其他 > 详细

【比赛】 AtCoder Beginner Contest 170

时间:2020-06-14 23:11:40      阅读:56      评论:0      收藏:0      [点我收藏+]

题意/题解

A Five Variables

  • 题意:给你五个数,判断哪个是 \(0\)
  • 题解:边输入边判断

B Crane and Turtle

  • 题意:有两种动物,一种是鹤,有两条腿,另一种是乌龟,有四条腿,现在告诉你有 \(x\) 个动物 \(y\) 条腿,问你可不可能。
  • 题解:暴力枚举。

C Forbidden List

  • 题意:给你一个序列,让你从序列中没出现过的数中找一个数 \(a\) 使得 \(|a-x|\)最小,输出 \(a\)
  • 题解:因为序列长度不超过 \(100\)\(x\) 不超过 \(100\) ,序列中的数不超过 \(100\) 所以答案肯定在 \(0 \sim 101\) 之间暴力枚举即可。

D Not Divisible

  • 题意:给你一个序列让你算出其中不能被序列中除自己(位置不同值相同不算自己)以外的任何一个数整除的数的个数
  • 题解:排序一遍,用小的数去筛大的。

E Smart Infants

  • 题意:咕咕咕
  • 题解:咕咕咕

F Pond Skater

  • 题意:咕咕咕
  • 题解:咕咕咕

代码

A Five Variables

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>

inline void read(int &T) {
	int x=0;bool f=0;char c=getchar();
	while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=!f;c=getchar();}
	while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();}
	T=f?-x:x;
}

int main() {
	for(int i=1,x;i<=5;++i) {
		read(x);
		if(x==0) {
			std::cout<<i<<‘\n‘;
			return 0;
		}
	}
	return 0;
}

B Crane and Turtle

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>

inline void read(int &T) {
	int x=0;bool f=0;char c=getchar();
	while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=!f;c=getchar();}
	while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();}
	T=f?-x:x;
}

int x,y;

int main() {
	read(x),read(y);
	for(int i=0;i<=x;++i) {
		int j=x-i;
		if(i*2+j*4==y) {
			puts("Yes");
			return 0;
		}
	}
	puts("No");
	return 0;
}

C Forbidden List

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#define MAXN 101

inline void read(int &T) {
	int x=0;bool f=0;char c=getchar();
	while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=!f;c=getchar();}
	while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();}
	T=f?-x:x;
}

int x,n,a[MAXN];
bool appear[201];

int main() {
	read(x),read(n);
	for(int i=1;i<=n;++i) {
		read(a[i]);
		appear[a[i]]=1;
	}
	std::sort(a+1,a+n+1);
	int minn=2147483647,ans;
	for(int i=101;i>=0;--i) {
		if(!appear[i]) {
			if(abs(x-i)<=minn) {
				minn=abs(x-i);
				ans=i;
			}
		}
	}
	std::cout<<ans<<‘\n‘;
	return 0;
}

D Not Divisible

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#define MAXN 200001

inline void read(int &T) {
	int x=0;bool f=0;char c=getchar();
	while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=!f;c=getchar();}
	while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();}
	T=f?-x:x;
}

int n,a[MAXN],times[MAXN*10];
bool okay[MAXN*10];

int main() {
	read(n);int maxx=0;
	for(int i=1;i<=n;++i) {
		read(a[i]);
		if(a[i]>maxx) maxx=a[i];
		++times[a[i]];
	}
	std::sort(a+1,a+n+1);int ans=0;
	for(int i=1;i<=n;++i) {
		if(okay[a[i]]==1) continue;
		++ans;
		if(times[a[i]]>=2) {
			okay[a[i]]=1;
			--ans;
		}
		int j=a[i]+a[i];
		while(j<=maxx) {
			okay[j]=1;
			j+=a[i];
		}
	}
	std::cout<<ans<<‘\n‘;
	return 0;
}

反思:

  • 太菜了。

【比赛】 AtCoder Beginner Contest 170

原文:https://www.cnblogs.com/poi-bolg-poi/p/13127316.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!