HDOJ 3183 A Magic Lamp

9.23华为OD机试真题 新系统 - 小菊的寻宝之旅 (Java/Py/C/C++/Js/Go) 阅读详情

超级传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3183


题意要删除m个数字,我们不妨是认为只能挑选n-m个数字,使得有序组合得到的数字最小。

我们先来挑第一个,范围是原数的1~n-(n-m-1)即1~m+1 (注意要给后面的数字至少每个保留一个位置,此处下标从1开始计)。

当然我们要在此区间里挑一个最小的数,假设这个数的位置是x,则接下来第二个数的挑选区间变为[x+1, m+2] ... 往后同理。

转换为RMQ问题,代码如下:


#include <cstdio>
#include <cstring>
#include <cmath>
#include <climits>
#include <cstdlib>
#include <algorithm>

using namespace std;

const int maxn = 1005;
char a[maxn];
char dp[maxn][20];
int val[maxn][20];

char _Min(char a, char b)
{
    char _a = a;
    char _b = b;
    return _a < _b ? _a : _b;
}

void buildST(int n)
{
    for (int i = 0; i < n; i++)
    {
        dp[i][0] = a[i];
        val[i][0] = i;
    }

    for (int j = 1; j < 20; j++)
    {
        for (int i = 0; i < n; i++)
        {

            if (i + (1 << j) > n)
                break;
            dp[i][j] = _Min(dp[i][j - 1], dp[i + (1 << j - 1)][j - 1]);
            if (dp[i][j] == dp[i][j - 1])
                val[i][j] = val[i][j - 1];
            else
                val[i][j] = val[i + (1 << j - 1)][j - 1];
        }
    }
}

int RMQ(int l, int r)
{
    int k = floor(log(r - l + 1) / log(2));
    int x = _Min(dp[l][k], dp[r - (1 << k) + 1][k]);
    if (x == dp[l][k])
        return l * 100 + k;
    return (r - (1 << k) + 1) * 100 + k;
}

int main()
{
    int x;
    while (scanf("%s%d", a, &x) > 0)
    {
        int n = strlen(a);
        buildST(n);
        int l = 0;
        int first = 1;
        for (int i = 0; i < n - x; i++)
        {
            int ret = RMQ(l, x + i);
            int index2 = ret % 100;
            int index1 = (ret - index2) / 100;
            l = val[index1][index2] + 1;
            if (first && dp[index1][index2] == '0')
                continue;
            printf("%c", dp[index1][index2]);
            first = 0;
        }
        if (first)
            printf("0");
        printf("\n");
    }
    return 0;
}


企业微信第三方应用014_企业微信5种第三方应用的安装方式_上架到应用市场_服务商后台点击安装测试_生成应用推广二维码安装---企业微信开发016 成员授权的意思就是,只要是这个成员扫码安装了这个应用,那么这个应用就只有这个成员可以用。安装的时候可以设置可见范围,这个地方可以设置整个公司或者是某个部门或者是某些人可以让这个应用来进行操作。创建了以后,这个二维码就可以发出来进行推广别人用户扫描了以后就可以把自己的企业微信给安装上对应的应用了。然后在对应的这个微信的企业后台就可以看到在第三方中有这个应用了。可以看到这个就是服务商的后台对应的一个应用,我们点击打开应用。可以看到这里有两个授权,一个是成员授权,一个是管理员授权。就可以去创建推广二维码了。 阅读详情

相关推荐

银河麒麟服务器操作系统V10SP2实战:基于vsftpd构建多角色精细化权限FTP服务

本文详细介绍了在银河麒麟服务器操作系统V10SP2上基于vsftpd构建多角色精细化权限FTP服务的实战指南。从环境准备、核心配置到多角色用户权限管理,全面解析了FTP服务的部署与优化技巧,特别针对企业级应用场景提供了安全加固和故障排查方案。

weixin_30312563的博客 358

POJ 3183:Stump Removal(模拟)

http://poj.org/problem?id=3183 题意:有n个树桩,分别有一个高度h[i],要用Bomb把树桩都炸掉,如果炸的位置的两边树桩高度小于Bomb炸的树桩高度,那么小于树桩高度的两侧都是可以被炸掉的。而且有传递性。求把树桩全部炸掉要消耗的最少的Bomb数所炸的位置。 看样例:1 2 5 4 3 3 6 6 2 炸位置3(即5)的话,那么2小于5,所以位置2被炸掉,因为...

