HDU 3183:A Magic Lamp(RMQ)】的更多相关文章

http://acm.hdu.edu.cn/showproblem.php?pid=3183 题意:给出一个数,可以删除掉其中m个字符,要使得最后的数字最小,输出最后的数字(忽略前导零). 思路:设数的长度为n,那么我们要删除其中m个最大的字符,可以转化为我们保留其中的n-m个最小的字符.对于第一个数,它存在的区间必定在[1,m+1]里面,因为我们要保证后面[m+2,n]区间有n-m-1个字符.当找到第一个数的下标为tmp的时候,第二个数的区间就是[tmp+1,m+2]……以此类推,直到找到最后…
A Magic Lamp                                                                               Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description Kiki likes traveling. One day she finds a magic lamp, u…
Description Kiki likes traveling. One day she finds a magic lamp, unfortunately the genie in the lamp is not so kind. Kiki must answer a question, and then the genie will realize one of her dreams. The question is: give you an integer, you are allowe…
A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2584    Accepted Submission(s): 1010 Problem Description Kiki likes traveling. One day she finds a magic lamp, unfortunately the gen…
题目的意思是: 给你一个大数,然后删减其中的K个数,并且剩下的数还是按原来在的先后次序排列,求所得的那个数最小的那个数. 思路:贪心(要取得数最小,你从左往右选数的时候,选的第一数,就是选后组成数的位权最高的,要一个数最小,位权最高的所对应那位要最小,然后依次是下一位权最小).原来有N个数,删除K个数得最小数可以转化为从左往右选N-K个数所组成的数最小.那么第一个数必须在区间[0,K](数组下标)(存大数的数组首位是从0开始的). 证:选的第一位数如果超过K,假如取的是K+S(K+S<=N-1)…
http://acm.hdu.edu.cn/showproblem.php?pid=5795 A Simple Nim Problem Description   Two players take turns picking candies from n heaps,the player who picks the last one will win the game.On each turn they can pick any number of candies which come from…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 题意 有n个数字,每个数字小于等于n,两个相同的数字价值为1,三个连续的数字价值为1 .问这n个数字的最大价值是多少 思路 用map对这n个数字中每个数字出现的次数进行统计,用ans记录总价值.然后从数字1开始向后考虑,如果数字i出现的次数不小于2,那么ans加上数字i出现的次数除以二(两个相同的数字价值为1),然后让这个次数对2取模,接下来判断数字i还有没有(即:是否为1):如果为1,考虑数…
http://acm.hdu.edu.cn/showproblem.php?pid=6011 题意:共有n种字符,每种字符有一个val和一个cnt,代表这个字符的价值和数量.可以制造的总价值是:第一个字符的权值*1+第二个字符的权值*2+第三个字符的权值*3+…….问最大的总价值可以是多少. 思路:首先可以确定价值越大的是放在越后,因为后面的位权比较大.考虑到价值有负数,因为不确定负数是否要放上去,所以需要枚举这些负数. 首先输入的时候记录价值为负的个数negnum.将价值从小到大排序,然后枚举…
http://acm.hdu.edu.cn/showproblem.php?pid=3487 题意:有两种操作:1.Flip l r ,把 l 到 r 这段区间 reverse.2.Cut a b c ,把 a 到 b 这段区间切掉,再把这段区间接到切掉后的第 c 个数的后面. 思路:做完了上一道变态题目,做这道题目如鱼得水.Cut的时候就是把a 到 b 放到keytree的位置,记录一下当前keytree的值,然后切掉,再把切掉后的第 c 个数转到 root 的位置,再把这个记录的值重新连接回…
http://acm.hdu.edu.cn/showproblem.php?pid=5968 题意:中文题意. 思路:一开始不会做,后来发现数据范围很小,而且那个数要是连续的,所以可能把所有情况枚举出来很小吧.打了个表发现 100 只有 4950 个,然后直接暴力枚举每一种情况,放在Hash里面标记是否出现过这个数,再弄一个len数组放置每一种情况长度,然后对答案分别向左和向右找最长的长度就好了. #include <cstdio> #include <cstring> #incl…