当前位置: 首页 > news >正文

Atcoder Beginner Contests

ABC #437

B 题

模拟即可,暴力计算。

C 题

简单贪心,按照 \(w+p\)(转换花费)排序即可

D 题

题意:求 \(|A_i-B_j|\) 的和。

枚举 \(A_i\),然后二分查找一个 \(j\),使 \(B_j<A_i,B_{j+1}\ge A_i\)。这样消除绝对值,然后前缀和。

E 题

Trie 上 dfs。后面会搞一个文章。

ABC #438

B 题

枚举字串的起始点,然后统计答案。

C 题

显然是能删除就删除,于是开一个栈统计即可。

D 题

伪了,我说为什么D wa 了,原来 \(x<y<n\),我以为还能取等呢。

然后就 A 了 https://atcoder.jp/contests/abc438/submissions/72048791

首先蛇头很好计算,枚举 \(x\),计算前缀和即可。

其次是蛇身和蛇尾,我们需要找到贡献最大的 \(y\)

考虑如果 \(y\) 加上 \(1\),那么蛇头和蛇尾之和 \(s\) 加上了 \(b_i-c_i\)

于是可以记录 \(d_i=b_i-c_i\),再用 \(q\) 作为 \(d\) 的前缀和。

显然要找的 \(y\)\([x+1,n-1]\)\(q\) 的最大值的位置。于是开一个线段树维护。

#include <bits/stdc++.h>
using namespace std;
const int maxn=3e5+10;
#define int long long
int a[maxn],b[maxn],c[maxn],d[maxn],q[maxn],qa[maxn],qb[maxn],qc[maxn];
/*
#### 问题陈述> Snuke 正在观察一条蛇,他很好奇蛇的头部、蛇身和蛇尾分别是哪个部分。他把蛇分成了 $N$ 块,并评估了每个块的头部相似度、身体相似度和尾部相似度。然后,他决定找出使相似值总和最大的分割方法。给你长度为 $N$ 的整数序列 $A = (A_1, A_2, \ldots, A_N)$ 、 $B = (B_1, B_2, \ldots, B_N)$ 和 $C = (C_1, C_2, \ldots, C_N)$ 。求满足 $1 \leq x &lt; y &lt; N$ 的一对整数 $(x, y)$ 的最大可能值 $\displaystyle\sum_{i = 1}^{x} A_i + \sum_{i = x + 1}^{y} B_i + \sum_{i = y + 1}^{N} C_i$ 。*/
struct T{#define ls id<<1#define rs id<<1|1struct node{int l,r,max,mapos;}t[maxn*4];void up(int id){if(t[ls].max>=t[rs].max){t[id].max=t[ls].max;t[id].mapos=t[ls].mapos;}else{t[id].max=t[rs].max;t[id].mapos=t[rs].mapos;}}void build(int id,int l,int r,int tt[]){t[id].l=l,t[id].r=r;if(l==r){t[id].max=tt[l];t[id].mapos=l;return;}int mid=(l+r)>>1;build(ls,l,mid,tt);build(rs,mid+1,r,tt);up(id);}pair<int,int> query(int id,int l,int r){if(t[id].l>r||t[id].r<l)return {LLONG_MIN,0};if(t[id].l>=l&&t[id].r<=r)return {t[id].max,t[id].mapos};pair<int,int> a=query(ls,l,r);pair<int,int> b=query(rs,l,r);if(a.first>=b.first)return a;return b;}
};
signed main() {int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++)cin>>b[i];for(int i=1;i<=n;i++)cin>>c[i];for(int i=1;i<=n;i++){d[i]=b[i]-c[i];q[i]=q[i-1]+d[i];qa[i]=qa[i-1]+a[i];qb[i]=qb[i-1]+b[i];// qc[i]=qc[i-1]+c[i];}T t;t.build(1,1,n,q);int ans=LLONG_MIN;for(int x=1;x<n;x++){int sum1=qa[x];//y+1带来的影响:sum2+sum3加上b[i]-c[i]//需要找出一个y使得q[y]-q[x]最大ans=max(ans,sum1+qb[t.query(1,x+1,n-1).second]-qb[x]+qc[n]-qc[t.query(1,x+1,n-1).second]);}cout<<ans;return 0;
}

开 long long,我挂分了。

http://www.jsqmd.com/news/150280/

相关文章:

  • django基于深度学习的经典名著推荐系统设计与实现
  • 异步执行模式:重叠数据传输与计算提升效率
  • 物联网边缘设备:轻量级TensorRT运行时部署方案
  • 智能体工程实践,让AI从“本地飞起“到“上线靠谱“
  • 10大高效AI Logo设计工具横向对比,省钱省心更专业
  • 2025年深圳阿米巴税务筹划公司推荐:中小企业合规节税与股权转让定制化方案权威解析 - 品牌企业推荐师(官方)
  • css学习阶段一
  • 开源大模型+TensorRT镜像超强推理组合?真相来了
  • 计算机Java毕设实战-基于springboot的校园二手交易平台基于springboot+mysql+veu校园二手书交易管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 机器学习:基于python旅游景点评论数据分析系统 LDA主题分析 NLP情感分析 Bayes评论分类 可视化 计算机毕业设计
  • 【课程设计/毕业设计】基于Springboot+Vue的电子商务订单管理系统设计与实现订单出库、更新库存【附源码、数据库、万字文档】
  • 【软件测试面试】职言 | 40个软件测试面试题,找工作看过来
  • CI/CD流水线集成:自动化模型优化与发布
  • 微服务架构整合:将TensorRT封装为独立推理模块
  • [Quicker] 软件管家 - 源码归档
  • 计算机Java毕设实战-基于Springboot+Vue的电子商务订单管理系统设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Web端调用TensorRT?通过WASM实现的可能性探讨
  • 机器学习:基于大数据的房屋数据分析可视化系统 房源数据分析 预测算法 可视化 商品房数据+Flask框架
  • 8大AI生成PPT工具盘点与解析,做PPT还是AI快啊
  • 零拷贝内存访问:进一步压榨PCIe带宽潜力
  • 智能体观察周报第五期(2025-12-19 至 2025-12-26)
  • 59.使用设备树描述中断
  • 校准集选取原则:影响INT8量化质量的关键因素
  • django基于Python豆瓣电影数据可视化分析设计与实现
  • 安卓平台集成TensorRT:打造本地化AI应用
  • 【博客之星2025】深耕地球系统模式:从 SWAT 到 WRF,我的年度技术创作与开源之路
  • 详解TensorRT层融合技术:如何减少模型计算冗余
  • 2025年模具表面处理技术革新:智琳科技领衔激光雕刻与立体蚀纹工艺深度解析,十大实力厂商综合竞争力权威排行 - 品牌企业推荐师(官方)
  • 构建可持续AI系统:TensorRT能效比监测与优化
  • 教育领域新应用:用TensorRT部署个性化学习模型