weixin_30609287的博客 123

Lattice FPGA 开发工具Diamond使用流程总结——工具使用

本文介绍了一般的Diamond开发流程,包括工程创建、文件输入、IP使用、约束、管脚分配、和布线布局等流程

weixin_41895751的博客 2万+

USACO 1.2.3 Name That Number

思路:先把dict.txt中的名字都转化成数字,存储在数组中,便于查找。需要注意的是数字与字母的对应表里没有字母Q和Z,还有就是如果有多组满足题意,则都需要输出。 代码如下: /* ID: michael139 LANG: C PROG: namenum */ #include #include char table[8][4]={"ABC","DEF","GHI","JKL","MN

Uranux 506

【AI基础学习系列】二十一、一文搞懂GPT

本文系统介绍了GPT(Generative Pre-trained Transformer)模型的核心内容。首先阐述了GPT的本质是基于Transformer的预训练语言模型,其创新在于使用单向Transformer编码器。其次详细解析了GPT架构,包括输入层的Tokenization和Embedding处理、Transformer解码器堆叠的核心组件(自注意力机制、前馈神经网络等)以及预训练和微调两阶段训练过程。接着说明了GPT的工作原理:通过无监督预训练学习语言统计规律,再结合有监督微调适应具体任务。

ASH_GUARDIAN的博客 1689

从零搭建YOLOv2硬件加速器:基于PYNQ-Z2的Vivado HLS与Jupyter Notebook实战

本文详细介绍了如何从零搭建YOLOv2硬件加速器,基于PYNQ-Z2开发板,结合Vivado HLS与Jupyter Notebook实现高效目标检测。通过硬件加速,YOLOv2推理速度提升8倍,功耗降低80%。文章涵盖硬件准备、Vivado HLS工程配置、IP核集成、PYNQ部署及常见问题解决,为开发者提供完整实战指南。

weixin_29188997的博客 1008

HDOJ 3183 A Magic Lamp (贪心)

A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2516    Accepted Submission(s): 984 Problem Description Kiki likes traveli

滴水穿石,慢慢积累,总会有成果 754

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

丨汀、的博客 2651

hdoj3183A Magic Lamp【RMQ】

A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2709    Accepted Submission(s): 1055 Problem Description Kiki likes tr

走一步再走一步 558

YOLOv11【第一章:零基础入门篇·第1节】YOLOv11核心架构深度解析与环境配置,一文搞定!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。 本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 5511

朱长江《偏微分方程简明教程》答案第一章部分

偏微分方程简明教程第一章习题1.1 第一章 习题1.1 1、指出下列方程的阶,并判断它是线性的还是非线性的。如果是线性的,说明它还是其次的: (1)ut−(uxx+uyy)+1=0;(2)ut−uxx+xu=0;(3)ut−uxxt+uux=0;(4)ux2+uuy=0;(5)utt−uxx+t2+x2=0;(6)ux+eyuy=0;(7)ut+uxxxx+1+u=0;(8)ux(1+ux2)−12+uy(1+uy2)−12=0;(9)∂4u∂x4+2∂4u∂x2∂y2+∂4u∂y4=0;(10)∂3u∂x

ymengm的博客 6761

hdoj 3183 A Magic Lamp 【RMQ区间取数】

A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2525    Accepted Submission(s): 989 Problem Description Kiki likes tra

世界很大 897

从 SAP Gateway 旧 add-ons 卸载到 SAP S/4HANA 转换的清理路线

摘要: SAP Gateway系统的维护难点往往源于历史遗留组件的堆积,而非OData服务本身的复杂性。早期系统为支持多种服务类型而安装的各类add-ons(如IW_SCS、IW_CNT、GW_CORE等),随着系统升级和团队更替逐渐成为技术负债。自SAP NetWeaver 7.40起,核心功能已整合至SAP_GWFND组件,使架构显著简化。在向S/4HANA迁移时,需重点清理已废弃的add-ons(如IW_SCS、IW_GIL等),但必须谨慎验证其关联服务是否仍被调用。组件清理需结合系统日志和调用链分析

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 424

