【Atcoder】AtCoder Beginner Contest 174

战况:VP,结果灰常打脸噢。Q友们有的AK了,有的5题了,而我只能勉强算是个3题。A题水过,B题因<=写成>=WA了一次后来AC,C题卡住了,D题过了(但是过的时候已经超时了10分钟)。目前ABCDE已补,缺F;

T1: A - Air Conditioner

题意:输入一个整数判断是否>=30,是则输出"Yes"否则"No"

思路:

代码:

#include 
using namespace std;
int main(){
	int x;
  	cin>>x;
    if(x>=30) cout<<"Yes";
    else cout<<"No";
}

T2:B - Distance

题意:n个坐标,统计到每个坐标到原点的距离小于等于d的个数

思路:坐标到原点的距离是   x ∗ x + y ∗ y \ \sqrt{x*x+y*y}  xx+yy 。如果不想开根号,可以用 x ∗ x + y ∗ y x*x+y*y xx+yy d ∗ d d*d dd做比较,但要注意:x,y的范围是 2 × e 5 2 \times e5 2×e5,一乘就超过int范围了,所以要用long long转一下,或者直接定义成long long类型。

代码:

#include 
using namespace std;
int ans, n;
long long d, x, y;
int main(){
    cin>>n>>d;
    while(n--){
        cin>>x>>y;
        if(x*x+y*y<=d*d)
          ans++;
    }
    cout<

T3:C - Repsept

题意:7,77,777,7777,…的序列中,第一个能被k整除的是第几个数

思路:k的范围是[1, 1e6],假如该数能被k整除,则x%k==0,如果不能的话余数*10+7再%k,直到余数为0循环终止。这个数不会大于k。

时间复杂度: O ( k ) O(k) Ok

代码:

#include 
using namespace std;
int k;
int main(){
	cin>>k;
	int r=0;
	for(int i=1;i<=k;i++){
		r=(r*10+7)%k;
		if(r==0){
			cout<

T4:D - Alter Altar

题意:输入n和长度为n的字符串,其中包含’R’和’W’两种字符。每一步可以调换两个字符,或者更改为另一种字符,问要使得’W’不在’R’的左边,即形如"RRR…RWW…W"最少需要多少步。

思路:用类似前缀和的思想,扫描一遍字符串,并用b[N][2]表示到第i个字符时共有多少个W(0)和R(1),最后统一出r的个数,那么该数前有多少个W字符,即需要多少操作(b[r][0])。

时间复杂度: O ( n ) O(n) O(n)

代码:

#include 
using namespace std;
const int N=2e5+10;

int n;
char str[N];
int b[N][2];//定义:b[N][2]到第i个字符W(0)和R(1)的个数 

int main(){
	cin>>n>>str+1;
	for(int i=1;i<=n;i++){
		if(str[i]=='R') b[i][1]=b[i-1][1]+1,b[i][0]=b[i-1][0]; 
		else b[i][1]=b[i-1][1],b[i][0]=b[i-1][0]+1;
	}
	
	int r=b[n][1];//红色个数
	cout<

T5:E - Logs

题意:n个木头,长度为Ai,问经过k次切割以后最小的最大长度是多少?

思路:最大中求最小,符合单调属性,所以可以用二分来做。相当于我们每次从木头中切去mid长度,要切的次数即为(ai-1)/mid次,再求和。

时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)

代码:

#include 
#include 
#include 
using namespace std;
const int N=2e5+10;
int n, k;  
int a[N];

bool check(int mid){
	int res=0;
	for(int i=0;i>n>>k;
	for(int i=0;i>a[i];	
	sort(a, a+n);
	
	int l=1,r=1e9;
	while(l>1;
		if(check(mid)) r=mid;
		else l=mid+1;	
	}
	cout<

你可能感兴趣的:(Atcoder)