博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3617 贪心
阅读量:2240 次
发布时间:2019-05-09

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

题意:给定长度为N的字符串S,要构造一个长度为N的字符串T。起初,T是一个空串,随后反复进行下列任意操作: 
从S的头部删除一个字符,加到T的尾部
从S的尾部删除一个字符,加到T的尾部
目标是使T字典序最小,输出时每行最多80个字符。

算法:贪心。每次选择S头部或尾部最小的字符,如果两者相同,继续比较下一个字符,直到找到较小的字符。

#include 
using namespace std;int N;char c[2010];void solve(){ int l = 0; int r = N - 1; bool left, right; left = true; int cnt = 0; while (l <= r) { int i; for (i=0; i+l
c[r-i]) { left = false; break; } else if (c[i+l] < c[r-i]) { left = true; break; } } left? cout << c[l++] : cout << c[r--]; cnt++; if (cnt % 80 == 0) { cout << endl; } } if (cnt % 80 != 0) { cout << endl; }}int main(){ cin >> N; for (int i=0; i
> c[i]; } solve();}

转载地址:http://arlbb.baihongyu.com/

你可能感兴趣的文章
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>