UVa 400 Unix Is
题意:给出n个字符串,按照字典序排列,再按照规则输出。
===学习的紫书,题目意思很清楚,求列数和行数最开始看的时候木有看懂啊啊啊
列数:即为(60-M)/(M+2)+1;即为先将最后那一列减去,算普通的有多少列,算完了再加上最后一列
行数:可以用紫书里面的(n-1)/cols+1,也可用ceil函数
再将坐标对应成第几个字符串算出来,是像这个图的箭头标示的从上到下-
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<math.h>
using namespace std; const int maxcol=;
const int maxn=+;
string filenames[maxn]; void print(const string &s,int len,char extra)
{
cout<<s;
for(int i=;i<len-s.length();i++)
cout<<extra;
} int main()
{
int n;
while(cin>>n)
{
int M=-;
for(int i=;i<n;i++)
{
cin>>filenames[i];
M=max(M,(int)filenames[i].length());
}
int cols,rows;
cols=(maxcol-M)/(M+)+;
rows=ceil((1.0)*n/cols); sort(filenames,filenames+n);
print("",,'-');
printf("\n"); for(int i=;i<rows;i++)//行数
{
for(int j=;j<cols;j++)//列数
{
int idx=j*rows+i;
if(idx<n)
print(filenames[idx],j==cols- ? M : M+,' ');
}
printf("\n");
}
}
}
UVa 400 Unix Is的更多相关文章
- UVA 400 - Unix ls (Unixls命令)
csdn : https://blog.csdn.net/su_cicada/article/details/86773007 例题5-8 Unixls命令(Unix ls,UVa400) 输入正整数 ...
- UVA 400 Unix ls by sixleaves
题目其实很简单,答题意思就是从管道读取一组文件名,并且按照字典序排列,但是输入的时候按列先输出,再输出行.而且每一行最多60个字符.而每个文件名所占的宽度为最大文件名的长度加2,除了输出在最右边的文件 ...
- Uva - 400 - Unix ls
先计算出最长文件的长度M,然后计算列数和行数,最后输出即可. AC代码: #include <iostream> #include <cstdio> #include < ...
- uva 400 Unix ls 文件输出排版 排序题
这题的需要注意的地方就是计算行数与列数,以及输出的控制. 题目要求每一列都要有能够容纳最长文件名的空间,两列之间要留两个空格,每一行不能超过60. 简单计算下即可. 输出时我用循环输出空格来解决对齐的 ...
- UVa 400 Unix Is命令
简单题 #include <bits/stdc++.h> using namespace std; const int maxn=110; string s[maxn]; int main ...
- UVa 400 (水题) Unix ls
题意: 有n个文件名,排序后按列优先左对齐输出.设最长的文件名的长度为M,则最后一列长度为M,其他列长度为M+2. 分析: 这道题很简单,但要把代码写的精炼,还是要好好考虑一下的.lrj的代码中有两个 ...
- 【紫书】 Unix ls UVA - 400 模拟
题意:中文版https://vjudge.net/problem/UVA-400#author=Zsc1615925460 题解:首先读取字符,维护一个最长字符串长度M,再排序. 对于输出,写一个pr ...
- 【例题5-8 UVA - 400】Unix ls
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 设n个字符串中出现的最长的为len; 最后一列能容纳len个字符,然后前面的列能容纳len+2个字符. 每行最多60个字符. 按照这 ...
- Unix ls UVA - 400
The computer company you work for is introducing a brand new computer line and is developing a new ...
随机推荐
- 将HTMLCollection/NodeList/伪数组转换成数组
这里把符合以下条件的对象称为伪数组(ArrayLike) 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments . ...
- HDU 1098 Ignatius's puzzle(数学归纳)
以下引用自http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=8466&messageid=2&deep=1 题意以 ...
- Android /data/data/app_file/目录下面安装apk无权限问题
当识别SDCard的时候 String filePath = null; String state = Environment.getExternalStorageState(); if (state ...
- C Primer Plus之结构和其他数据形式
声明和初始化结构指针 声明结构化指针,例如: struct guy * him; 初始化结构指针(如果barney是一个guy类型的结构),例如: him = &barney; 注意:和数组不 ...
- Qt之图形(Source和Dest相互覆盖的取舍,真的很方便)
源码 ... painter.drawImage(0, 0, destinationImage); painter.setCompositionMode(QPainter::Composition ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- http://my.oschina.net/u/2007041/blog/508520
http://my.oschina.net/u/2007041/blog/508520
- 设计数据结构O1 insert delete和getRandom
设计一个数据结构满足O(1)的insert, delete和getRandom.这个是从地里Amazon的面经中看到的. 我们可以使用一个resizable数组arr以及一个HashMap来完成. i ...
- PowerDesigner将PDM导出生成WORD文档
PowerDesigner将PDM导出生成WORD文档 环境 PowerDesigner15 1.点击Report Temlates 制作模板 2.如果没有模板,单击New图标创建.有直接双击进入. ...
- Spring AOP 创建切面
增强被织入到目标类的所有方法中,但是如果需要有选择性的织入到目标类某些特定的方法中时,就需要使用切点进行目标连接点的定位.增强提供了连接点方位信息:如织入到方法前面.后面等,而切点进一步描述织 ...