POJ 3617 Best Cow Line

来源:互联网 发布:淘宝云客服在哪里找 编辑:程序博客网 时间:2024/06/06 20:11

题意是从已知的字符串构造出字典序尽可能小的字符串,每次从首尾中选择一个字符添加到空字符串中

#include <iostream>using namespace std;int n;char s[2016];int main(){    bool left = false;    int i,sun,moon,num = 0;    cin >> n;    for(i = 0; i<n ;i++)    {        cin >> s[i];    }    sun = 0,moon = n-1;    while(sun<=moon)    {        for(i=0;i+sun<=moon;i++)        {           if(s[sun+i]<s[moon-i])           {               left = true;               num++;               break;           }           else if(s[sun+i]>s[moon-i])           {               left = false;               num++;               break;           }        }        if(left)            cout << s[sun++];        else            cout << s[moon--];        if(num%80 == 0)            cout << endl;    }    cout << endl;    return 0;}



这道题目主要应用的就是贪心的做法,唯一需要注意的就是当首尾两个字符相同的时候要注意选择,根据正序字符串和逆序字符串的字典序的大小选择。

0 0
原创粉丝点击