删数问题(NOI94)

简介: 删数问题(NOI94)输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。输出新的正整数。(N不超过240位)输入数据均不需判错。

删数问题(NOI94)

输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序
组成一个新的正整数。
编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(N不超过240位)输入数据均不需判错。
【输入】
n
s
【输出】
最后剩下的最小数。
【样例输入】
175438
4
【样例输出】
13

分析:

由于正整数n的有效数位为240位,所以很自然地采用字符串类型存贮n。

那么如何决定哪s位被删除呢?是不是最大的s个数字呢?显然不是,大家很容易举出一些反例。

为了尽可能逼近目标,我们选取的贪心策略为:每一步总是选择一个使剩下的数最小的数字删去,

即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,

这样删一位便形成了一个新数字串。然后回到串首,按上述规则再删下一个数字。重复以上过程s次为止,

剩下的数字串便是问题的解了。

 

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     freopen("delete.in","r",stdin);
 6     freopen("delete.out","w",stdout);
 7     char N[250];
 8     int s;
 9     int i,j,len,k,f;
10     scanf("%s",N);
11     scanf("%d",&s);
12     //printf("%s\n%d\n",N,s);
13     len=strlen(N);
14     for(i=0;i<s;i++)  //共需要删除s次 
15     {
16         for(j=0;j<len-1;j++) //从串首开始搜索 
17         {
18             if(N[j]>N[j+1])  //假如发现非下降区间 
19             {
20                 for(k=j;k<len-1;k++) //把N[j+1]~N[len-1]个往前移动一个位置 
21                     N[k]=N[k+1];
22                 break;
23             }
24         }
25         len--;  //长度减1 
26     }
27     
28     f=0;
29     for(i=0;i<len;i++)  //消除串首无意义的字符0 
30     {
31         if(N[i]!='0')    f=1;
32         if(f==1) printf("%c",N[i]);
33     }
34     printf("\n");
35     return 0;
36 }

 

相关文章
|
机器学习/深度学习 网络安全 算法框架/工具
在本地利用服务器显卡跑代码
在本地利用服务器显卡跑代码
1359 0
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
清华EconAgent获ACL 2024杰出论文:大模型智能体革新计算经济学研究范式
近年来,人工智能的迅猛发展推动了数据驱动建模在宏观经济学领域的应用。清华大学研究团队提出的EconAgent模型,基于大型语言模型,具备类似人类的决策能力,能更准确地模拟个体行为对宏观经济系统的影响。EconAgent在个体异质性、市场动态及宏观经济因素模拟方面表现出色,并具有更好的可解释性和灵活性。然而,其高计算复杂度和部分决策过程的不透明性仍需进一步解决。该成果已在ACL 2024会议上获得杰出论文奖。论文链接:https://arxiv.org/abs/2310.10436v4
358 3
|
7月前
|
存储 监控 虚拟化
Hyper V上网优化:提升虚拟机网络速度
要优化Hyper-V虚拟机的网络速度,可从以下几方面入手:1. 优化虚拟交换机配置,如选择合适的交换机类型、启用SR-IOV、配置VLAN和QoS策略;2. 调整网络适配器设置,选择适当的适配器类型并启用VRQ等;3. 优化宿主机网络配置,更新网卡固件和驱动,启用硬件加速;4. 使用性能监视工具监控网络流量;5. 其他措施如启用硬件虚拟化、使用外部存储、配置NLB等。通过合理配置,可显著提升网络性能。
|
机器学习/深度学习 算法 PyTorch
使用Pytorch中从头实现去噪扩散概率模型(DDPM)
在本文中,我们将构建基础的无条件扩散模型,即去噪扩散概率模型(DDPM)。从探究算法的直观工作原理开始,然后在PyTorch中从头构建它。本文主要关注算法背后的思想和具体实现细节。
9087 3
|
Go 数据库 数据安全/隐私保护
Go实现随机加盐密码认证
Go实现随机加盐密码认证
400 0
|
消息中间件 运维 监控
Kafka两种集群详解和搭建教程
Kafka两种集群详解和搭建教程
6030 0
Kafka两种集群详解和搭建教程
|
数据可视化 计算机视觉 异构计算
【论文解读】单目3D目标检测 MonoCon(AAAI2022)
本文分享单目3D目标检测,MonoCon模型的论文解读,了解它的设计思路,论文核心观点,模型结构,以及效果和性能。
736 0
|
存储 运维 监控
三层虚拟专用网络 (L3VPN) 操作和管理框架
本文档为三层虚拟专用网络 (Layer 3 Virtual Private Networks,L3VPN) 的操作和管理提供了框架。该框架旨在对 L3VPN 管理解决方案设计中重要的重大技术问题进行连贯的描述。特定方法的选择以及信息模型和协议之间的选择超出了本文档的范围。
1017 0
三层虚拟专用网络 (L3VPN) 操作和管理框架