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

美术教师网站建设心得体会竞价交易

美术教师网站建设心得体会,竞价交易,石家庄做外贸网站,phpcmsv9手机网站模板题目:(最大数字) 题目描述(13届 C&C B组D题) 题目分析: 操作规则: 1号操作:将数字加1(如果该数字为9,变为0)。 2号操作:将数字…

题目:(最大数字)

题目描述(13届 C&C++ B组D题)

993ce3d31e284e10a88d64acff769af5.png

题目分析: 

  • 操作规则

    • 1号操作:将数字加1(如果该数字为9,变为0)。

    • 2号操作:将数字减1(如果该数字为0,变为9)。

  • 目标

    • 通过操作,将数字尽可能变大。

  • 限制

    • 总操作次数受限于 A 次1号操作和 B 次2号操作。

  • 核心问题

    • 在有限操作次数内,如何分配操作次数,使结果数字最大化?

解题思路:

  1. 优先级策略

    • 优先将当前位变成9,因为9是所有个位数中最大的数;

    • 根据剩余操作次数,依次考虑其他位。

  2. 递归解决

    • 每次递归针对某一位:

      • 尝试使用1号操作尽量向9靠拢;

      • 尝试使用2号操作绕过0靠拢9;

      • 比较两种策略下的最终结果,选择字典序更大的路径。

  3. 终止条件

    • 遍历到数字的末尾;

    • 可用操作次数(A 或 B)为0。

  4. 动态更新数字

    • 通过字符串的直接修改,更新当前数字。

代码实现(C语言):

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>
#include<string.h>void foo(char N[], int n, int a, int b) {if (N[n] == '\0') {return;}int poDis, neDis;int na, nb;char Na[20], Nb[20];poDis = 9 - (N[n] - '0');neDis = 10 + (N[n] - '0') - 9;if (a >= poDis && b >= neDis) {N[n] = '9';strcpy(Na, &N[n + 1]);strcpy(Nb, &N[n + 1]);foo(Na, 0, a - poDis, b);foo(Nb, 0, a, b - neDis);if (strcmp(Na, Nb) >= 0) {strcpy(&N[n + 1], Na);}else {strcpy(&N[n + 1], Nb);}}else if (a >= poDis) {a -= poDis;N[n] = '9';foo(N, n + 1, a, b);}else if (b >= neDis) {b -= neDis;N[n] = '9';foo(N, n + 1, a, b);}else {na = N[n] - '0' + a;nb = (10 + N[n] - '0' - b) % 10;if (na > nb) {N[n] = na + '0';a = 0;foo(N, n + 1, a, b);}else if (na < nb) {N[n] = nb + '0';b = 0;foo(N, n + 1, a, b);}else {N[n] = na + '0';strcpy(Na, &N[n + 1]);strcpy(Nb, &N[n + 1]);foo(Na, 0, 0, b);foo(Nb, 0, a, 0);if (strcmp(Na, Nb) >= 0) {strcpy(&N[n + 1], Na);}else {strcpy(&N[n + 1], Nb);}}}
}int main() {char N[20];int a, b;// inscanf("%s%d%d", N, &a, &b);// mainfoo(N, 0, a, b);// outprintf("%s", N);return 0;
}

 

得到运行结果:

d9eb7eb118314c9bbfec6b8c72b561a0.png

代码分析: 

  • 递归函数设计

    • 参数包括当前处理的位数、剩余的1号和2号操作次数。

    • 每次递归后更新字符串,并返回最佳结果。

  • 字符串操作

    • 为了保持数字位数的变化状态,利用字符串操作更新数字。

  • 状态转移

    • 如果可以使用1号操作,则递归尝试将当前位增加到9;

    • 如果可以使用2号操作,则递归尝试将当前位绕过0变成9;

    • 两种结果之间选择更优解。

 

难度分析

⭐️⭐️⭐️⭐️

 

总结

本题通过递归枚举所有可能的操作路径,并选择字典序最大的结果数字。通过合理的操作分配和优先级选择,可以在操作次数受限的情况下达到优化效果。递归的设计逻辑清晰,代码实现具有较好的通用性和扩展性。

 

 

http://www.hkea.cn/news/637455/

相关文章:

  • 软装素材网站有哪些seo网络排名优化哪家好
  • 邯郸市做网站建设网络口碑营销案例分析
  • 罗湖网站建设联系电话西安核心关键词排名
  • 如何编写网站电脑清理软件十大排名
  • 怎么给企业制作网站seo关键词排名优化哪好
  • 高仿服装网站建设西安百度关键词推广
  • 网站单页面怎么做的百度seo站长工具
  • 网站建设谢辞企业营销型网站有哪些
  • 免费网站制作申请行业关键词一览表
  • 网站建设费关键词排名提高方法
  • 搭建淘宝客网站源码最近发生的新闻事件
  • 网站模版网网站关键词排名优化价格
  • 做网站去哪里全国免费发布广告信息平台
  • 靖江做网站湖南seo服务电话
  • 工程建设科学技术奖申报网站友情链接交换标准
  • 做网站后期为什么续费链交换
  • 网站开发与设计专业西安seo顾问培训
  • 企业网站建设话术优化营商环境指什么
  • 傻瓜式网站制作微信运营技巧
  • 甘肃网络推广软件seo方案
  • 建筑公司网站首页图片网站推广引流
  • 购物网站 后台模板今日头条站长平台
  • 营销导向企业网站策划站长工具无内鬼放心开车禁止收费
  • WordPress不能支付宝交易吗如何优化
  • 南昌seo网站设计站长工具是做什么的
  • 做IP授权的一般看什么网站一级消防工程师考试
  • 项目建设备案网站爱站网站长百度查询权重
  • 铜陵专业网站制作公司软文免费发布平台
  • 鹿泉市建设局网站短视频seo关键词
  • 手机网站开发标准网络营销服务工具