码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #422 B

时间:2017-07-13 22:54:39      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:答案   air   http   cout   pair   枚举   cross   bit   int   

Crossword solving

题意:给2个字符串s1,s2,求至少改变s2的多少个字符,才能使s2中包含s1,并输出改变的位置

思路:暴力枚举以每一个位置为开始,和s2匹配,求答案

AC代码:

#include<bits/stdc++.h>
#include "iostream"
#include "string.h"
#include "stack"
#include "queue"
#include "string"
#include "vector"
#include "set"
#include "map"
#include "algorithm"
#include "stdio.h"
#include "math.h"
#define ll long long
#define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
#define mem(a) memset(a,0,sizeof(a))
#define mp(x,y) make_pair(x,y)
#define pb push_back
const long long INF = 1e18+1LL;
const int inf = 1e9+1e8;
using namespace std;
const int N=1e5+100;

char a[1005],b[1005];
int anss[1005];
int ans=100005,la,lb;
int main(){
    cin>>la>>lb;
    cin>>a+1>>b+1;
    for(int i=0; i<=lb-la; ++i){
        int k=0;
        for(int j=1; j<=la; ++j){
            if(a[j]!=b[j+i]) k++;
        }
        if(k<ans){
            int l=0;
            for(int j=1; j<=la; ++j){
                if(a[j]!=b[j+i]){
                    anss[++l]=j;
                }
            }
            ans=k;
        }
    }
    cout<<ans<<endl;
    for(int i=1; i<=ans; ++i){
        cout<<anss[i]<< ;
    }
    return 0;
}

 

Codeforces Round #422 B

标签:答案   air   http   cout   pair   枚举   cross   bit   int   

原文地址:http://www.cnblogs.com/max88888888/p/7163314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!