CodeM2018美团 初赛A轮 题目二 下棋
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轮 题目二 下棋相关推荐
- CodeM美团2018初赛A轮 题目一
CodeM美团2018初赛A轮 题目一 描述 小美想要在电视上看电影,我们知道在电视上搜索电影可以通过搜索电影名字首字母缩写得到,通过首字母搜索电影的界面由一个九宫格组成,如下图: 光标初始在这个九宫 ...
- 2018codeM美团初赛B轮 4.神奇盘子
[编程|1500分] 神奇盘子 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++ 262144K,其他语言 524288K Special Judge,64bit IO Format: ...
- CodeM2018 初赛A轮 第1,2题
CodeM2018 初赛A轮 今晚参加了CodeM2018初赛A,结果只做对了两题-- 第1题:求一段字符串对应手机按键移动最少次数. 送分题非常简单,我的解法是一个数组保存A-Z的按键,一个二维数组 ...
- 【CodeM初赛B轮】A 贪心
[CodeM初赛B轮]A 题目大意:给你一棵树,起初所有点都是白色的,你每次都能选择一个白点i,将这个点i到根路径上的所有到i的距离<k[i]的点都染成黑色(根和i也算,已经被染成黑色的点还是黑 ...
- 会计电算化常考题目二
会计电算化常考题目二 1.IP地址 2.设置会计科目代码的要求 3.关于"记账" 4.结算方式的设置 5.复制-粘贴 6.我国会计电算化的发展阶段 7.影响计算机系统安全的主要因素 ...
- 操作系统期末习题考试习题解答题目二
操作系统期末习题考试习题解答题目二 目录 操作系统期末习题考试习题解答题目二 第四章 第五章 第六章 第四章 1.什么是分级调度?分时系统中有作业调度的概念吗?如果没有,为什么? P86 答:处理机调 ...
- 2021年CSP-J入门级初赛(第一轮)真题讲解
2017年NOIP普及组初赛真题讲解 2017年NOIP普及组初赛真题讲解_哔哩哔哩_bilibili 2018年NOIP普及组初赛真题讲解 2018年NOIP普及组初赛真题讲解_哔哩哔哩_bilib ...
- Java课程设计题目二:保存计算过程的计算器
Java课程设计题目二:保存计算过程的计算器 1 设计要求 参考Windows 操作系统提供的计算器设计一个实用的计算器,要求除了具有普通的计算功能外,还具有保存计算过程的功能. ①单击计算器上的数字 ...
- 国赛数模2017B思路汇总第二部分(题目二)
前言 笔者是在读本科生,尝试复刻数模国赛2017B题后,对国家一等奖论文做出总结,并说出自己的一些想法,以图提高自身建模水平. 原题 B题 "拍照赚钱"的任务定价 "拍照 ...
最新文章
- java nio原理 epoll_多路复用 Select Poll Epoll 的实现原理(BIO与NIO)
- 实战 Spring Cloud Gateway 之限流篇
- eclipse Indigo Helios Galileo几种版本的意思
- hisi mmz内存管理
- 【游戏开发】C 游戏编程实例
- 回答嵌入式初学者的一些问题
- CSS中的resize属性
- 实用必备xp框架模块_两款实用工具类软件,是你的日常必备!
- 华为mstp多生成树配置_MSTP多区域生成树协议配置举例
- 如何清理 Linux 系统开机启动项?
- python生成曲线图
- AI模型的大一统!浅析微软的BEIT3:多模态领域乱杀的十二边形战士
- mysql表结构导出word_利用word宏功能一键导出数据库表结构
- java线程栅栏_java多线程 栅栏CyclicBarrier
- CMOS逻辑门电路的重要技术参数
- mysql 安装gbk字符_mysql安装gbk字符集
- 照片上传分辨率低怎么改?图片分辨率dpi怎么调?
- linux who命令功能,Linux who命令详解
- 重置Windows打印机COM端口USB端口
- String字符串GBK转UTF8