题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3183

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
/**
rmq 问题:题意很简单,求一行数字中除去其中m个数字,使其组成最小的一个数字
使用rmq解题,设源数字长为n,那么除去m个数字后剩下的还剩n-m个数字,组成最小的数字。
(1)因为剩下n-m个数字,那么在1到m+1位置中最小的那个数字必是结果中的第一个数字i,
(2)然后从这个数字i位置的下个位置i+1开始到m+2位置的数字中最小的那个数字必定是
结果中第二个数字,以此类推下去向后找。
(3)为了保证数字最小所以要保证高位最小还要保证数字长度够用~~
**/
char num[1010];
char res[1020];
int dp_min[1010][20];
int t;//返回较小值
int mins(int a,int b)
{return num[a]<=num[b]?a:b;
}
void rmq_init(int len)
{for(int i = 0; i < len; i++)dp_min[i][0] = i;for(int j = 1; (1<<j) < len; j++)for(int i = 0; i+(1<<j)-1 < len;i++)dp_min[i][j] = mins(dp_min[i][j-1],dp_min[i+(1<<(j-1))][j-1]);
}int query(int l,int r)
{int k = (int)(log((double)(r-l+1))/log(2.0));return mins(dp_min[l][k],dp_min[r-(1<<k)+1][k]);
}int main()
{int len;while(scanf("%s%d",num,&t)!=EOF){len = strlen(num);rmq_init(len);int m = len-t;int p = 0,j=0;while(m--){p=query(p,len-m-1);res[j++] = num[p++];}for(p = 0; p < j; p++)if(res[p]!='0')break;if(p==j)printf("0");else{while(p<j)printf("%c",res[p++]);}puts("");}return 0;
}

转载于:https://www.cnblogs.com/newpanderking/archive/2012/12/27/2836351.html

hdu 3183 A Magic Lamp (rmq)相关推荐

  1. hdu 3183 A Magic Lamp(给一个n位的数,从中删去m个数字,使得剩下的数字组成的数最小(顺序不能变),然后输出)...

    1.题目大意是,给你一个1000位的数,要你删掉m个为,求结果最小数. 思路:在n个位里面删除m个位.也就是找出n-m个位组成最小数 所以在区间 [0, m]里面找最小的数.相应的下标标号i 接着找区 ...

  2. HDU 3183 A Magic Lamp(RMQ问题, ST算法)

    原题目 A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. HDU - 3183 A Magic Lamp 线段树

    题目链接 题意:数字字符串删除k个值后的数字最小不算前导0 思路:其实就是最小字典序,那么我们肯定一位一位的确定最小的值,那么对于i位,其实找i+1~i+k位中最小的数有没有比当前位置的数小,如果有的 ...

  4. HDU各种比赛题题解(一)

    HDU各种比赛题题解(一) Gardon-DYGG Contest 1 HDU1178 Heritage from father[水题] - 海岛Blog - CSDN博客 HDU1181 变形课[D ...

  5. 【HDU 2612 Find a Way(BFS)】(兼BFS入门笔记)

    [HDU 2612 Find a Way(BFS)](兼BFS入门笔记) 原题入口: http://acm.hdu.edu.cn/showproblem.php?pid=2612 第一篇在CSDN的博 ...

  6. CentOS7搭建lamp(module)并实现Xcache、https访问

                LAMP指的是Linux(操作系统).ApacheHTTP 服务器,MySQL数据库(有时也指MariaDB) 和Php(有时也是指perl或python) ,他们共同组成了一 ...

  7. 【HDU 3400】Line belt(三分法)

    题目链接 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3400 题意 有两条传送带AB和CD,移动速度分别为p,q. 除了传送带的其他区域移动速度为r ...

  8. keepalived+haproxy(双主)+nginx(静态)+lamp(动态)部署phpBB

    简介: haproxy为高性能的反向代理服务器,在向后端server调度方面支持很多的调度算法:roundrobin,source,uri,url_param,hdr(),leastconn等,且支持 ...

  9. HDU 1222 Wolf and Rabbit(gcd)

    HDU 1222   Wolf and Rabbit   (最大公约数)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

最新文章

  1. 开始即结束,Meta元宇宙OS要黄?
  2. Struts2框架学习Action命名空间创建方式
  3. 士兵杀敌(二)(线段树+树状数组)
  4. ABAP如何调用OCX
  5. java写一个窗体并连接MySQL_大神帮忙写一个简单地java页面,连接MySQL数据库之后能够显示数据库上的数据...
  6. python交换数组中的两个元素_[Python]华为面试题,交换两个数组的元素使之总和的差值最小。...
  7. 淘宝发布年度十大同款:钟南山哑铃、奥特曼变身器、嫦娥五号暖宝宝入选
  8. HDU 2896病毒侵袭
  9. css3漂亮的渐变图案,CSS3 带渐变图案的圆球
  10. CSS 笔记之 CSS 选择器
  11. html5怎么调用cur指针,win7鼠标指针主题包怎么用
  12. smartupload 路径不存在_使用SmartUpload上传文件不成功
  13. 【游戏开发】UE4联机渲染swarm agent配置
  14. 严禁使用计算机存储,处理,传输涉密信息,非涉密计算机及其网络保密管理要求...
  15. linux开发者的一天
  16. 动态壁纸安卓_酷玩软件第7期:还在用无声的动态壁纸?短视频壁纸软件(Win+安卓版本)...
  17. 程序员情人节脱单指南
  18. MATLAB代码保存为word,MATLAB怎么保存为Word?
  19. 一篇文章带你走近Android自定义view
  20. 贵州省委常委、宣传部部长、省委网络安全与信息化领导小组副组长慕德贵一行莅临云宏,考察云计算关键核心技术发展情况

热门文章

  1. html 无组件上传图片,无组件上传图片到数据库中,最完整解决方案
  2. 系统学习机器学习之SVM(一)
  3. 系统科学专业 计算机,2018年北京市培养单位数学与系统科学研究院863计算机学科综合(专业)之计算机操作系统考研核心题库...
  4. PAT (Basic Level) Practice1020 月饼
  5. clickhouse 数据存储
  6. 分布式技术是大规模应用的最后一个考验
  7. mysql 查询指定日期的上一周的最后一天
  8. Windows核心编程_调用控制台窗口
  9. 利用nginx+lua+redis实现反向代理方法教程
  10. idea 未实现接口红线提示,重复代码波浪线提示,自动换行,控制台输出内容自动换行...