当前位置: 首页 > news >正文

UVa 553 Simply Proportion

题目描述

题目要求将一行文本(由单词组成,单词间用一个空格分隔)重新格式化为指定长度(以点dot\texttt{dot}dot为单位)。每个字符有固定宽度(单位:点),空格(即单词间的分隔)宽度可变,用于填充以对齐左右边界。需要输出格式化后的行,其中单词内的字母间隔用固定点数(由规则计算),单词间的间隔用填充点数。输出格式中,字母间的间隔用/(n)表示,单词间的间隔用/后跟点数表示。要求行首行尾不能有空白点。

输入格式

输入包含多组测试用例,每组两行:

  • 第一行:目标长度NNNN≤5000N \le 5000N5000)。
  • 第二行:原始文本(单词间用单个空格分隔,无首尾空格,至少两个单词,总字符数≤80\le 8080)。
    最后以一行0 SYMIBAA结束(不处理)。

输出格式

对于每组输入,输出一行格式化后的文本,格式如A/(4)I/(4)M/(18)S/...

样例

输入

250 AIM SSY ABABA 200 SSSS AAAA 130 AA B AA 0 SYMIBAA

输出

A/(4)I/(4)M/(18)S/(4)S/(4)Y/(19)A/(4)B/(4)A/(4)B/(4)A/ S/(7)S/(7)S/(7)S/(22)A/(7)A/(7)A/(7)A A/(5)A/(15)B/(16)A/(5)A

题目分析

本题的核心是计算字符宽度,确定字母间隔和单词间隔的填充点数。

字符宽度表

字符宽度
A18
B17
I10
M20
S16
Y13
空格可变

字母间隔规则

  • 单词内相邻字母的最小间隔为333点。
  • 字母间隔点数 =⌊单词间隔点数/3⌋\lfloor \text{单词间隔点数} / 3 \rfloor单词间隔点数/3,但不得小于333?实际规则:字母间隔由单词间隔决定,且至少为333。具体计算时,先确定单词间隔的基准值,再按比例分配。

单词间隔规则

  • 单词间的最小间隔为101010点,无上限。
  • 总点数NNN减去所有字符宽度之和后,剩余点数用于单词间的间隔填充。这些间隔点数应尽量平均分配,多余的从行末开始逐个加111

算法步骤

  1. 计算所有字符的宽度总和(不包括空格),记为charSum\textit{charSum}charSum
  2. 设单词数为www,则单词间有w−1w-1w1个间隔。
  3. 设字母间隔的总点数为L=(w−1)×letterGapL = (w-1) \times \text{letterGap}L=(w1)×letterGap,其中letterGap\text{letterGap}letterGap为每个字母间隔的点数。
  4. 设单词间隔的总点数为S=(w−1)×wordGapS = (w-1) \times \text{wordGap}S=(w1)×wordGap
  5. 总点数N=charSum+L+SN = \textit{charSum} + L + SN=charSum+L+S
  6. 已知letterGap=⌊wordGap/3⌋\text{letterGap} = \lfloor \text{wordGap} / 3 \rfloorletterGap=wordGap/3,且letterGap≥3\text{letterGap} \ge 3letterGap3wordGap≥10\text{wordGap} \ge 10wordGap10
  7. 枚举wordGap\text{wordGap}wordGap101010开始递增,计算letterGap\text{letterGap}letterGap,检查是否满足等式。由于NNN不大,直接枚举可行。

输出格式

  • 字母间:A/(4)表示在 A 和下一个字母之间有444个点。
  • 单词间:S/后跟点数,但注意单词间的点数已经包含在字母间隔计算中?实际上,输出中单词间的分隔符是/(n)吗?从样例看,单词间直接用/后跟数字表示,没有字母。但A/(4)I/(4)M/(18)S/...中的S/实际上是单词 S 后的间隔?需要仔细分析。

复杂度分析

枚举wordGap\text{wordGap}wordGap至多N/10N/10N/10次,可接受。

代码实现

