7_4_E题 Edit distance题解 [hdu 2895] (贪心)

来源:互联网 发布:知乎 代码 编辑:程序博客网 时间:2024/05/17 01:06

题目链接

简单题意

有两个字符串a,b。要把a变到b,有四种操作 a,d,m,c,要求输出按照这个顺序。求使用a和d最少的操作方式;

思路

因为输出要按admc的顺序,所以能用c的地方肯定可以用m,故只要先a或d把字符串变到一致,然后无脑m就行了。

代码

#include <cstdio>#include <string>#include <cmath>#include <iostream>using namespace std;typedef long long ll;const long long maxn = 1e5+10;string s1,s2;int main(){    while(cin >> s1 >> s2){        int dis =  s2.length() - s1.length();        if(dis > 0){            for(int i = 0; i < abs(dis); i ++)                printf("a %c\n",s2[i]);        }        if(dis < 0){            for(int i = 0; i < abs(dis); i ++)                printf("d %c\n",s1[i]);        }        for(int i = max(0,dis) ; i < s2.length();i++)                printf("m %c\n",s2[i]);    }    return 0;}
0 0
原创粉丝点击