题意

一个01串,可以有两种操作:①在末尾添加parity(a);②删除开头的一个字符。其中parity(a),当串中1的个数为奇数时为1,偶数时为0。问某个01串是否可以通过若干操作变成另一个01串。

思路

简单分析一下可以先发现一个事情:当一个串的1的个数为奇数时它最多可以再增加1个1;而当1的个数是偶数时,1的个数不可能再增加。这是一个决定性的性质。 再进一步发现,奇数个数1的01串可以任意减少1的个数,以及,任意一个串可以移位。以及,当1的个数为偶数个时,可以通过在末尾任意补0以及移位操作转换成长度一定、1个数一定的任意01串。而奇数个数1的01串可以通过先增加1个1,然后补0、移位,再减一个1也能转换成长度一定、1个数一定的任意01串。 所以我们只要统计起始串和目标串的长度,当起始串1个数为奇数时可以+1,然后如果起始串长度>=目标串,则一定可以通过减少1、补0、移位等操作转换成目标串。

代码

[cpp] #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <string> #include <cstring> #include <vector> #include <set> #include <stack> #include <queue> #define MID(x,y) ((x+y)/2) #define MEM(a,b) memset(a,b,sizeof(a)) #define REP(i, begin, end) for (int i = begin; i <= end; i ++) using namespace std; typedef long long LL; typedef vector <int> VI; typedef set <int> SETI; typedef queue <int> QI; typedef stack <int> SI; int main(){ //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); string s1, s2; cin >> s1 >> s2; int len1 = count(s1.begin(), s1.end(), '1'), len2 = count(s2.begin(), s2.end(), '1'); if (len1 & 1) len1 ++; if (len1 >= len2){ puts("YES"); } else{ puts("NO"); } return 0; } [/cpp]

转载于:https://www.cnblogs.com/AbandonZHANG/p/4114107.html

CodeForces 297A Parity Game (脑补题)相关推荐

  1. codeforces round div2,3周赛补题计划(从开学到期末)

    1. 本学期场次 从2020.09.19-2021.01.18,一共18周. 题号 场次 日期 备注 1475 Codeforces Round #697 (Div. 3) 1.25 1474 Cod ...

  2. Codeforces Round #807 (Div. 2)补题

    C. Mark and His Unfinished Essay https://codeforces.com/contest/1705/problem/C 会卡long long,下面解法62ms过 ...

  3. Codeforces Round #723 (Div. 2)补题

    水题,只需要将序列分成两部分即可,一部分是大的,一部分是小的. #include <cstdio> #include <iostream> #include <algor ...

  4. Codeforces Round #702 (Div. 3)补题

    题目链接 文章目录 A. Dense Array B. Balanced Remainders C. Sum of Cubes D. Permutation Transformation E. Acc ...

  5. Codeforces Round #787 (Div. 3)补题

    目录: 官网链接 E. Replace With the Previous, Minimize F. Vlad and Unfinished Business G. Sorting Pancakes ...

  6. Codeforces 补题记录

    首先总结一下前段时间遇到过的一些有意思的题. Round #474 (Div. 1 + Div. 2, combined)   Problem G 其实关键就是n这个数在排列中的位置. 这样对于一个排 ...

  7. Codeforces Round #701 (Div. 2)赛后补题报告(A~D)

    Codeforces Round #701 (Div. 2)赛后补题报告(A~D) A. Add and Divide 原题信息 http://codeforces.com/contest/1485/ ...

  8. Codeforces补题记录(1)

    文章目录 Codeforces补题记录(1) 1.Codeforces Round #632 (Div. 2)(2020.4.11) A.Little Artem B.Kind Anton *C.Eu ...

  9. 2020 China Collegiate Programming Contest Weihai Site补题部分

    A. Golden Spirit 签到题,首先把所有老人带到对岸,然后在对休息讨论一下即可. #define IO ios::sync_with_stdio(false);cin.tie();cout ...

最新文章

  1. 使用inetaddress测试目标可达性_白盒测试工具―Winams介绍
  2. 关于cisco与中兴三层设备ospf互连
  3. 转:微软未公开的几个过程介绍及用法
  4. 80 after generation to marry or not to marry that is a question
  5. 空间谱专题08:相位模糊
  6. 【golang】golang获取客户端ip
  7. 现代材料分析方法习题汇总及答案
  8. 如何让p标签里面的内容首行缩进
  9. Surface Pro 6 黑苹果 CLOVER 配置文件,全球首发(转载)
  10. 我的世界boat运行库JAVA10_boat运行库导入下载
  11. 鹏城实验室麒麟V10飞腾2000+体验
  12. 你唯有试过几个后,才能对女人这物种有全局判断。所以分手别忧桑,正确态度是:ok我已经有一个data point,现在我来找更多的data points来组成一个sample从而在这个认知基础上选择
  13. leaflet地图概念框架图
  14. Github标签管理
  15. Xshell配色美化
  16. Xshell计算-五个文件的准备
  17. libco源码解析(2) 创建协程,co_create
  18. 流计算 Oceanus 限量1元秒杀,立省2000元
  19. 大数据处理过程的通俗理解
  20. uni-app 为组件 uni-icons 制作可拓展的自定义图标库(超实用)

热门文章

  1. 2014秋应用计算机,2014年秋计算机应用基础》期末试卷A(A3版).doc
  2. java跑到linux上,Java程序在Linux上运行虚拟内存耗用很大
  3. jni调用java类_JNI之C++调用Java类 —— java.lang.String
  4. php与mysql实例教程_mysql实例与连接
  5. 算术的c语言程序设计,C 程序设计:变量与算术表达式
  6. Linux启动芯片的初始代码,Linux系统初始化流程(简述)
  7. 对于网络爬虫的提问?
  8. 最详细的YOLOv3论文笔记
  9. python字典的键可以是列表吗_如何返回字典键作为Python中的列表?
  10. 关于读研的一些感悟1