zoukankan      html  css  js  c++  java
  • codeforce Error Correct System

    题目大意:

    给出两串n(1 ≤ n ≤ 200 000)个字母的字符串, 求出最多交换一对数, 使得不相同对数变少,求出不相同的对数以及交换的数的位置,若不需交换则输出-1,-1.

    分析:

    用矩阵记录两个串相同位置不同的字母,有三种情况,一种是交换后正好两个位置都对应相同,一种是交换后只有一个位置相同,还有就是交换也不能满足对应相同。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<iostream>
     5 #include<queue>
     6 #include<stack>
     7 #include<string>
     8 #include<algorithm>
     9 #define maxn  200010
    10 #define INF  ~0u>>1
    11 using namespace std;
    12 int main()
    13 {
    14     int n,vist[30][30];
    15     char a[maxn],b[maxn];
    16     scanf("%d",&n);
    17     scanf("%s",a);
    18     scanf("%s",b);
    19     memset(vist,0,sizeof(vist));
    20     int sum=0;
    21     for(int i=0; i<n; i++)
    22     {
    23         if(a[i]!=b[i])
    24         {
    25             sum++;
    26             vist[a[i]-'a'][b[i]-'a']=i+1;
    27         }
    28     }
    29     for(int i=0;i<26;i++)
    30     {
    31         for(int j=0;j<26;j++)
    32         {
    33             if(vist[i][j]&&vist[j][i])
    34             {
    35                 printf("%d
    ",sum-2);
    36                 printf("%d %d
    ",vist[i][j],vist[j][i]);
    37                 return 0;
    38             }
    39         }
    40     }
    41     for(int i=0;i<26;i++)
    42     {
    43         for(int j=0;j<26;j++)
    44         {
    45             if(vist[i][j])
    46             {
    47                 for(int k=0;k<26;k++)
    48                 {
    49                     if(vist[j][k])
    50                     {
    51                         printf("%d
    ",sum-1);
    52                         printf("%d %d",vist[i][j],vist[j][k]);
    53                         return 0;
    54                     }
    55                 }
    56             }
    57         }
    58     }
    59     printf("%d
    ",sum);
    60     printf("-1 -1
    ");
    61     return 0;
    62 }
  • 相关阅读:
    JS表格分页组件:fupage的设计思路和详细使用方法(未来考虑开源,争取在2015年)
    《The Swift Programming Language》的笔记-第28页
    JavaScript基础总纲
    HTML基础总纲
    个人KPI制定
    软件测试中常用语
    测试计划
    软件性能测试的几种方法(三)
    影响软件性能的因素(二)
    性能测试的重要意义(一)
  • 原文地址:https://www.cnblogs.com/tsw123/p/4370305.html
Copyright © 2011-2022 走看看