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

    题目链接:https://codeforces.com/contest/1265


    A:Beautiful String

    题意:给出一个字符串,字符串只包含a,b,c,? 四种字符,要求把其中的 ?替换成 a,b,c 问能不能构造成完美的字符串。输出替换成功的字符串,不能就输出-1。完美:任意两个相邻的字符都不相等。

    idea:就几种情况,暴力签到

    时间复杂度:O(n)

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4  
     5 using namespace std;
     6 int t;
     7 string s;
     8  
     9 int main()
    10 {
    11     scanf("%d",&t);
    12     while (t -- )
    13     {
    14         cin >> s;
    15         int flag = 0, len = s.size();
    16         for (int i = 0; i < len; i ++ )
    17             if (s[i] == s[i + 1] && s[i] != '?' && s[i + 1] != '?')  flag = 1;
    18         if (flag)  puts("-1");
    19         else
    20         {
    21             for (int i = 0; i < len; i ++ )
    22             {
    23                 if (s[i] != '?')  cout << s[i];
    24                 else
    25                 {
    26                     if (s[i + 1] == '?')
    27                     {
    28                         if (s[i - 1] == 'a')  s[i] = 'b';
    29                         else if (s[i - 1] == 'b')  s[i] = 'c';
    30                         else s[i] = 'a';
    31                         cout << s[i];
    32                     }
    33                     else
    34                     {
    35                         if (s[i - 1] != 'a' && s[i + 1] != 'a')  s[i] = 'a';
    36                         if (s[i - 1] != 'b' && s[i + 1] != 'b')  s[i] = 'b';
    37                         if (s[i - 1] != 'c' && s[i + 1] != 'c')  s[i] = 'c';
    38                         cout << s[i];
    39                     }
    40                 }
    41             }
    42             puts("");
    43         }
    44     }
    45     return 0;
    View Code

    B:Beautiful Numbers

    题意:给出一个无序数组,从1~n询问每个数m,能否有包含1~m且长度是m的连续集合。若能输出1,否输出0

    idea:预处理出来每个数距离 1 的距离,若当前查询长度为m,因为序列要包括 1 ~ m ,所以每次从1 ~ m 距离1的距离中更新边界即可。

    时间复杂度:O(n)

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int N = 2e5 + 10;
     4 int t, n, a[N], cnt[N];
     5  
     6 int main()
     7 {
     8     scanf("%d",&t);
     9     while (t -- )
    10     {
    11         scanf("%d",&n);
    12         int s;
    13         for (int i = 1; i <= n; i ++ )
    14         {
    15             scanf("%d",&a[i]);
    16             if (a[i] == 1)  s = i;
    17         }
    18         for (int i = 1; i <= n; i ++ )  cnt[a[i]] = i - s;
    19         int l, r;
    20         l = r = 0;
    21         for (int i = 1; i <= n; i ++ )
    22         {
    23             l = min(l, cnt[i]);
    24             r = max(r, cnt[i]);
    25             if ((abs(l) + r + 1) == i)  cout << "1";
    26             else  cout << "0";
    27         }
    28         puts("");
    29     }
    30     return 0;
    31 }
    View Code

    C:Beautiful Regional Contest

    题意:给出每个人的过题数,最多能分别发多少奖牌,且 金 < 银 && 金 < 铜,金 + 银 + 铜 <= n / 2

    idea:找间断点即可

     1 #include <iostream>
     2 #include <cstdio>
     3  
     4 using namespace std;
     5 const int N = 4e5 + 10;
     6 int t, n, a[N];
     7  
     8 int main()
     9 {
    10     scanf("%d",&t);
    11     while (t -- )
    12     {
    13         scanf("%d",&n);
    14         for (int i = 1; i <= n; i ++ )
    15             scanf("%d",&a[i]);
    16         int x = 1, y, z;
    17         while (x < n && a[x] == a[x + 1])  x ++ ;
    18         y = 2 * x + 1;
    19         while (y < n && a[y] == a[y + 1])  y ++ ;
    20         z = n / 2;
    21         while (z > y && a[z] == a[z + 1])  z -- ;
    22         if (z - y > x)  printf("%d %d %d
    ",x,y - x,z - y);
    23         else  puts("0 0 0");
    24     }
    25     return 0;
    26 }
    View Code
  • 相关阅读:
    html5中将图片的绝对路径转换成文件对象
    Vue中之nextTick函数源码分析
    javascript中的异步 macrotask 和 microtask 简介
    HTML5可预览多图片ajax上传(使用formData传递数据)
    vue双向绑定的原理及实现双向绑定MVVM源码分析
    理解Vue中的Render渲染函数
    如何实现一个 Virtual DOM 及源码分析
    diff.js 列表对比算法 源码分析
    理解spread运算符与rest参数
    go语言之进阶篇普通变量的方法集
  • 原文地址:https://www.cnblogs.com/chuyds/p/12002109.html
Copyright © 2011-2022 走看看