CodeM2018美团 初赛A轮 题目二 下棋

[编程|1000分] 下棋
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++ 262144K,其他语言 524288K
64bit IO Format: %lld
题目描述
有一个1*n的棋盘,上面有若干个棋子,一个格子上可能有多个棋子。
你每次操作是先选择一个棋子,然后选择以下两个操作中的一个:
(1) 若该棋子不在 (1,1),让这个棋子往左走一格,即从 (1,x) 走到 (1,x-1);
(2) 若该棋子不在 (1,n),且这个棋子曾经到达过(1,1),让这个格子往右走一格,即从 (1,x) 走到 (1,x+1)。
给定一开始每个格子上有几个棋子,再给定目标局面每个格子上需要几个棋子,求最少需要多少次操作。

输入描述:
第一行一个正整数n表示棋盘大小。
第二行n个非负整数a_1, a_2, …, a_n 表示一开始 (1,i) 上有几个棋子。
第三行n个非负整数b_1, b_2, …, b_n 表示目标局面里 (1,i) 上有几个棋子。
保证 1 ≤ n ≤ 100,000,

输出描述:
输出一个非负整数,表示最少需要几次操作。
示例1
输入
5
0 0 1 1 0
1 0 0 0 1
输出
9
说明
先把(1,3)上的棋子走到(1,1),花费了2次操作。
然后把(1,4)上的棋子走到(1,1),再往右走到(1,5),花费了3+4=7次操作。
所以一共花了9次操作。
展开答题卡

代码实现:

#include<stdio.h>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<cmath>
#include<iostream>
#include<assert.h>
#include<queue>
#include<string>
#define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++)
#define per(i,j,k) for(int i=(int)j;i>=(int)k;i--)
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef long long LL;
const int N=110000;
int a[N],b[N];
int n;
int main() {scanf("%d",&n);assert(1<=n&&n<=100000);rep(i,1,n)scanf("%d",&a[i]);rep(i,1,n)scanf("%d",&b[i]);LL suma=0;LL sumb=0;rep(i,1,n)suma+=a[i];rep(i,1,n)sumb+=b[i];assert(suma==sumb);assert(0<=suma&&suma<=1000000000);int aft=0;LL ans=0;rep(i,1,n)ans+=(a[i]+b[i])*1ll*(i-1);per(i,n,1) {aft+=a[i];ans-=2*(i-1)*1ll*min(b[i],aft);aft-=min(b[i],aft);}printf("%lld\n",ans);return 0;
}

CodeM2018美团 初赛A轮 题目二 下棋相关推荐

  1. CodeM美团2018初赛A轮 题目一

    CodeM美团2018初赛A轮 题目一 描述 小美想要在电视上看电影,我们知道在电视上搜索电影可以通过搜索电影名字首字母缩写得到,通过首字母搜索电影的界面由一个九宫格组成,如下图: 光标初始在这个九宫 ...

  2. 2018codeM美团初赛B轮 4.神奇盘子

    [编程|1500分] 神奇盘子 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++ 262144K,其他语言 524288K Special Judge,64bit IO Format: ...

  3. CodeM2018 初赛A轮 第1,2题

    CodeM2018 初赛A轮 今晚参加了CodeM2018初赛A,结果只做对了两题-- 第1题:求一段字符串对应手机按键移动最少次数. 送分题非常简单,我的解法是一个数组保存A-Z的按键,一个二维数组 ...

  4. 【CodeM初赛B轮】A 贪心

    [CodeM初赛B轮]A 题目大意:给你一棵树,起初所有点都是白色的,你每次都能选择一个白点i,将这个点i到根路径上的所有到i的距离<k[i]的点都染成黑色(根和i也算,已经被染成黑色的点还是黑 ...

  5. 会计电算化常考题目二

    会计电算化常考题目二 1.IP地址 2.设置会计科目代码的要求 3.关于"记账" 4.结算方式的设置 5.复制-粘贴 6.我国会计电算化的发展阶段 7.影响计算机系统安全的主要因素 ...

  6. 操作系统期末习题考试习题解答题目二

    操作系统期末习题考试习题解答题目二 目录 操作系统期末习题考试习题解答题目二 第四章 第五章 第六章 第四章 1.什么是分级调度?分时系统中有作业调度的概念吗?如果没有,为什么? P86 答:处理机调 ...

  7. 2021年CSP-J入门级初赛(第一轮)真题讲解

    2017年NOIP普及组初赛真题讲解 2017年NOIP普及组初赛真题讲解_哔哩哔哩_bilibili 2018年NOIP普及组初赛真题讲解 2018年NOIP普及组初赛真题讲解_哔哩哔哩_bilib ...

  8. Java课程设计题目二:保存计算过程的计算器

    Java课程设计题目二:保存计算过程的计算器 1 设计要求 参考Windows 操作系统提供的计算器设计一个实用的计算器,要求除了具有普通的计算功能外,还具有保存计算过程的功能. ①单击计算器上的数字 ...

  9. 国赛数模2017B思路汇总第二部分(题目二)

    前言 笔者是在读本科生,尝试复刻数模国赛2017B题后,对国家一等奖论文做出总结,并说出自己的一些想法,以图提高自身建模水平. 原题 B题 "拍照赚钱"的任务定价 "拍照 ...

最新文章

  1. java nio原理 epoll_多路复用 Select Poll Epoll 的实现原理(BIO与NIO)
  2. 实战 Spring Cloud Gateway 之限流篇
  3. eclipse Indigo Helios Galileo几种版本的意思
  4. hisi mmz内存管理
  5. 【游戏开发】C 游戏编程实例
  6. 回答嵌入式初学者的一些问题
  7. CSS中的resize属性
  8. 实用必备xp框架模块_两款实用工具类软件,是你的日常必备!
  9. 华为mstp多生成树配置_MSTP多区域生成树协议配置举例
  10. 如何清理 Linux 系统开机启动项?
  11. python生成曲线图
  12. AI模型的大一统!浅析微软的BEIT3:多模态领域乱杀的十二边形战士
  13. mysql表结构导出word_利用word宏功能一键导出数据库表结构
  14. java线程栅栏_java多线程 栅栏CyclicBarrier
  15. CMOS逻辑门电路的重要技术参数
  16. mysql 安装gbk字符_mysql安装gbk字符集
  17. 照片上传分辨率低怎么改?图片分辨率dpi怎么调?
  18. linux who命令功能,Linux who命令详解
  19. 重置Windows打印机COM端口USB端口
  20. String字符串GBK转UTF8

热门文章

  1. 微信小程序直连蓝牙实现控制继电器及串口调试功能--全系统开源工程
  2. 发明专利申请的费用核流程
  3. RT-Thread 读写U盘
  4. Mod Organizer下载教程
  5. 根据commitid创建分支
  6. linux SSD 硬盘优化
  7. Flutter 插件库
  8. python爬取分析深圳二手房房价
  9. 山外多功能调试助手用作虚拟服务器
  10. 详解如何使用ArcGIS计算水库库容量