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
    没有梦想,何谈远方
  • 相关阅读:
    EXT 中的Grid实例
    JS正则表达式详解 转
    EXTJS制作的嵌套表格实例(点击一行,展开下面的子表)
    动态加载JS文件
    ExtJs WebService Json序列化(扩展JavaScriptSerializer类)收藏
    转载 悟透JavaScript
    《ExtJS2.0实用简明教程》之与服务器交互 extjs Ext.Ajax.request({}) params:
    Ext 动态添加grid 列数
    API中form相关
    生成用户界面
  • 原文地址:https://www.cnblogs.com/zyue/p/3961043.html
Copyright © 2011-2022 走看看