poj 3617贪心
2016-05-21 18:38
204 查看
点击打开链接
<pre name="code" class="cpp">#include <iostream> #define M 2100 using namespace std; int main() { char str[M][1],s[M]; int n,i,f,l,k,a,b; cin>>n; for(i=1;i<=n;i++) { cin>>str[i]; } k=0; f=1;l=n; while(k<n) { a=f; b=l; while(str[a][0]==str[b][0]&&a<=b) //若相等 为了保证 前面的部分要较小 应该尽早的使用较小的字符 { a++; b--; } ++k; if(str[a][0]<str[b][0]) //选的加在s的尾部时->选的数从前往后排 //要求字典序最小 -> 前面的部分要较小 -> 贪心:把大的留在后面选 每次都选当前最小的 { s[k]=str[f][0]; f++; } else { s[k]=str[l][0]; l--; } } for(i=1;i<=n;i++) { cout<<s[i]; if(i%80==0&&i!=n) //格式 满80个字符换行 cout<<endl; } return 0; }
相关文章推荐
- [Mechine Learning] Active Learning
- iOS开发常见的奇葩技巧,
- JSP03
- 集合的引入
- 死磕Tomcat7源码之一:解析web.xml
- 一个用来判断是长按手势的辅助类
- 【android】ImageView的src和background的区别以及两者的妙用
- 【oschina android源码分析】总结
- Java中的动态代理--JDK动态代理
- 【oschina android源码分析】聊天页面(私信)的设计
- 逆波兰表达式
- Bootstrap源码分析之nav、collapse
- 逆波兰表达式
- 链表的问题,ListNode问题
- USB调试不能弹出授权窗口 unauthorized 的解决办法
- 【oschina android源码分析】便笺系统的设计
- windows 下安装RabbitMQ
- LAN中访问其它主机的jupyter/ipython
- 【转】MFC 禁止多实例
- 【oschina android源码分析】下载更新新版本的设计