首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AtCoder Beginner Contest 161 A~~F

AtCoder Beginner Contest 161 A~~F

作者头像
杨鹏伟
发布2020-09-10 21:39:49
发布2020-09-10 21:39:49
3330
举报
文章被收录于专栏:ypwypw

A. 水题:

代码语言:javascript
复制
#include<bits/stdc++.h>

using namespace std;


int  main(){
    int a,b,c;
    cin>>a>>b>>c;
    cout<<c<<" "<<a<<" "<<b;
	return 0;
} 

B 水题:

代码语言:javascript
复制
#include<bits/stdc++.h>

using namespace std;

long long  a[105];
int  main(){
    long long  n,m;
    cin>>n>>m;
    long long  tot  = 0;
    for(int i = 1;i<=n;i++){
    	cin>>a[i];
        tot+=a[i];
        a[i] = a[i] * 4 *m;
	}
	long long   num =0;
	long long   res = tot;
	for(int i=1;i<=n;i++){
		if(a[i] >= res) num++; 
	}
	
	if(num >= m) cout<<"Yes"<<endl;
	else cout<<"No"<<endl;
	return 0;
} 

C 水题:

代码语言:javascript
复制
#include<bits/stdc++.h>

using namespace std;

int main(){
	long long  n,k;
	cin>>n>>k;
	if(k == 1){
		cout<<"0"<<endl;
		return 0;
	}
	if(n>=k){
		long long res  = n % k;
		n = n% k;
	}
long  long  ans = min(abs(n-k),n);
	cout<<ans<<endl;
	return 0;
}

D. 题意:就是给你一个性质,然后让你求出第k个这样性质的数是多少

思路:根据性质,无非是差为0,-1,1的这样的数,但不一定每个都有这样的三个数能找到,因为最后一个数为9的话,要进位,为0的话,自然-1那个实现不了。

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;



int main(){
  int k;
  cin >> k;
  
  queue<long long int> q;
  
  if(k<=12){
    cout << k << endl;
    return 0;
  }
  
  for(int i=1; i<10; i++){
    q.push(i);
  }
  
  for(int i=1; i<k; i++){
    long long int a = q.front();
    q.pop();
    if(a%10!=0) q.push(a*10+a%10-1);//这是差为-1的情况 
    q.push(a*10+a%10);//差为0的情况 
    if(a%10!=9) q.push(a*10+a%10+1);//差为1的情况 
  }
  cout << q.front() << endl;
  return 0;
}

E

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

int n, k, c, j;
string s;
int l[200000], r[200000];

int main()
{
    cin >> n >> k >> c >> s;

    j = 0;

    for (int i = 0; i < n; i++) {
        if (s[i] == 'o') {
            l[j] = i;
            j++;
            i += c;
        }
    }

    j = 0;

    for (int i = n - 1; i >= 0; i--) {
        if (s[i] == 'o') {
            r[k - 1 - j] = i;
            j++;
            i -= c;
        }

        if (k - 1 - j < 0)
            break;
    }

    for (int i = 0; i < k; i++)
        if(l[i] == r[i])
            cout << l[i] + 1 << endl;
}

F

代码语言:javascript
复制
#include <iostream>
#include <vector>
#include <set>
#include <cstring>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;
typedef long long ll;

int main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

	ll n;
	cin >> n;
	if (n == 2) {
		cout << 1 << '\n'; return 0;
	}
	ll tmp = n - 1;
	ll ans = 1;
	for (ll i = 2; i * i <= n; i++) {
		if (n % i == 0) {
			if (n / i != i) {
				ll cnt = n / i;
				while (cnt %i == 0)cnt /= i;
				if (cnt % i == 1) {
					ans += 1;
				}
			}
			else if (n / i == i) {
				ans += 1;
			}
		}
	}
	// 3 , 4 2
	ans += 1;
	for (ll i = 2; i * i <= tmp; i++) {
		if (tmp % i == 0) {
			if (tmp / i == i) { ans += 1; }
			else
				ans += 2;
		}
	}
	cout << ans << '\n';
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档