Berry Jam codeforces 1278C
题目大意:
有两种类型的果酱,一个梯子,从中间开始吃,可以吃左边的,也可以吃右边的,最终要使两种类型的果酱的数量想等
题解:
思路对了,但是没考虑完。
对梯子的左侧的果酱I我们用两个数组记录其从1到i的1的数量和从1到i的2的数目,对梯子右侧的果酱保存从i到n的1的数目和2的数目。
然后两种情况,
第一种是最终答案最侧与右侧均有果酱剩余。我们只需要让左侧的1-2等于右侧2-1。
第二种情况,最终答案出现在一侧, 即左侧都吃光或者右侧都吃光。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1E6+;
const ll INF=1e9+;
ll arr[N];
ll brr[N];
ll marka1[N];
ll marka2[N];
ll markb1[N];
ll markb2[N];
map<ll,ll >mp;
void solve(){
mp.clear();
ll n;
cin>>n;
for(ll i=;i<=n;i++) cin>>arr[i];
for(ll i=;i<=n;i++) cin>>brr[i];
for(ll i=;i<=n;i++){
if(arr[i]==) {
marka1[i]=marka1[i-]+;
marka2[i]=marka2[i-];
}
else {
marka1[i]=marka1[i-];
marka2[i]=marka2[i-]+;
}
}
markb1[n+]=;
markb2[n+]=;
for(ll i=n;i>=;i--){
if(brr[i]==){
markb1[i]=markb1[i+]+;
markb2[i]=markb2[i+];
}
else {
markb1[i]=markb1[i+];
markb2[i]=markb2[i+]+;
}
}
for(ll i=n;i>=;i--){
ll k=marka1[i]-marka2[i];
if(mp[k]==) {
mp[k]=i;
}
}
ll ans=INF;
for(ll i=;i<=n;i++){
ll k=markb2[i]-markb1[i];
if(mp[k]!=){
ans=min(ans,n-mp[k]+i-);
}
}
ll ans2=;
for(int i=;i<=n;i++){
if(marka1[i]==marka2[i]) ans2=i;
}
ans2=n-ans2+n;
ll ans3=n+;
for(int i=n;i>=;i--){
if(markb1[i]==markb2[i]) ans3=i;
}
ans3=n+ans3-;
cout<<min(ans3,min(ans,ans2))<<endl;
}
int main(){
ios::sync_with_stdio();
ll t;
cin>>t;
while(t--) solve();
return ;
}
Berry Jam codeforces 1278C的更多相关文章
- Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam
链接: https://codeforces.com/contest/1278/problem/C 题意: Karlsson has recently discovered a huge stock ...
- codeforcesC - Berry Jam(折半枚举+1-1序列前后缀和)
Educational Codeforces Round 78 (Rated for Div. 2) C - Berry Jam C. Berry Jam time limit per test 2 ...
- Educational Codeforces Round 78 (Rated for Div. 2) C - Berry Jam(前缀和)
- CF 1278C Berry Jam 题解
Forewords 说实话我是被图吸引进来的23333,图画的真的挺好看. 题意 你从一个梯子下到地下室,梯子左右两边各有 \(n\) 瓶果酱排成一排,果酱口味为草莓味或蓝莓味,你每次只能吃你左边或右 ...
- Berry Jam (前缀和)cf教育场
距离上一篇博客又2个月了 寻思着该除除草了 教育场是真的好难 可能是因为我还是只菜鸡 哭唧唧 先说下题意:有2*n罐果酱,草莓和蓝莓,梯子在中间从梯子那开始往两边吃(可以一会左一会右),问最少吃多少果 ...
- 【cf比赛记录】Educational Codeforces Round 78 (Rated for Div. 2)
比赛传送门 A. Shuffle Hashing 题意:加密字符串.可以把字符串的字母打乱后再从前面以及后面接上字符串.问加密后的字符串是否符合加密规则. 题解:字符串的长度很短,直接暴力搜索所有情况 ...
- Educational Codeforces Round 78 (Rated for Div. 2) 题解
Shuffle Hashing A and B Berry Jam Segment Tree Tests for problem D Cards Shuffle Hashing \[ Time Lim ...
- 2021record
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...
- CodeForces 4A
A A - Water~melon Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit St ...
随机推荐
- 控制台报错Cause: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 78; 元素类型 "select" 必须后跟属性规范 ">" 或 "/>"
首先我的控制台报错是这样的,我找了一下原因看到是第四行的错误: 它说元素select后面必须跟属性规范">""/>"但是我把我眼睛都快丑瞎了都没发现 ...
- Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)
注意: 本文操作环境为win10系统wsl下的Ubuntu18.04,对于原生的Ubuntu18.04同样适用.MySQL默认版本为5.7,其他版本不适用. 安装步骤 1.更新源: sudo apt ...
- Spss统计描述分析
总觉得有些技能学会了是不会忘的,但是还是要记录一下,怕记忆力不像狗皮膏药,并不那么牢固. 1.文件的合并 两个数据文件的合并 点击添加个案,这一步按照自己的需求选择,也可以打开外部数据集,在这里打开的 ...
- PyTorch专栏(六): 混合前端的seq2seq模型部署
欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/ 欢迎关注PyTorch官方中文教程站: http://pytorch.panchuang.net/ 专栏目录: 第一 ...
- 深度强化学习(DRL)专栏开篇
2015年,DeepMind团队在Nature杂志上发表了一篇文章名为"Human-level control through deep reinforcement learning&quo ...
- SpringCloud配置中心config
1,配置中心可以用zookeeper来实现,也可以用apllo 来实现,springcloud 也自带了配置中心config Apollo 实现分布式配置中心 zookeeper:实现分布式配置中心, ...
- Python第三方包之DingDingBot
Python第三方包之DingDingBot 这个是作者自己封装的一个钉钉机器人的包,目前只支持发文本格式.链接格式.markdown格式的消息,我们可以在很多场景用到这个,比如告警通知等 安装 pi ...
- My背包九讲——01背包
文章目录 背包问题中的常用变量说明 题目 解题思路 我想要想理解最简单 01背包就是要`理解
- reuire代码优化之:r.js
r.js是requireJS的优化(Optimizer)工具,可以实现前端文件的压缩与合并,在requireJS异步按需加载的基础上进一步提供前端优化,减小前端文件大小.减少对服务器的文件请求.要使用 ...
- C# 快速开发框架搭建—开发工具介绍
C# 快速开发框架搭建—开发工具介绍 一.VS2013,SQL SERVER R22008 以上两种工具如有不会者自行百度学习下. 二.动软代码生成器 对于经典的三层架构框架来说,使用动软代码生成器会 ...