window.cnblogsConfig = {//可以放多张照片,应该是在每一个博文上面的图片,如果是多张的话,那么就随机换的。 homeTopImg: [ "https://i.loli.net/2019/08/02/5d440029af8e994539.png" ], }

CF58D Calendar 题解

CF58D Calendar 题解

看题目点这里

具体思路:

我们知道输出的每一行由两个串加一个分隔符组成,所以我们不妨假设这一个分隔符原本就处于字符串内(方便排序),然后组成了新字符串之后在去掉末尾的字符。

做题步骤:

  1. 输入;

  2. 将分隔符加入每一个字符串内;

  3. 按字典序排序(tips:sort(str+1,str+n+1) 即可);

  4. 求答案;

  5. 输出。

核心代码:

for (int x = 1; x <= n; x++) s[x] += ch, m += s[x].size(); m /= n / 2; //m为一个输出串的长度(末尾有分隔符)
for (int x = 1; x <= n; x++) for (int y = x + 1; y <= n; y++) if (s[x].size() + s[y].size() == m) { s[y][s[y].size() - 1] = ' ';//去分隔符(由于文本比对忽略行末空格,所以可以将最后一位改为空格) ans[cnt++] = s[x] + s[y]; s[x] = "", s[y] = ""; break; }

温馨提示:

需要将变量定义为 string 类型。


__EOF__

本文作者mgcjade
本文链接https://www.cnblogs.com/mgcjade/p/17978474.html
关于博主:蒟蒻一枚,I AK IOI!(不可能的)
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   mgcjade  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示