zoukankan      html  css  js  c++  java
  • cf round 658 C2 贪心+乱搞 46ms

     1 #include<stdio.h>
     2 
     3 char s[100005];
     4 char s1[100005];
     5 char s3[100005];
     6 int st[500005], tp;
     7 
     8 int main()
     9 {
    10     int t;
    11     scanf("%d",&t);
    12     while(t--)
    13     {
    14         int n;
    15         scanf("%d",&n);
    16         scanf("%s",s);
    17         scanf("%s",s1);
    18         for(int i = 0; i < n; i++) s[i] -= '0',s1[i] -= '0';
    19         s[n] = s1[n] = s3[n] = 0;
    20         int cnt = 0;
    21         do
    22         {
    23             tp = 0;
    24             st[++tp] = n-cnt;
    25             for(int i = 0; i < n; i++) s3[i] = ((i<n-cnt)?(s[i]^1):s[i]);
    26             for(int i = 0; i < (n-cnt)/2; i++) s3[i] ^= s3[n-cnt-i-1] ^= s3[i] ^= s3[n-cnt-i-1];
    27             for(int i = 0; i < n; i++)
    28             {
    29                 if(s3[i]^s1[i])
    30                 {
    31                     int j = i+1;
    32                     while(s3[j]^s1[j] && s3[j] == s3[i]) j++;
    33                     st[++tp] = j;
    34                     if(!i) {i=j-1;continue;}
    35                     st[++tp] = j-i;
    36                     st[++tp] = j;
    37                     i = j-1;
    38                 }
    39             }
    40             cnt = (cnt * cnt + cnt+1) % n;
    41         }while(tp > 2*n);
    42         printf("%d",tp);
    43         for(int i = 1; i <= tp; i++) printf(" %d%s",st[i],i==tp?"
    ":"");
    44         if(!tp) puts("");
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    前端页面的防抖与节流
    vue3.0 响应式原理
    cssBEM命名规范及常用CSS class 命名
    vue2.x 响应式原理
    npm 相关命令
    Node之 fs
    Node 之 Buffer
    Node之path
    Node之process
    Node.js 如何处理 ES6 模块
  • 原文地址:https://www.cnblogs.com/zhonghuizaijian/p/13374895.html
Copyright © 2011-2022 走看看