zoukankan      html  css  js  c++  java
  • 2020.4.6 UCF Local Programming Contest 2017 解题+补题报告

    A Electric Bill

     1.题意

      计算电费,1000kwh及以下一档收费a,以上为一档收费b。

     

     2.题解

      if-else判断。

     3.代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int a,b,t;
     4 int main(){
     5     cin>>a>>b>>t;
     6     for(int i=1;i<=t;i++){
     7         int x,ans=0;
     8         cin>>x;
     9         if(x<=1000)
    10             ans=x*a;
    11         else
    12             ans=(x-1000)*b+1000*a;
    13         cout<<x<<' '<<ans<<endl;
    14     }
    15    
    16     return 0;
    17 }

     

    B Simplified Keyboard

     1.题意

      给定一张字母分布图,判断两单词之间的属性。若两单词完全相同,则为属性1,若两单词长度相同,对应字母相同或相邻,则为属性2,否则为属性3。

     2.题解

      用map存邻近关系,然后判断即可。

     3.代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main(){
     4     map<char,string> mp;
     5     mp['a']="bkj";
     6     mp['b']="clkja";
     7     mp['c']="dmlkb";
     8     mp['d']="enmlc";
     9     mp['e']="fonmd";
    10     mp['f']="gpone";
    11     mp['g']="hqpof";
    12     mp['h']="irqpg";
    13     mp['i']="rqh";
    14     mp['j']="abkts";
    15     mp['k']="abclutsj";
    16     mp['l']="bcdmvutk";
    17     mp['m']="cdenwvul";
    18     mp['n']="defoxwvm";
    19     mp['o']="efgpyxwn";
    20     mp['p']="fghqzyxo";
    21     mp['q']="ghirzyp";
    22     mp['r']="hizq";
    23     mp['s']="jkt";
    24     mp['t']="jklus";
    25     mp['u']="klmvt";
    26     mp['v']="lmnwu";
    27     mp['w']="mnoxv";
    28     mp['x']="nopyw";
    29     mp['y']="opqzx";
    30     mp['z']="pqry";
    31     
    32     int t,flag,flag1;
    33     string a,b;
    34     cin>>t;
    35     while(t--){
    36         flag=0,flag1=0;
    37         cin>>a>>b;
    38         if(a.size()!=b.size()){
    39             cout<<"3"<<endl;
    40             continue;
    41         }
    42         for(int i=0;i<a.size();i++){
    43             if(a[i]!=b[i]){
    44                 flag=1;
    45                 break;
    46             }
    47         }
    48         if(flag==0){
    49             cout<<"1"<<endl;
    50             continue;
    51         }
    52         else{
    53             for(int i=0;i<a.size();i++){
    54                 flag1=0;
    55                 if(a[i]==b[i]){
    56                     flag1=1;
    57                     continue;
    58                 }
    59                 if(a[i]!=b[i]){
    60                     for(int j=0;j<mp[a[i]].size();j++){
    61                         if(mp[a[i]][j]==b[i]){
    62                             flag1=1;
    63                             break;
    64                         }
    65                     }
    66                 }
    67                 if(flag1==0){
    68                     break;
    69                 }
    70             }
    71             if(flag1==1){
    72                 cout<<"2"<<endl;
    73             }
    74             else{
    75                 cout<<"3"<<endl; 
    76             }    
    77         }
    78     }
    79     return 0;
    80 }

     

    C Singin' in the Rain

     1.题意

      给定一张专辑,女儿喜欢其中的k首,当一首歌播放结束时,按后退一次则再次播放这首歌,按两次则播放上首歌,按一次前进则播放下首歌的下一首,专辑的最后一首播放完将跳到第一首。给定女儿喜欢的歌的序号列表,问最少要按多少次按钮。

     2.题解

      模拟。从一首歌到另一首歌,要么往前按,要么往后按,取较小值。

     3.代码

     1 #include<bits/stdc++.h>
     2 #define ll long long 
     3 using namespace std;
     4 ll t,n,k,ans;
     5 int main(){
     6     cin>>t;
     7     while(t--){
     8         cin>>n>>k;
     9         ans=0;
    10         ll a,b;
    11         cin>>a;
    12         for(ll i=1;i<k;i++){
    13             cin>>b;    
    14             if(a==b)
    15                 ans+=1;
    16             else if(a<b)
    17                 ans+=min(b-a-1,n-b+1+a);    
    18             else
    19                 ans+=min(a-b+1,n-a-1+b);
    20             a=b;
    21         }
    22         cout<<ans<<endl;
    23     }
    24 
    25     return 0;
    26 }

     

  • 相关阅读:
    JavaScript中this指针指向的彻底理解
    JavaScript闭包应用介绍
    Javascript代码中的骚操作
    h2database.com 高级特性
    H2Database高级特性
    BlockingQueue的使用
    谈谈java的BlockingQueue
    Java基于Socket文件传输示例
    java socket 多线程网络传输多个文件
    用JAVA捕获屏幕、屏幕录像、播放
  • 原文地址:https://www.cnblogs.com/lvguapi/p/12652408.html
Copyright © 2011-2022 走看看