zoukankan      html  css  js  c++  java
  • 【例题5-8 UVA

    【链接】 我是链接,点我呀:)
    【题意】

    在这里输入题意

    【题解】

    设n个字符串中出现的最长的为len; 最后一列能容纳len个字符,然后前面的列能容纳len+2个字符。 每行最多60个字符。 按照这样的排版,按照字典序,按列输出每个字符串。

    【代码】

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 100;
    const int M = 60;
    
    int n,len;
    string s[N + 10 ];
    
    void fil(int num, int used ,char key)
    {
    	for (int i = 0; i < num-used; i++)
    		putchar(key);
    }
    
    int main()
    {
    	//freopen("F:\rush.txt", "r", stdin);
    	//ios::sync_with_stdio(0), cin.tie(0);
    	while (cin >> n)
    	{
    		len = 0;
    		for (int i = 0; i < n; i++)
    		{
    			cin >> s[i];
    			len = max(len, (int)s[i].size());
    		}
    		int col = (M - len) / (len + 2) + 1;
    		int row = (n - 1) / col + 1;
    		sort(s, s + n);
    		fil(M,0, '-'); puts("");
    		for (int i = 0, num; i < row; i++)
    		{
    			for (int j = 0; j < col; j++)
    			{
    				int x = j*row + i;
    				if (x > n - 1) break;
    				cout << s[x];
    				fil(j == col - 1 ? len : len + 2, (int)s[x].size(), ' ');
    			}
    			puts("");
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    上下文管理器
    创建项目与介绍(2)
    虚拟环境的安装(1)
    爬虫-selenium(14-2)扩展
    爬虫10-1(协程)
    Python3笔记038
    Python3笔记037
    Python3笔记036
    Python3笔记035
    Python3笔记034
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7661880.html
Copyright © 2011-2022 走看看