• 题意:给你两个长度为\(n\)的01串\(s\)和\(t\),可以选择\(s\)的前几位,取反然后反转,保证\(s\)总能通过不超过\(2n\)的操作得到\(t\),输出变换总数,和每次变换的位置.

  • 题解:我们现将\(s\)串全部变成\(1\)或\(0\),确保\(s[n]=t[n]\),然后我们倒着遍历\(t\),若遇到相邻的两个字符不同,我们就对\(s\)中相应的位置执行一次操作,然后继续遍历,如下图:

  • 代码:

    int t;
    int n;
    char s[N],tmp[N];
    vector<int> ans; int main() {
    scanf("%d",&t);
    while(t--){
    scanf("%d",&n);
    scanf("%s %s",s+1,tmp+1);
    ans.clear();
    if(s==tmp){
    printf("0\n");
    continue;
    } for(int i=1;i<n;++i){
    if(s[i]!=s[i+1]){
    ans.pb(i);
    }
    }
    if(s[n]!=tmp[n]){
    ans.pb(n);
    }
    for(int i=n;i>=2;--i){
    if(tmp[i]!=tmp[i-1]){
    ans.pb(i-1);
    }
    }
    printf("%d ",ans.size());
    for(auto w:ans){
    printf("%d ",w);
    }
    puts("");
    } return 0;
    }

最新文章

  1. B树和B+树的区别
  2. JavaScript代码段整理笔记系列(一)
  3. idea 如何隐藏/展示不想看到的文件
  4. XLConnect:一个用R处理Excel文件的高效平台
  5. 文件读写 swift
  6. eclipse ADT下载地址
  7. mysql聚合函数
  8. 2假动作,数据缓冲,CCEaseExponential,CCEaseElastic,CCEaseBounce,CCCallFunc,funcNCallBack,funcNDCallBack,funcO
  9. [破解] DRM-内容数据版权加密保护技术学习(中):License预发放实现
  10. Linux下查看使用频率最高的十个命令
  11. BZOJ_1925_[Sdoi2010]地精部落_递推
  12. get方法与post方法的区别与js获取url参数的方式
  13. 又拍云 Node.js 实现文件上传、删除
  14. 使用 vi/vim 时,粘贴进新创建文件或空文件的首行内容丢失的解决方法
  15. C++ classes and uniform initialization
  16. 如何阻止点击scrollviewer里面的单位内容时,自动滚动
  17. Cannot refer to the non-final local variable user defined in an enclosing scope 内部类定义在方法内,方法定义的参数(形参)无法被内部类直接访问,需要用final定义
  18. Eclipse导入web项目发布项目时报Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web错误解决方案
  19. Java语法糖设计
  20. Linux的进程间通信-文件和文件锁

热门文章

  1. python模块详解 | shutil
  2. Kafka 探险 - 生产者源码分析: 核心组件
  3. pod管理调度约束、与健康状态检查
  4. ABAP-ALV-如何去掉OO方法中的ALV的标准按钮
  5. SW3516中文资料书
  6. Nacos 服务配置中心
  7. QTextEdit字符串的高亮显示问题
  8. 新编日语1234册/重排本/全册 pdf
  9. 关于Java客户端连接虚拟机中的Kafka时,无法发送、接收消息的问题
  10. python基础(数据类型,while,if)