UVa 400 Unix Is
题意:给出n个字符串,按照字典序排列,再按照规则输出。
===学习的紫书,题目意思很清楚,求列数和行数最开始看的时候木有看懂啊啊啊
列数:即为(60-M)/(M+2)+1;即为先将最后那一列减去,算普通的有多少列,算完了再加上最后一列
行数:可以用紫书里面的(n-1)/cols+1,也可用ceil函数
再将坐标对应成第几个字符串算出来,是像这个图的箭头标示的从上到下-
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<math.h> 6 using namespace std; 7 8 const int maxcol=60; 9 const int maxn=100+5; 10 string filenames[maxn]; 11 12 void print(const string &s,int len,char extra) 13 { 14 cout<<s; 15 for(int i=0;i<len-s.length();i++) 16 cout<<extra; 17 } 18 19 int main() 20 { 21 int n; 22 while(cin>>n) 23 { 24 int M=-5; 25 for(int i=0;i<n;i++) 26 { 27 cin>>filenames[i]; 28 M=max(M,(int)filenames[i].length()); 29 } 30 int cols,rows; 31 cols=(maxcol-M)/(M+2)+1; 32 rows=ceil((1.0)*n/cols); 33 34 sort(filenames,filenames+n); 35 print("",60,'-'); 36 printf("\n"); 37 38 for(int i=0;i<rows;i++)//行数 39 { 40 for(int j=0;j<cols;j++)//列数 41 { 42 int idx=j*rows+i; 43 if(idx<n) 44 print(filenames[idx],j==cols-1 ? M : M+2,' '); 45 } 46 printf("\n"); 47 } 48 } 49 }
View Code
转载于:https://www.cnblogs.com/wuyuewoniu/p/4297604.html
UVa 400 Unix Is相关推荐
- UVA - 400 Unix ls
/*收获:1. 我觉得最大的收获是,了解了该怎么进行竖向的数据输出并且,以及<入门经典>的做法,并没有先转换为二维数组再输出,而是用了些别的技巧(好像也能算是技巧,具体的看代码吧,这个我也 ...
- 解题报告——例题5-8 Unix is 命令(UVa 400)——26行代码解决
题目大意: 读入n个字符串,按字典序排序,再按列优先输出,附加条件每行最多输出60个字符,在此条件下要求行最少.(最开始没仔细看题,以为在一行中,每个单词相隔最长单词的长度+2,最后一列单词空间长度为 ...
- UVA - 400:Unix ls
题目的难点在于要求前面的每一列的是最大长度L+2,最后一列的长度是L.对于宽度为WIDTH=60的一行来说,一行可以放下多少个单词决定了需要多少行,知道了行数才能开始根据行数开始放置. 我的做法是co ...
- UVa 400 (水题) Unix ls
题意: 有n个文件名,排序后按列优先左对齐输出.设最长的文件名的长度为M,则最后一列长度为M,其他列长度为M+2. 分析: 这道题很简单,但要把代码写的精炼,还是要好好考虑一下的.lrj的代码中有两个 ...
- UVa 400 模拟vector
背景:多久没有一次ac过了,要提升一次ac的几率啊!这对比赛是很重要的. 思路:这个题主要是更加熟悉了下vector,然后就是一些格式的问题,构造即可.主要感受还是一定要把思路想好再写题! #incl ...
- π-Algorithmist分类题目(1)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(1) Sorting UVAL ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 初学者acm的练习题指南
上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1. <!--[endif]-->Programming Bas ...
- 算法竞赛入门经典(第2版)—第五章(C++与STL入门)
文章目录 零碎知识点整理 题目 10474 - Where is the Marble? 101 - The Blocks Problem 10815 - Andy's First Dictionar ...
- 提取了下刘汝佳推荐的题号...
今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started 10055 - Hashmat the Brave Warrior ...
最新文章
- Nodejs 环境配置终极解决方案
- ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串
- Tomcat NIO
- 万物智联时代的终端智能「管家」 重磅升级:混合云IoT一体机
- 什么年代了,买硬盘不论T?
- Omnipeek 抓包工具
- Ignite问题汇总
- 安卓7.0 安兔兔 作假修改
- 对于网络文学而言 计算机叙事,【网络文学论文】传统文学中网络文学特征研究(共4573字)...
- 2023款ThinkBook 14和15锐龙版区别对比评测选哪个好
- 太原科技大学计算机宿舍,太原科技大学宿舍条件怎么样,有独立卫生间和空调吗...
- 企业微信给用户带来的是社交减负还会是社交焦虑?
- github上有什么好的node.js的项目?
- 100条必背JAVA知识点,你都掌握了吗?(上)
- 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...
- java下载网络文件的N种方式
- 武汉地铁各线路以及各线路预期完工时间
- ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-3-06:不同格式固件的区别:bin/hex/s37/gbl
- Lenovo g50 如何进入到bios设置?
- 开服侠服务器文件,我的世界开服侠