我太菜啦!!!md,第一题就把我卡死了...感觉对构造题不会再爱了...

A - ABC Identity

先来看这个题吧,题意就是给定你一个字符串,让你将这个字符串最多分成6个子串,使得每个字符都在某个子串当中,使得每个子串都满足以下条件,每个子串的长度为3的倍数,且前1/3和中间的1/3和最后的1/3内部必须字母一样,且这三部分互不相等。...

构造题我也不是没做过,看到最多6种,我就知道肯定有一种方法是6中且满足所有的情况。可怎么向也想不到....呜呜呜呜。3和6的关系...,最后看看题解,不就是排列吗?6是3的全排列啊,我们先将整个字符串分成三部分,每次从每部分各拿出一个,然后按照格子的排列合并不就行了....吐了...

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=6e5+10;
  4. int n,b[N],vis[N];
  5. char c[N];
  6. inline void work(char A,char B,char C,int id)
  7. {
  8. int tot1=0,tot2=0,tot3=0;
  9. for(int i=1;i<=n;++i)
  10. {
  11. if(!vis[i]&&c[i]==A) tot1++;
  12. if(!vis[n+i]&&c[n+i]==B) tot2++;
  13. if(!vis[2*n+i]&&c[2*n+i]==C) tot3++;
  14. }
  15. tot1=tot2=tot3=min(min(tot1,tot2),tot3);
  16. for(int i=1;i<=n;++i)
  17. {
  18. if(!vis[i]&&c[i]==A&&(tot1--)>0) b[i]=id,vis[i]=1;
  19. if(!vis[n+i]&&c[n+i]==B&&(tot2--)>0) b[n+i]=id,vis[n+i]=1;
  20. if(!vis[2*n+i]&&c[2*n+i]==C&&(tot3--)>0) b[2*n+i]=id,vis[2*n+i]=1;
  21. }
  22. }
  23. int main()
  24. {
  25. // freopen("1.in","r",stdin);
  26. scanf("%d",&n);
  27. scanf("%s",c+1);
  28. work('A','B','C',1);
  29. work('A','C','B',2);
  30. work('B','A','C',3);
  31. work('B','C','A',4);
  32. work('C','A','B',5);
  33. work('C','B','A',6);
  34. for(int i=1;i<=3*n;++i) printf("%d",b[i]);
  35. return 0;
  36. }

AtCoder Grand Contest 055题解的更多相关文章

  1. AtCoder Grand Contest 055 题解

    A 赛时直到最后 10min 才做出这个 A 题,之前猜了一个结论一直没敢写,本来不抱啥希望 AC 的结果比赛结束时交了一发竟然 A 了,由此可见我的水平之菜/dk 考虑每次取出字符串开头字符,不妨设 ...

  2. AtCoder Grand Contest 017 题解

    A - Biscuits 题目: 给出 \(n\) 个物品,每个物品有一个权值. 问有多少种选取方式使得物品权值之和 \(\bmod\space 2\) 为 \(p\). \(n \leq 50\) ...

  3. Atcoder Grand Contest 054 题解

    那天晚上由于毕业晚会与同学吃饭喝酒没打 AGC,第二天稍微补了下题,目前补到了 E,显然 AGC 的 F 对于我来说都是不可做题就没补了(bushi A 简单题,不难发现如果我们通过三次及以上的操作将 ...

  4. AtCoder Grand Contest 030题解

    第一次套刷AtCoder 体验良好 传送门 Poisonous Cookies cout<<b+min(c,a+b+); Tree Burning 难度跨度有点大啊 可以证明当第一次转向之 ...

  5. AtCoder Grand Contest 031题解

    题面 传送门 题解 比赛的之后做完\(AB\)就开始发呆了--简直菜的一笔啊-- \(A - Colorful\ Subsequence\) 如果第\(i\)个字母选,那么它前面任意一个别的字母的选择 ...

  6. AtCoder Grand Contest 039 题解

    传送门 \(A\) 首先只有一串的情况下,遇到相同的肯定是改后面那一个最优,然后两串的话可能要分奇偶讨论一下 //quming #include<bits/stdc++.h> #defin ...

  7. AtCoder Grand Contest 017题解

    传送门 \(A\) 直接转移就是了 typedef long long ll; const int N=55; ll f[N][2];int a[N],n,p; int main(){ scanf(& ...

  8. AtCoder Grand Contest 015题解

    传送门 \(A\) 找到能达到的最大的和最小的,那么中间任意一个都可以被表示出来 typedef long long ll; int n,a,b;ll res; int main(){ scanf(& ...

  9. AtCoder Grand Contest 038 题解

    传送门 这场表现的宛如一个\(zz\) \(A\) 先直接把前\(b\)行全写成\(1\),再把前\(a\)列取反就行 const int N=1005; char mp[N][N];int n,m, ...

随机推荐

  1. 解决vscode可以编译通过c++项目,但头文件有红色波浪线的问题

    解决vscode可以编译通过c++项目,但头文件有红色波浪线的问题 一.问题描述 我是在Ubuntu 16.04的环境下,用vscode写代码的,一般不使用vscode自带的编译环境,而是用cmake ...

  2. Java基础系列(39)- 二维数组

    多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int[2][5]; 解析:以上二维数组a可以看成一个 ...

  3. Docker系列(7)- 常用命令(3) | 容器命令

    容器命令 说明: 有了镜像才可以创建容器:下载一个centos镜像进行练习,相当于在Linux里面再见一个Linux虚拟机 [root@localhost ~]# docker pull centos ...

  4. Batch Size对神经网络训练的影响

    ​ 前言 这篇文章非常全面细致地介绍了Batch Size的相关问题.结合一些理论知识,通过大量实验,文章探讨了Batch Size的大小对模型性能的影响.如何影响以及如何缩小影响等有关内容. 本文来 ...

  5. Ubuntu18.04安装jenkins

    官网参考指引:https://pkg.jenkins.io/debian-stable/ wget -q -O - https://pkg.jenkins.io/debian-stable/jenki ...

  6. python学习笔记(八)-模块

    大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. ...

  7. 数据库管理软件navicate12的激活和安装

    前言   太多做测试或开发的小伙伴需要写sql语句,激活版navicat版本它来了 准备软件 navicat12安装包 navicat注册机 百度网盘下载链接(永久有效): 链接:https://pa ...

  8. 安装Transformers与ValueError: Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' 'truncation=True' to have batched tensors with the same length.报错

    此篇博客内容为短暂存留记录(项目使用过程还未记录),后续将会更新完整学习流程.. 1.根据官网上的链接安装有两种方式: (1)pip直接安装 pip install transformers # 安装 ...

  9. Rafy 框架 - 实体支持只更新部分变更的字段

    Rafy 快一两年没有大的更新了.并不是这个框架没人维护了.相反,主要是因为自己的项目.以及公司在使用的项目,都已经比较稳定了,也没有新的功能添加.但是最近因为外面使用了 Rafy 的几个公司,找到我 ...

  10. 阿里云 Serverless 再升级,从体验上拉开差距

    差距都在细节上. Serverless 要成就云计算的下一个 10 年,不仅需要在技术上持续精进,也需要在产品体验上精耕细作. 近日,阿里云 Serverless 再度升级,发布了一系列围绕产品体验方 ...