zoukankan      html  css  js  c++  java
  • Codeforces Round #434 (Div. 2, based on Technocup 2018 Elimination Round 1)

    A. k-rounding

    题目意思:给两个数n和m,现在让你输出一个数ans,ans是n倍数且末尾要有m个0;

    题目思路:我们知道一个数末尾0的个数和其质因数中2的数量和5的数量的最小值有关系,所以我们可以把n中的2和5的因子数量分别算出来,然后看一下是否都大于等于m,否则我们就把他们补成m个。然后再乘回去就结束了。

    题目链接:http://codeforces.com/contest/861/problem/A

    代码:

     1 /* ***********************************************
     2 Author        :xiaowuga
     3 Created Time  :2017年10月02日 星期一 18时00分24秒
     4 File Name     :A.cpp
     5 ************************************************ */
     6 #include <bits/stdc++.h>
     7 #define mem(s,ch) memset(s,ch,sizeof(s))
     8 typedef long long LL; 
     9 #define inf 0x3f3f3f3f 
    10 const long long N=1000000;
    11 const long long mod=1e9+7;
    12 using namespace std;
    13 int main(){
    14     ios::sync_with_stdio(false);cin.tie(0);
    15     LL n,k;
    16     cin>>n>>k;
    17     LL c1=0,c2=0;    
    18     LL t=n;
    19     while(t%2==0){
    20         c1++;
    21         t/=2;
    22     }
    23     while(t%5==0){
    24         c2++;
    25         t/=5;
    26     }
    27     while(c1<k) c1++;
    28     while(c2<k) c2++;
    29     for(int i=0;i<c1;i++){
    30         t*=2;
    31     }
    32     for(int i=0;i<c2;i++){
    33         t*=5;
    34     }
    35     cout<<t<<endl;
    36     return 0;
    37 }
    View Code

    B. Which floor?

    题目意思:小明住在一个每层楼都有相同数量房间的大楼里面,但是他忘记每层楼有多少个房间了。现在他只记得某些房间在几楼,现在让你根据小明的记忆,判断编号为n的房间在哪一楼是否可以确定。(房间的编号从1-n)从底层到高层;

    题目思路:我们发现数据范围很小,这意味这我们可以暴力枚举每层有多少间房间,然后和小明的记忆进行比对,然后把符合小明记忆的数量存起来,然后最后判断他们指出编号为n的房间的楼层是否相同,如果不同就输出-1.

    题目链接:http://codeforces.com/contest/861/problem/B

    代码:

     1 /* ***********************************************
     2 Author        :xiaowuga
     3 Created Time  :2017年10月02日 星期一 18时48分45秒
     4 File Name     :B.cpp
     5 ************************************************ */
     6 #include <bits/stdc++.h>
     7 #define mem(s,ch) memset(s,ch,sizeof(s))
     8 typedef long long LL; 
     9 #define inf 0x3f3f3f3f 
    10 const long long N=1000000;
    11 const long long mod=1e9+7;
    12 using namespace std;
    13 vector<pair<int,int> >q;
    14 vector<int>p;
    15 int main(){
    16     ios::sync_with_stdio(false);cin.tie(0);
    17     int n,k;
    18     cin>>n>>k;
    19     q.resize(k+1);
    20     for(int i=0;i<k;i++) {
    21         cin>>q[i].first>>q[i].second;
    22     }
    23     int ct=0;
    24     int ans=0;
    25     for(int i=1;i<=100;i++){
    26         int cnt=0;
    27         for(int j=0;j<k;j++){
    28             int x=q[j].first,y=q[j].second;    
    29             int l;
    30             if(x%i==0) l=0;else l=1;
    31             int z=x/i+l;
    32             if(z==y) cnt++;
    33             else break;
    34         }
    35         if(cnt==k){
    36             ct++;
    37             p.push_back(i);
    38         }
    39     }
    40     if(ct==0) cout<<-1<<endl;
    41     else if(ct==1){
    42         cout<<(n/p[0]+(n%p[0]!=0))<<endl;
    43     }
    44     else{
    45         ans=(n/p[0]+(n%p[0]!=0));
    46         for(int i=1;i<p.size();i++){
    47             int a=n/p[i]+(n%p[i]!=0);
    48             if(a!=ans){cout<<-1<<endl; return 0;}
    49         }
    50         cout<<ans<<endl;
    51     }
    52     return 0;
    53 }
    View Code

    C. Did you mean...

    题目意思:有一个字符串,如果有超过三个以上的辅音字母连续出现就需要添加一个空格,三个都是辅音字母都是一样的则不算,em…………直接模拟就好了,做的时候没有读懂题目的意思,简直GG

    题目思路:每次发现累计三个辅音字母就判断一个三个是不是一样的,如果是就那么计数器减减,否则就在最后一个辅音字母输出的前面加一个空格,然后计数器清为1,如果碰到原因字母计数器清为0。

    代码:

     1 /* ***********************************************
     2 Author        :xiaowuga
     3 Created Time  :2017年10月02日 星期一 20时05分34秒
     4 File Name     :C.cpp
     5 ************************************************ */
     6 #include <bits/stdc++.h>
     7 #define mem(s,ch) memset(s,ch,sizeof(s))
     8 typedef long long LL; 
     9 #define inf 0x3f3f3f3f 
    10 const long long N=1000000;
    11 const long long mod=1e9+7;
    12 using namespace std;
    13 int check(char a){
    14     if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u') return 1;
    15     else return 0;
    16 }
    17 int main(){
    18     ios::sync_with_stdio(false);cin.tie(0);
    19     string q;
    20     cin>>q;
    21     int len=q.size();
    22     int ct=0;
    23     for(int i=0;i<len;i++){
    24         if(!check(q[i])){
    25             ct++;
    26             if(ct>=3){
    27                 if(q[i-1]==q[i]&&q[i]==q[i-2]) ct--;
    28                 else {
    29                     cout<<' ';
    30                     ct=1;
    31                 }
    32             }
    33 
    34         }    
    35         else ct=0;
    36         cout<<q[i];
    37     }
    38     cout<<endl;
    39     return 0;
    40 }
    View Code
  • 相关阅读:
    理解AI的角度
    如何提升分享信息的价值
    大数据和你想的不一样
    《卓有成效的程序员》笔记
    Mac下安装和使用GunPG(GPG)
    hive界面工具SQL Developer的安装;使用sql developer连接hive;使用sql developer连接mysql
    mac os安装jdk、卸载
    前端模板inspinia
    squirrelsql安装
    GOPATH设置
  • 原文地址:https://www.cnblogs.com/xiaowuga/p/7622935.html
Copyright © 2011-2022 走看看