// Filling the Gaps// UVa ID: 552// Verdict: Accepted// Submission Date: 2017-05-11// UVa Run Time: 0.000s//// 版权所有(C)2017,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intvisited[65536];voidbacktrack(inti,intv,string&pattern){if(i>=pattern.length())visited[v]=1;else{v*=2;if(pattern[i]=='*'){backtrack(i+1,v,pattern);backtrack(i+1,v+1,pattern);}else{v+=pattern[i]-'0';backtrack(i+1,v,pattern);}}}intmain(intargc,char*argv[]){cin.tie(0),cout.tie(0),ios::sync_with_stdio(false);intlength,n;while(cin>>length>>n){if(length==0&&n==0){cout<<"YES 0\n";break;}vector<string>words;vector<int>ids;string word;for(inti=1;i<=n;i++){cin>>word;intid=0;for(intj=0;j<word.size();j++){id*=2;if(word[j]=='*')id+=1;}words.push_back(word);ids.push_back(id);}sort(ids.begin(),ids.end());boolduplicated=false;for(inti=0;i<ids.size()-1;i++)if(ids[i]==ids[i+1]){duplicated=true;break;}if(duplicated){cout<<"NO\n";continue;}memset(visited,0,sizeof(visited));for(inti=0;i<words.size();i++)backtrack(0,0,words[i]);inttotal=pow(2,length),appeared=0;for(inti=0;i<total;i++)appeared+=visited[i];cout<<"YES "<<appeared<<'\n';}return0;}
http://www.jsqmd.com/news/1057932/

相关文章:

  • 为电子墨水屏设备量身定制的Android启动器:E-Ink Launcher完全指南
  • DeepSeek-v4-pro实战指南:浏览器插件与API中转站搭建
  • NXP高精度RTC芯片PCF2127/9选型与应用全解析
  • MPC5777M LSP-APU协处理器加速FIR滤波器:从原理到汇编优化实践
  • 终极指南:如何免费突破网盘下载限制,获取真实直链地址
  • 通用趋势策略增加过滤条件,剔除成交额过低流动性不足个股。
  • 精工精密统率 ERP、统率 WMS、统率 MES - 品牌发掘
  • 从零手写JMeter压力测试脚本:架构师实战指南与避坑
  • 爆火的 ChatGPT 5.6 即将发布?在狂热的数字图腾背后,藏着 AGI 时代的“信任隐喻”
  • 2026年重庆混凝土预制构件厂家推荐:水篦子/路沿石/井盖/排水管/防撞墩等优质品牌全解析 - 品牌发掘
  • 终极指南:PCL2启动器 - 你的免费Minecraft游戏管理解决方案
  • G-Helper完整指南:免费开源华硕笔记本控制工具终极教程
  • 2026昆明白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • MC68HC908KH12 USB固件库开发:键盘与集线器复合设备实战
  • JMeter性能测试实战:从脚本执行到瓶颈定位的完整指南
  • 盛达机械配件统率软件-全域集团管理+集团财报合并+全链路费用管控 - 品牌发掘
  • 5分钟快速掌握midiStroke:将MIDI控制器变身为强大的键盘宏工具
  • 终极指南:3步搞定B站大会员4K视频下载,永久保存你的珍贵内容
  • KeymouseGo:跨平台自动化脚本引擎的技术深度解析与实践指南
  • 飞思卡尔8位MCU选型指南:S08、RS08、HC08核心解析与实战应用
  • 统率 ERP 成本核算模块,赋能卓越精密精准把控经营利润 - 品牌发掘
  • LPC1300 USB ISP固件更新:从原理到自动化实践
  • 2026年7月珠海市AI搜索排名优化公司TOP5权威排名 - 广东科技观察
  • 2026Java培训机构选择指南:模式对比、避坑要点与5家主流机构评分参考 - 互联网科技品牌测评
  • 广东十大正规叛逆学校-解放家长-改变孩子 - 武汉中职最新信息发布
  • Linux家目录配置Git化管理:从stow部署到原子化运维
  • JWST观测揭示原恒星EC 53的星际冰化学演化
  • 2026武汉白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 结构振动测试的鲁棒性设计:当传感器失效时如何保证数据可靠性
  • MPC56x Nexus调试接口硬件设计全解析:连接器选型、引脚配置与信号完整性