zoukankan      html  css  js  c++  java
  • Codeforces Round #265 (Div. 2) 题解

    A:给你一个二进制数,问你加一以后改变多少位

    解题思路:乱搞

    解题代码:

     1 // File Name: a.cpp
     2 // Author: darkdream
     3 // Created Time: 2014年09月07日 星期日 23时27分31秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 #define LL long long
    25 
    26 using namespace std;
    27 int a[200];
    28 int main(){
    29   int n , m ;
    30   scanf("%d",&n);
    31   for(int i =1;i <= n;i ++)
    32   {
    33      scanf("%1d",&a[i]);
    34   }
    35   int ans = 0; 
    36   int temp = 1; 
    37   for( int i = 1;i <= n;i ++)
    38   {
    39      temp = (a[i] + temp)/2;
    40      if(temp == 0 || a[i] == 0)
    41         {
    42           ans = i ; 
    43           break;
    44         }
    45   }
    46   if(ans == 0 )
    47       ans = n ;
    48   printf("%d
    ",ans);
    49 return 0;
    50 }
    View Code

    B:给你邮件列表,有些邮件已读,有些没读,给你三种操作

    1.点开这个邮件

    2.退出这封邮件

    3.在这封邮件里面点开上一封和下一封邮件。

    解题代码:

     1 // File Name: b.cpp
     2 // Author: darkdream
     3 // Created Time: 2014年09月07日 星期日 23时39分39秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 #define LL long long
    25 
    26 using namespace std;
    27 int a[1004];
    28 int main(){
    29   int n;
    30   scanf("%d",&n);
    31   scanf("%d",&a[1]);
    32   int sum = 0 ; 
    33   if(a[1] == 1 )
    34       sum = 1; 
    35   for(int i =2 ;i <= n;i++)
    36   {
    37     scanf("%d",&a[i]);
    38     if(a[i] == 0 && a[i-1] == 1)
    39     {
    40       sum ++;    
    41     }
    42     if(a[i] == 1)
    43     {
    44        sum ++ ;
    45     }
    46   }
    47   if(a[n] == 0 )
    48   {
    49     sum = max(sum-1,0) ; 
    50   }
    51   printf("%d
    ",sum);
    52 return 0;
    53 }
    View Code

    C:给你一个不包含回文子串,问你最多使用前p个字母且长度等于这个字符串且字典序比这个序列大而且不包含回文子串的的字符串。

    解题思路:枚举改变第几位就行

    解题代码:

     1 // File Name: c.cpp
     2 // Author: darkdream
     3 // Created Time: 2014年09月07日 星期日 23时55分52秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 #define LL long long
    25 
    26 using namespace std;
    27 int a[1005];
    28 int b[1005];
    29 char str[1005];
    30 int main(){
    31    int n , p ;
    32    scanf("%d %d",&n,&p);
    33    scanf("%s",&str[1]); 
    34    memset(a,0,sizeof(a));
    35    memset(b,0,sizeof(b));
    36    for(int i = 1;i <= n;i ++)
    37    {
    38      a[i] =  str[i] - 'a' + 1;
    39    }
    40    int ans = 0 ;
    41    //for(int i =1 ;i <= n;i++)
    42      //  printf("%d ",a[i]);
    43    for(int i = n;i >= 1 ;i --)
    44    {
    45      int j ;
    46      int s; 
    47      for(s = a[i] + 1 ; s <= p ;s ++)
    48      {
    49         if(s != a[i-1] &&( i-2 == -1 || (s != a[i-2]) ))
    50         {
    51            b[i] = s; 
    52            b[i-1] = a[i-1];
    53            break;
    54         }
    55      }
    56      if(s == p + 1)
    57          continue;
    58      //printf("
    %d %d
    ",i,s);
    59      for( j = i+1;j<= n;j ++)
    60      {
    61         for( s = 1; s <= p;s ++) 
    62         {
    63           if(s != b[j-1] && s!= b[j-2]) 
    64           {
    65               b[j] = s;
    66               //printf("%d***
    ",s);
    67               break;
    68           }
    69         }
    70         if(s == p + 1)
    71         {
    72           break;
    73         }
    74      }
    75      if(j == n+1)
    76      {
    77        ans = i;
    78        break;
    79      }
    80     }
    81    if(!ans)
    82    {
    83      printf("NO
    ");
    84      return 0 ; 
    85    }
    86    for(int i = 1;i <= ans -1;i ++)
    87        printf("%c",a[i] + 'a' -1 );
    88    for(int j = ans ;j <= n;j ++)
    89        printf("%c",b[j] + 'a' -1);
    90 
    91 return 0;
    92 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    7、配置私有仓库
    springcloud服务调用 list集合解析错误处理方法
    Mybatis-Plus 条件构造器的使用
    Mybatis-Plus 自定义sql
    Navicat Premium 15 安装与激活
    使用阿里云短信验证
    vue+element 表单el-radio单选框回显不能被选中问题
    类似性别(0、1)判断的table列表数据渲染
    使用docker 简单部署 ElasticSearch 以及 ElasticSearch-Head
    docker 配置镜像加速
  • 原文地址:https://www.cnblogs.com/zyue/p/3961043.html
Copyright © 2011-2022 走看看