博客
关于我
牛客寒假4 e最小表达式
阅读量:608 次
发布时间:2019-03-13

本文共 1025 字,大约阅读时间需要 3 分钟。

拆分队列问题为贪心算法,通过高效确定字符权重位置,解决问题。

在此问题中,我们利用贪心算法,使数值大的字符尽可能落在权重较小的位置。步骤如下:

  • 读取输入并将非加号字符排序。
  • 按照加号分割点依次处理每个权重区域。
  • 从最高权重位置开始,依次向右移动处理每个区间。
  • #include 
    using namespace std;char s[500005];int ans[500004];int main() { char c; int sum = 0, cnt = 0, syw = 0, p = 0, w = 0; while ((c = getchar()) != '\n') { if (c == '+') { w++; } else { s[cnt++] = c; } } s[cnt] = '\0'; sort(s, s + cnt); int pos = 0; for (int i = cnt - 1; i >= 0; i -= (w + 1)) { sum = 0; for (int j = i; j >= pos; j--) { sum += s[j] - '0'; } sum += syw; if (pos == 0 && w == 0) ans[p++] = sum % 10; else { ans[p++] = sum % 10; syw = sum / 10; } pos += (w + 1); } if (syw > 0) { ans[p++] = syw; } for (int i = p - 1; i >= 0; i--) { printf("%d", ans[i]); } return 0;}

    代码解释:

    • 读取输入并记录+号数量w。
    • 将字符排序,较大值先存入。
    • 遍历ário按权重区间处理,每步移动w+1位置。
    • 计算区间和,并更新高位部分syw,逐步生成结果。
    • 逆序输出结果,确保权重最大位置数据优先处理。

    转载地址:http://jdpaz.baihongyu.com/

    你可能感兴趣的文章
    初次安装webpack之后,提示安装webpack-cli
    查看>>
    Java后端服务明显变慢诊断思路
    查看>>
    idea选中文件时左侧菜单自动定位到文件所在位置
    查看>>
    java中带参数的try(){}语法——关闭资源
    查看>>
    JSuite 最新版下载试用2021版本
    查看>>
    使用FileZilla,FTP登录出现错误:FileZilla状态: 不安全的服务器,不支持 FTP over TLS
    查看>>
    Python模块学习--uuid
    查看>>
    kafka+storm+hbase整合试验(Wordcount)
    查看>>
    VMware克隆虚拟机后重启network失败
    查看>>
    Hbase压力测试
    查看>>
    Python GIL全局解释器锁
    查看>>
    在IDEA中用jdbc技术通过配置文件连接mysql数据库连接池
    查看>>
    StreamReader & StreamWriter
    查看>>
    C#中的类、方法和属性
    查看>>
    Python入门基础知识点讲解:输入和输出
    查看>>
    Python爬取清朝末年医书:《醉花窗医案》,看看病症情况
    查看>>
    Python爬虫训练:爬取酷燃网视频数据
    查看>>
    Python新一代数据可视化神器:Plotly动画展示
    查看>>
    Python数据分析入门(十九):绘制散点图
    查看>>
    springboot所有配置文件全部失效,不显示Idea Error: Module not specified;
    查看>>