zoukankan      html  css  js  c++  java
  • Codeforces#355

    大小号刷题,大号,被查重,悲剧,最后小号过了3题

    A题:

    分析:大于h的+2,小于等于h的+1

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int maxn=202;
    15 int a[maxn];
    16 int n,h;
    17 int main()
    18 {
    19     while(cin>>n>>h)
    20     {
    21         long long sum=0;
    22         for(int i=0;i<n;i++){
    23             int x;
    24             scanf("%d",&x);
    25             if(x>h)
    26                 sum+=2;
    27             else
    28                 sum+=1;
    29         }
    30         cout<<sum<<endl;
    31     }
    32     return 0;
    33 }
    View Code

    B题:

    题意:有n个长度分别为a1,a2.....an的木棒,每次可以削掉长度为k的,放入机器的最大长度不能大于h,一根接着一根地放入,问怎么才能用最少的次数

    分析:看清题意发现是水题,一根接着一根放入,则我们判断一下上一根剩余的加上下一根的长度是否大于h,若大于,则只把剩余部分放入机器,否则把剩余部分和下一根一起放入机器

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int maxn=100010;
    15 int  a[maxn];
    16 int k,n,h;
    17 int main()
    18 {
    19     while(cin>>n>>h>>k)
    20     {
    21         memset(a,0,sizeof(a));
    22         for(int i=0;i<n;i++)
    23             scanf("%d",&a[i]);
    24         int t,f;
    25         long long cnt=0;
    26         for(int i=0;i<n;i++){
    27             t=a[i]/k; //需要几刀
    28             f=a[i]%k; //切完之后当前这段还剩多少
    29             cnt+=t;
    30             if(a[i+1]+f>h){  //不能切分
    31                 cnt++;
    32             }else{  //可以切分
    33                 a[i+1]+=f;
    34             }
    35         }
    36         if(f) cnt++;
    37         cout<<cnt<<endl;
    38     }
    39     return 0;
    40 }
    View Code

    C题:

    题意:一个字符串里面的字符分别代表不同的数,字符串的每个数是由两个不同的数按位&得到的,问这样的组合最多有多少个

    分析:若是0,则有0&0,1&0,0&1,3种,若是1只有1&1这1种,因此就是统计每个数的二进制有多少个0即可

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int mod=1000000007;
    15 const int maxn=100010;
    16 char str[maxn];
    17 long long num[maxn];
    18 long long  solve(char s ){
    19     long long x;
    20     if(s>='0'&&s<='9')
    21         x=s-'0';
    22     else if(s>='A'&&s<='Z')
    23         x=s-'A'+10;
    24     else if(s>='a'&&s<='z')
    25         x=s-'a'+36;
    26     else if(s=='-')
    27         x=62;
    28     else
    29         x=63;
    30     return x;
    31 }
    32 int main()
    33 {
    34 
    35     scanf("%s",str);
    36     int n=strlen(str);
    37     long long ans=1;
    38     for(int i=0;i<n;i++){
    39         long long x=solve(str[i]);
    40         for(int j=0;j<6;j++){
    41             if((x&(1<<j))==0)
    42                 ans=ans*3%mod;
    43         }
    44     }
    45     cout<<ans<<endl;
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    html5 canvas雨点打到窗玻璃动画
    html5跟随鼠标炫酷网站引导页动画特效
    如何实现复选框的全选和取消全选效果
    CSS3透明属性opacity
    jQuery实现方式不一样的跳转到底部
    ul li设置横排,并除去li前的圆点
    jQuery美女幻灯相册轮播源代码
    微软modern.IE网站,多版本IE免费测试工具集
    css中position与z-index
    C#一个方法返回多个值
  • 原文地址:https://www.cnblogs.com/wolf940509/p/5553653.html
Copyright © 2011-2022 走看看