D. Program(有点难度的线性DP)

简介: D. Program(有点难度的线性DP)

题目

D. Program

题意

给一个长度为n的‘+’,‘-’序列,表示+1和-1 在给m个查询,问忽略[l,r]之间的序列,能走到多少个不同的数字

思路

  • 分为前后缀计算,前缀计算比较简单关键是后缀计算
  • 后缀上,需要关注能够到达的最小值和最大值
  • 定义sufL[i]和sufR[i]分别表示为到达的最小值和最大值
  • 可以得出转移方程
  • now = s[i] == '+' ? 1 : -1;
  • sufR[i] = max(sufR[i + 1] + now, 0);
  • sufL[i] = min(sufL[i + 1] + now, 0);

代码

cpp

复制代码

const int N = 2e5+10;
char s[N];
int preL[N], preR[N], pre_cur[N];
int sufL[N], sufR[N];
void solve()
{
    int n, m;
    cin >> n >> m;
    cin >> s + 1;
    preL[0] = preR[0] = pre_cur[0] = 0;
    for (int i = 1; i <= n;i ++)
    {
        pre_cur[i] = pre_cur[i - 1] + (s[i] == '+' ? 1 : -1);
        preL[i] = min(pre_cur[i], preL[i - 1]);
        preR[i] = max(pre_cur[i], preR[i - 1]);
    }
    sufL[n + 1] = sufR[n + 1] = 0;
    for (int i = n; i >= 1;i --)
    {
        int now = s[i] == '+' ? 1 : -1;
        sufR[i] = max(sufR[i + 1] + now, 0);
        sufL[i] = min(sufL[i + 1] + now, 0);
        // debug2(sufL[i], sufR[i]);
    }
    for (int i = 1; i <= m; i++)
    {
        int l, r;
        cin >> l >> r;
        l--;r++;
        int maxx = max(0, preR[l]), minn = min(0, preL[l]);
        maxx = max(maxx, sufR[r] + pre_cur[l]);
        minn = min(minn, sufL[r] + pre_cur[l]);
        // debug2(maxx, minn);
        cout << maxx - minn + 1 << endl;
    }
}



相关文章
|
1天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
306 90
|
9天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。
|
人工智能 前端开发 API
前端接入通义千问(Qwen)API:5 分钟实现你的 AI 问答助手
本文介绍如何在5分钟内通过前端接入通义千问(Qwen)API,快速打造一个AI问答助手。涵盖API配置、界面设计、流式响应、历史管理、错误重试等核心功能,并提供安全与性能优化建议,助你轻松集成智能对话能力到前端应用中。
740 154
|
15天前
|
人工智能 数据可视化 Java
Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
本报告对比Spring AI Alibaba、Dify、LangGraph与LangChain四大AI开发框架,涵盖架构、性能、生态及适用场景。数据截至2025年10月,基于公开资料分析,实际发展可能随技术演进调整。
984 152
|
2天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
2天前
|
数据采集 人工智能 搜索推荐
别再“调教”ChatGPT了!用Qwen2.5打造24小时在线数字分身
在AI时代,专属“数字分身”正从科幻走向现实。依托Qwen2.5-14B大模型、LoRA微调技术及LLaMA-Factory Online平台,仅需四步即可打造会说话、懂风格、能办事的个性化AI助手,让每个人拥有自己的“贾维斯”。
204 152