《算法竞赛入门经典2ndEdition 》例题5-8 Unix is 命令(Unix is, Uva400)
来源:互联网 发布:国际市场占有率数据 编辑:程序博客网 时间:2024/06/07 02:24
这题也就只能算是个STL小练习吧,没有任何思维上难度,
还是比较简单的,(虽然我的程序还是没有刘汝佳的简洁。。。,表示依旧没有这样把一些步骤定义成函数的习惯)直接放代码吧。
#include <cstdio>#include <cstring>#include <vector>#include <algorithm>#include <iostream>#include <cmath>using namespace std;vector<string> s; int main(){ freopen("New Text Document.txt","r",stdin); freopen("Output.txt","w",stdout); ios::sync_with_stdio(false); int n; string str; while(cin>>n) { cout<<"------------------------------------------------------------"<<endl; cin.get(); int max = 0; s.clear(); for(int i = 0; i < n; i++) { getline(cin, str); s.push_back(str); //cout<<str<<endl; if(str.length() > max) max = str.length(); } int row = (60+2) / (max+2); sort(s.begin(), s.end()); int line = s.size() / row; if(line*row != s.size()) line++; for(int i = 1; i <= line; i++) { for(int j = 1 ; j <= row; j++) { int pos = (j-1)*line+i; if(pos-1<s.size()) { cout<<s[pos-1]; for(int i = s[pos-1].length(); i < max; i++) cout<<" "; } if(j!=row) cout<<" "; } cout<<endl; } } return 0;}
下面是刘汝佳标程。
// UVa400 Unix ls// Rujia Liu#include<iostream>#include<string>#include<algorithm>using namespace std;const int maxcol = 60;const int maxn = 100 + 5;string filenames[maxn];// 输出字符串s,长度不足len时补字符extravoid print(const string& s, int len, char extra) { cout << s; for(int i = 0; i < len-s.length(); i++) cout << extra;}int main() { int n; while(cin >> n) { int M = 0; for(int i = 0; i < n; i++) { cin >> filenames[i]; M = max(M, (int)filenames[i].length()); } // 计算列数cols和行数rows int cols = (maxcol - M) / (M + 2) + 1, rows = (n - 1) / cols + 1; print("", 60, '-'); cout << "\n"; sort(filenames, filenames+n); for(int r = 0; r < rows; r++) { for(int c = 0; c < cols; c++) { int idx = c * rows + r; if(idx < n) print(filenames[idx], c == cols-1 ? M : M+2, ' '); } cout << "\n"; } } return 0;}
1 0
- 《算法竞赛入门经典2ndEdition 》例题5-8 Unix is 命令(Unix is, Uva400)
- 《算法竞赛入门经典2ndEdition 》例题5-1 大理石在哪儿(Where is the marble?, Uva10474)
- 例题5-8 Unix ls 命令 UVa400
- UVA400 Unix Is
- UVa400 Unix Is
- Uva400 Unix is
- 《算法竞赛入门经典2ndEdition 》例题5-5 集合栈计算机(The SetStack Computer, Uva12096)
- 《算法竞赛入门经典2ndEdition 》例题5-2 木块问题(The Blocks Problem, Uva101)
- 《算法竞赛入门经典2ndEdition 》例题3-5 生成元(Digit Generator, Uva1583)
- 《算法竞赛入门经典2ndEdition 》例题5-4 反片语(Ananagrams, Uva156)
- 《算法竞赛入门经典2ndEdition 》例题5-6 团体队列(Team Queue, Uva540)
- 《算法竞赛入门经典2ndEdition 》例题5-7 丑数(Ugly Numbers, Uva136)
- 《算法竞赛入门经典2ndEdition 》例题5-9 数据库(Database, Uva1592)
- 例题5-8 UVA 400 Unix Is命令
- 《算法竞赛入门经典2ndEdition 》例题5-3 安迪的第一个字典(Andy's First Dictionary, Uva10815)
- 《算法竞赛入门经典2ndEdition 》例题3-2 WERTYU(WERTYU, Uva10082)
- 《算法竞赛入门经典2ndEdition 》例题3-1 TeX中的引号(Tex Quotes, Uva 272)
- 《算法竞赛入门经典2ndEdition 》例题3-3 回文词(Palindromes, Uva401)
- javascript监听键盘事件的解释
- 视觉技术的圣杯:光线追踪如何再现真实世界?
- 文章标题
- Scientific Toolworks Understand for linux 的下载
- 5-10 计算工资
- 《算法竞赛入门经典2ndEdition 》例题5-8 Unix is 命令(Unix is, Uva400)
- 一个sort命令统计hot query
- 第二章IPC机制(Android开发艺术探索)
- viewpager+frament实现简单的tab
- Android学习之ListView与ArrayAdapter的简单使用
- 理解C语言——从小菜到大神的晋级之路(5)——程序流程控制
- Servlet详解
- linux0.11系列之(三): 启动引导 setup.s
- java中线程创建