zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 161

    A - ABC Swap

    水题

    AC代码:

    #include<bits/stdc++.h>
    #include<iostream>
    #include<vector>
    #include<queue>
    #include<string>
    #include<list>
    #include<set>
    #include<map>
    #include<stack>
    using namespace std;
     
    int main()
    {
        int a,b,c;
        cin>>a>>b>>c;
        cout<<c<<" "<<a<<" "<<b<<endl;
        
        
        return 0;
    }    
    View Code

    B - Popular Vote

    算总数和每个占总数的百分比

    AC代码:

    #include<bits/stdc++.h>
    #include<iostream>
    #include<vector>
    #include<queue>
    #include<string>
    #include<list>
    #include<set>
    #include<map>
    #include<stack>
    using namespace std;
     
    int main()
    {
        int n,m;
        int node[110];
        cin>>n>>m;
        int sum = 0;
        int ans = 0;
        for(int i=0;i<n;i++)
        {
            cin>>node[i];
            sum+=node[i];
            ans = max(ans,node[i]); 
        }
        sort(node,node+n);
        int flag = m;
        for(int i=n-1;i>=0;i--)
        {
            if(node[i]>=1.0/(4*m)*sum)
            {
                flag--;
            }
            if(flag==0) break;
        }
        if(flag==0) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
        return 0;
    }    
    View Code

    C - Replacing Integer

    题意:给定N和K,只能进行|N-K|的操作,问结果最小是多少(数据较大)

    思路:因为有绝对值,N一直减K 直到小于K,这是再减就相当于 K-N,在一直减,在这个过程中找最小值;

    第一步,N%K, 此时N小于K,再进行下面计算

    |N-K| = K-N

    |K-N-K| = N

    |N-K| = K-N

    一直循环下去

    所以只需要比较  N%K 和 K-N%K 哪个比较小。

    数据范围较大用 long long

    AC代码:

    #include<bits/stdc++.h>
    #include<iostream>
    #include<vector>
    #include<queue>
    #include<string>
    #include<list>
    #include<set>
    #include<map>
    #include<stack>
    # define PI 3.14159265358979323846
    using namespace std;
    typedef long long ll;
    const int maxn = 1e5+10;
    double node[maxn];
    
    int main()
    {
        ll n,k;
        cin>>n>>k;
        ll a = n%k;
        ll b = k-a;
        cout<<min(a,b)<<endl;
        return 0;
    }
    View Code

    D - Lunlun Number

    题意:当x 的任意两个相邻数字之间差的绝对值小于等于1 是,x为 lunlun number,请输出第k个 lunlun number;

    思路:打表,将范围内的所有 lunlun number 找到,排序,输出第k个即可

       打表:如果每个末尾是k,那只能加上k-1,k,k+1,三种情况(按从小到大的顺序记录就不需要再排序),0,9要特判;

    AC代码:

    #include<bits/stdc++.h>
    #include<iostream>
    #include<vector>
    #include<queue>
    #include<string>
    #include<list>
    #include<set>
    #include<map>
    #include<stack>
    # define PI 3.14159265358979323846
    using namespace std;
    typedef long long ll;
    const int maxn = 1e5+10;
    ll node[maxn];
    
    int main()
    {
        int n;
        cin>>n;
        int index = 1;
        for(index;index<=9;index++)
        {
            node[index] = index;
        }
        int i=1;
        while(index<=n)
        {
            if(node[i]%10==0)
            {
                node[index++] = node[i]*10;
                node[index++] = node[i]*10+1; 
            }
            else if(node[i]%10==9)
            {
                node[index++] = node[i]*10+8;
                node[index++] = node[i]*10+9;
            }
            else
            {
                node[index++] = node[i]*10+node[i]%10-1;
                node[index++] = node[i]*10+node[i]%10;
                node[index++] = node[i]*10+node[i]%10+1;
                
            }
            i++;
        }
        cout<<node[n]<<endl;
        
        return 0;
    }
    View Code

     

  • 相关阅读:
    个人博客05
    个人随笔04
    ELK-Kibana汉化
    Centos7下使用mail发送邮件
    使用Docker搭建Tomcat运行环境
    Jenkins添加maven插件
    linux下安装nodejs及npm
    服务器重启后Jenkins项目部分丢失问题解决方法
    【linux】如何查看文件的创建、修改时间
    禅道
  • 原文地址:https://www.cnblogs.com/subject/p/12642956.html
Copyright © 2011-2022 走看看