hdoj A Magic Lamp 3183 (贪心)

A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2580    Accepted Submission(s): 1006 Problem Description Kiki likes travel

yanghui07216的博客 334

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdoj 3183A Magic Lamp【贪心】

A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2523    Accepted Submission(s): 988 Problem Description Kiki likes tra

平平淡淡才是真 360

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【HDOJ】3183 A Magic Lamp

RMQ。 1 /* 3183 */ 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 6 #define MAXN 1005 7 8 char s[MAXN], ans[MAXN]; 9 int dp[MAXN][MAXN]; 10 int...

weixin_34400525的博客 105

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

HDOJ 3183 A Magic Lamp(贪心)

 A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2528    Accepted Submission(s): 991 Problem Description Kiki likes t

Chunzhen的博客 652

hdoj--3183--A Magic Lamp(贪心)

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 trav

playboy307 337

hdu 3183 A Magic Lamp(ST表)

Problem DescriptionKiki 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 dre

ZAQ的博客 521

hdu 3183 A Magic Lamp(RMQ)

题目链接:hdu 3183 A Magic Lamp 题目大意:给定一个字符串,然后最多删除K个。使得剩下的组成的数值最小。 解题思路:问题等价与取N-M个数。每次取的时候保证后面能取的个数足够,而且取的数最小,查询最小的操作用RMQ优化。 #include <cstdio> #include <cstring> #include <algo...

weixin_30583563的博客 68

百度2012年校招笔试题——pszStringRotate

百度2013校园招聘笔试题 算法与程序设计 第4题:          字符串左移,void *pszStringRotate(char *pszString, int nCharsRotate),比如ABCDEFG,移3位变DEFGABC,要求空间复杂度O(1),时间复杂度O(n)。         字符串位移,再简单不过了,方法也很多. 有朴素算法(逐位移动,移动nCharsRotat

Uranux 3073

Project Euler 26 Reciprocal cycles(计算有理小数循环节长度)

超级传送门:http://projecteuler.net/problem=26 算法的核心思想:在除法过程中如果某一状态的除数与被除数和前面某一状态的相等,则后续的除法计算陷入循环,循环节长度就是这两个状态的距离。 例子:计算1/7的循环节长度 状态1: 10/7  得1余3 状态2: 30/7  得4余2 状态3: 20/7  得2余6 状态4: 60/7  得8余4 状

Uranux 1639

HDOJ 2852 KiKi's K-Number(树状数组)

超级传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2852 题意:有一个容器里有m个数(1 分析:用树状数组来维护这个容器,每次查找用二分。 代码: #include #include using namespace std; const int maxn = 100010; int c[maxn]; int n; in

Uranux 1600

POJ 2185 Milking Grid(二维KMP)

超级传送门:http://poj.org/problem?id=2185 这道题网上很多其他的blog上的题解都是错的,由于题目自身数据比较水,便都混过去了。其中一种典型的错误解法是求出每一行/列的最小覆盖长度(ABCAB的最小覆盖长度就是3,即对应ABC),然后LCM,若结果大于串长,则取串长。这是一种典型的错误贪心,诸如: 2 8 ABCDEFAB AAAABAAA 这组数据

Uranux 1232

ZOJ 3430 Detect the Virus(AC自动机+解码)

超级传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3430 本题思路清晰,不过解码确实繁琐,看来自己代码能力还有待加强。 需要注意几个点:解码后的ASCII字符的范围是0~255,而且可能包含'\0',不能用char来存,最好用int。 代码: #include #include #

Uranux 1096

Project Euler 51 Prime digit replacements(枚举)

超级传送门:http://projecteuler.net/problem=51   这题我是暴力枚举的,O3优化后2秒多。 先枚举素数,再枚举要替换的位置,我用二进制来表述,设dc为当前枚举到素数的位数,则替换方法可以从1 ~ (1   代码如下:   #include #include #include using namespace std; int p

Uranux 1086
上一篇: 用bis和bic实现所有位级操作
下一篇: Codeforces Div.2 212 C Insertion Sort (DP)
Uranux
博客等级 码龄15年 16粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值