HDU_3183_RMQ
http://acm.hdu.edu.cn/submit.php?pid=3183
初探rmq,这道题看了题解还是写了好久。原因是rmq处理字符串时没有自己写min函数,导致把返回的字符当成下标处理了。
这题也可以直接贪心写,思路和rmq一样,查找的方法效率低一些。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std; char a[],ans[];
int dp[][]; int Min(int x,int y)
{
return a[x] <= a[y] ? x : y;
} void rmq_init(int len)
{
for(int i = ;i < len;i++) dp[i][] = i;
for(int j = ;(<<j) < len;j++)
{
for(int i = ;i+(<<j)- < len;i++)
{
dp[i][j] = Min(dp[i][j-],dp[i+(<<(j-))][j-]);
}
}
} int rmq_query(int l,int r)
{
int k = (int)(log((double)(r-l+))/log(2.0));
return Min(dp[l][k],dp[r-(<<k)+][k]);
} int main()
{
int n,i;
while(~scanf("%s%d",a,&n))
{
int len = strlen(a);
rmq_init(len);
n = len-n;
int pos = ,num = ;
while(n)
{
pos = rmq_query(pos,len-n);
ans[num++] = a[pos++];
n--;
}
for(i = ;i < num && ans[i] == '';i++);
if(i == num) printf("0\n");
else
{
for(;i < num;i++) printf("%c",ans[i]);
printf("\n");
}
}
return ;
}
HDU_3183_RMQ的更多相关文章
随机推荐
- 《带你装B,带你飞》pytest修仙之路3 - setup/teardown
1. 简介 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次.当然还有更高级一点的setupClass和teardownClass ...
- [Micropython]TPYBoard v202 智能WIFI远控小车
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言---------------------- 之 ...
- 树上点分治 poj 1741
Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v ...
- 读取Core下的appsettings.json的值的时候中文乱码
这个百度一下一大堆,我就用的这个:然后重新生成一次就好了. 2.有的是更改VS的什么高级保存之类的,我记得之气设置过, 然后就是:这篇文章
- scrapy在存储数据到json文件中时,中文变成为\u开头的字符串的处理方法
在settings.py文件中添加 FEED_EXPORT_ENCODING = 'utf-8'
- python 进程事件
1.作用 通过信号量,控制全部进程进入阻塞状态,也可以通过控制信号量,解除全部进程的阻塞 注意:定义的事件对象,默认状态是阻塞 2.常用方法 """ 对象.set() 作 ...
- Java框架之SpringMVC 04-视图解析-Spring表单-JSON-上传下载
SpringMVC 视图解析 请求处理方法(controller方法)执行完成后,最终返回一个 ModelAndView 对象,即使出现异常也会返回一个 ModelAndView 对象.对于那些返回 ...
- PythonI/O进阶学习笔记_11.python的多进程
content: 1. 为什么要多进程编程?和多线程有什么区别? 2. python 多进程编程 3. 进程间通信 ======================================= ...
- pta 6-7 统计某类完全平方数 (20分)
6-7 统计某类完全平方数 (20分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ...
- 啥叫ORM
名字: object / relation map 对象关系映射 定义: 通过(描述对象和数据库之间映射的)元数据把对象自动转为关系数据 一般都是作为中间件 优缺: 优点是自动化,屏蔽了SQL语句,而 ...