hdu 3183 A Magic Lamp (rmq)
题目链接: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)相关推荐
- hdu 3183 A Magic Lamp(给一个n位的数,从中删去m个数字,使得剩下的数字组成的数最小(顺序不能变),然后输出)...
1.题目大意是,给你一个1000位的数,要你删掉m个为,求结果最小数. 思路:在n个位里面删除m个位.也就是找出n-m个位组成最小数 所以在区间 [0, m]里面找最小的数.相应的下标标号i 接着找区 ...
- HDU 3183 A Magic Lamp(RMQ问题, ST算法)
原题目 A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU - 3183 A Magic Lamp 线段树
题目链接 题意:数字字符串删除k个值后的数字最小不算前导0 思路:其实就是最小字典序,那么我们肯定一位一位的确定最小的值,那么对于i位,其实找i+1~i+k位中最小的数有没有比当前位置的数小,如果有的 ...
- HDU各种比赛题题解(一)
HDU各种比赛题题解(一) Gardon-DYGG Contest 1 HDU1178 Heritage from father[水题] - 海岛Blog - CSDN博客 HDU1181 变形课[D ...
- 【HDU 2612 Find a Way(BFS)】(兼BFS入门笔记)
[HDU 2612 Find a Way(BFS)](兼BFS入门笔记) 原题入口: http://acm.hdu.edu.cn/showproblem.php?pid=2612 第一篇在CSDN的博 ...
- CentOS7搭建lamp(module)并实现Xcache、https访问
LAMP指的是Linux(操作系统).ApacheHTTP 服务器,MySQL数据库(有时也指MariaDB) 和Php(有时也是指perl或python) ,他们共同组成了一 ...
- 【HDU 3400】Line belt(三分法)
题目链接 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3400 题意 有两条传送带AB和CD,移动速度分别为p,q. 除了传送带的其他区域移动速度为r ...
- keepalived+haproxy(双主)+nginx(静态)+lamp(动态)部署phpBB
简介: haproxy为高性能的反向代理服务器,在向后端server调度方面支持很多的调度算法:roundrobin,source,uri,url_param,hdr(),leastconn等,且支持 ...
- HDU 1222 Wolf and Rabbit(gcd)
HDU 1222 Wolf and Rabbit (最大公约数)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
最新文章
- 开始即结束,Meta元宇宙OS要黄?
- Struts2框架学习Action命名空间创建方式
- 士兵杀敌(二)(线段树+树状数组)
- ABAP如何调用OCX
- java写一个窗体并连接MySQL_大神帮忙写一个简单地java页面,连接MySQL数据库之后能够显示数据库上的数据...
- python交换数组中的两个元素_[Python]华为面试题,交换两个数组的元素使之总和的差值最小。...
- 淘宝发布年度十大同款:钟南山哑铃、奥特曼变身器、嫦娥五号暖宝宝入选
- HDU 2896病毒侵袭
- css3漂亮的渐变图案,CSS3 带渐变图案的圆球
- CSS 笔记之 CSS 选择器
- html5怎么调用cur指针,win7鼠标指针主题包怎么用
- smartupload 路径不存在_使用SmartUpload上传文件不成功
- 【游戏开发】UE4联机渲染swarm agent配置
- 严禁使用计算机存储,处理,传输涉密信息,非涉密计算机及其网络保密管理要求...
- linux开发者的一天
- 动态壁纸安卓_酷玩软件第7期:还在用无声的动态壁纸?短视频壁纸软件(Win+安卓版本)...
- 程序员情人节脱单指南
- MATLAB代码保存为word,MATLAB怎么保存为Word?
- 一篇文章带你走近Android自定义view
- 贵州省委常委、宣传部部长、省委网络安全与信息化领导小组副组长慕德贵一行莅临云宏,考察云计算关键核心技术发展情况
热门文章
- html 无组件上传图片,无组件上传图片到数据库中,最完整解决方案
- 系统学习机器学习之SVM(一)
- 系统科学专业 计算机,2018年北京市培养单位数学与系统科学研究院863计算机学科综合(专业)之计算机操作系统考研核心题库...
- PAT (Basic Level) Practice1020 月饼
- clickhouse 数据存储
- 分布式技术是大规模应用的最后一个考验
- mysql 查询指定日期的上一周的最后一天
- Windows核心编程_调用控制台窗口
- 利用nginx+lua+redis实现反向代理方法教程
- idea 未实现接口红线提示,重复代码波浪线提示,自动换行,控制台输出内容自动换行...