zoukankan      html  css  js  c++  java
  • UCF Local Programming Contest 2017(2020-4-6)

    A. Electric Bill

    解题思路:电量分级收费,判断是否大于1000,分别计算两部分的钱,求和输出。

    AC代码:

    #include<cmath>
    #include<cstdio>
    #include<algorithm>
    #include <string>
    #include<vector>
    #include<iomanip>
    #include<iostream>
    using namespace std;
    int main()
    {
        int a,b;
        cin>>a>>b;
        int n;
        cin>>n;
        while(n--){
            int c,d;
            cin>>c;
            cout<<c<<" ";
            if(c<=1000){
                d=c*a;
            }else{
            d=1000*a+(c-1000)*b;
            }
            cout<<d<<endl;
        }
    
        return 0;
    }

    B. Simplified Keyboard

    解题思路:给出一个字母分布图如果两个字符串对应位置的字母全都相等字符串属性为1,否则若两个字符串对应位置字母均相邻或相等,字符串属性为2,否则字符串属性为3.

     

     

     

    AC代码:

    #include<cmath>
    #include<cstdio>
    #include<algorithm>
    #include <string>
    #include<vector>
    #include<iomanip>
    #include<iostream>
    using namespace std;
    int main(){
        int n,i,a,b;
        string s1,s2;
        cin>>n;
        for(i=0;i<n;i++){
            cin>>s1>>s2;
            a=s1.length();
            b=s2.length();
            if(s1.compare(s2)==0){//判断是否相等,相等则为1
                cout<<"1"<<endl;
            }
            else if(a==b){
                int p=0;
                for(int j=0;j<a;j++){//遍历字符串并比较对应位置
                    if(s1[j]!=s2[j]&&s1[j]!=s2[j]-1&&s1[j]!=s2[j]+1&&s1[j]!=s2[j]-8
                    &&s1[j]!=s2[j]-9&&s1[j]!=s2[j]-10&&s1[j]!=s2[j]+9&&s1[j]!=s2[j]+10&&s1[j]!=s2[j]+8){
                        p=1;
                        break;
                    }
                }
                if(p==0)
                    cout<<"2"<<endl;
                if(p==1)
                    cout<<"3"<<endl;
            }
            else{//长度不相等,则为3
                cout<<"3"<<endl;
            }
        }
        return 0;
    }

    C. Singin' in the Rain

    解题思路:对于每个样例,第一行输入CD上歌曲的总数 t 和Anya想听的歌曲的数量 s ,第二行输入s个歌曲所在的位置,逐个计算每次切换需要按键的数量

    AC代码:

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    typedef long long ll;
    int main(){
        
        int n,flag;
        int s,i,j,first,next;
        long long t;
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>t>>s;
            long long sum=0;
            cin>>first;//初始位置
            for(j=1;j<=s-1;j++){
                cin>>next;
                flag=next-first-1;//已经播放到末尾了,-1
                if(flag<0){
                     flag=-flag;
                }
                if(flag<t-flag){//比较往前调还是往后调小呗
                    sum+=flag;
                }else{
                    sum+=t-flag;
                }
                first=next; 
            }
            cout<<sum<<endl;
        }
           return 0;
    }

    E. Simple Darts

    解题思路:掷飞镖,落在第一个圆内得50分,第二个圆内积分双倍,第三个圆内单倍,根据X轴正上方逆时针旋转,在第几个扇形中就得几分

    AC代码:

    #include <cmath>
    #include <cstdio>
    #include <algorithm>
    #include <string>
    #include <vector>
    #include <iomanip>
    #include <iostream>
    using namespace std;
    int main()
    {
        double w,b,d,s,k,n;
        cin>>k;
        while(k--){
            cin>>w>>b>>d>>s>>n;
            double count=0;
            int a;
            while(n--){
                double x,y;
                cin>>x>>y;
                double len=sqrt(x*x+y*y);
                double jd;
                if(len<=b){
                    count+=50;
                }else if(len<=d){
                    jd=atan2(y,x)/(2*acos(-1))*360;
                    if(jd<0){
                        jd=180+(180+jd);
                    }
                    a=jd/(360/w)+1;
                    count+=a*2;
                }else if(len<=s){
                    jd=atan2(y,x)/(2*acos(-1))*360;
                    if(jd<0){
                        jd=180+(180+jd);
                    }
                    a=jd/(360/w)+1;
                    count+=a;
                }
            }
            cout<<count<<endl;
        }
        return 0;
    }

    https://www.jisuanke.com/contest/7195

  • 相关阅读:
    Redis 集合(Set)
    北京Uber优步司机奖励政策(1月21日)
    成都Uber优步司机奖励政策(1月21日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月21日)
    全国各城市Uber客服联系方式(电话、邮箱、微博)
    成都Uber优步司机奖励政策(1月20日)
    北京Uber优步司机奖励政策(1月20日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月20日)
    Linq聚合函数使用
    Linq查询案例
  • 原文地址:https://www.cnblogs.com/a-specter/p/12668678.html
Copyright © 2011-2022 走看看