poj3617
发布日期:2021-05-07 01:32:40 浏览次数:4 分类:技术文章

本文共 684 字,大约阅读时间需要 2 分钟。

一道简单的贪心题,每次都从两端开始找,找到一个小的就放到T的末尾,然后再重新寻找。

需要注意的是相等的情况,比如这三种情况 AABAA, AABCAA, AACBAA。因为两边相等,所以需要继续向下判断,直到找到一个不相等的,但是如果用递归的话太慢了,本题就是通过一个循环来进行寻找,这也是循环中为什么没有等于的条件的原因。

#include 
#include
#include
using namespace std;int main(){ int n = 0, cnt = 0; vector
initial; char d = '\0'; scanf("%d", &n); int a = 0, b = n - 1; for (int i=0; i
initial[b-i]) { flag = true; break; } else if (initial[a+i] < initial[b-i]) { flag = false; break; } } if (flag == true) { printf("%c", initial[b--]); cnt++; } else { cnt++; printf("%c", initial[a++]); } if (cnt%80 == 0) { printf("\n"); } } return 0;}
上一篇:poj3069
下一篇:poj3260The Fewest Coins

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月26日 12时33分50秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章