埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A - Wasserstein Distance

本文主要是介绍埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A - Wasserstein Distance,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述 

最近对抗生成网络(GAN)很火,其中有一种变体WGAN,引入了一种新的距离来提高生成图片的质量。这个距离就是Wasserstein距离,又名铲土距离。
这个问题可以描述如下:


有两堆泥土,每一堆有n个位置,标号从1~n。第一堆泥土的第i个位置有a i克泥土,第二堆泥土的第i个位置有b i克泥土。小埃可以在第一堆泥土中任意移挪动泥土,具体地从第i个位置移动k克泥土到第j个位置,但是会消耗 的体力。小埃的最终目的是通过在第一堆中挪动泥土,使得第一堆泥土最终的形态和第二堆相同,也就是a i=b i (1<=i<=n), 但是要求所花费的体力最小

左图为第一堆泥土的初始形态,右图为第二堆泥土的初始形态,颜色代表了一种可行的移动方案,使得第一堆泥土的形态变成第二堆泥土的形态


输入描述:

输入测试组数T,每组测试数据,第一行输入n,1<=n<=100000,紧接着输入两行,每行n个整数,前一行为a1, a2,…,an,后一行为b1,b2,…,bn.其中0<=ai,bi<=100000,1<=i<=n,数据保证  

输出描述:

对于每组数据,输出一行,将a土堆的形态变成b土堆的形态所需要花费的最小体力
示例1

输入

2
3
0 0 9
0 2 7
3
1 7 6
6 6 2

输出

2
9

备注:

输入数据量较大,建议使用scanf/printf

思路:不要想太多,不要想太多,不要想太多,重要的事情说三遍!

ACDAIMAI:

#include <iostream>
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
int main()
{long long t,n,a[100005],b[100005];scanf("%lld", &t);while(t--){scanf("%lld", &n);long long ans = 0;for(int i = 0; i < n; i++) scanf("%lld",&a[i]);for(int i = 0; i < n; i++) scanf("%lld",&b[i]);for(int i = 0; i < n; i++){if(a[i] == b[i]) continue;ans += abs(b[i] - a[i]);a[i+1] -= b[i] - a[i];}printf("%lld\n",ans);}
}


这篇关于埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A - Wasserstein Distance的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/698691

相关文章

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

上海邀请赛 A题目 HDU 5236(dp)

先求出没有ctrl+s的时候构造长度为i的期望f[i] 。然后枚举保存的次数,求出最小即可。 #include<cstdio>#include<cstdio>#include<cmath>#include<queue>#include<stack>#include<string>#include<cstring>#include<iostream>#include<map>

MapReduce程序设计2

要求 1、数据集stock-daily,包含A股近4000只股票的今年以来的日数据;数据集stock-daily-30d仅包含最近30个交易日数据,根据自己计算机性能选择。 数据来源:https://www.joinquant.com/help/api/help?name=JQData 2、数据集stock-concept,包含A股近4000只股票所有的股票代码、名称和概念。 数据来源:万

java 程序设计 第九章对象和类

目录 9.1 引言 9.2 为对象定义类 9.3 示例:创建类和定义对象 9.4 使用构造方法构造对象 9.5 通过引用变量访问变量 9.6 使用Java中的类 9.7 静态变量、常量和方法 9.8 可见性修饰符  9.9 数据域封装 9.10 向方法传递对象参数 9.11 对象数组 9.12 不可变对象和类 9.13 变量的作用域 9.14 this引用 9.1

Windows程序设计课程作业-3(文件并发下载)

目录 目录 1.作业内容 2.作业要求 3.主要思路  1)窗体和组件初始化  2)下载管理器实例化 3)按钮点击事件处理 4)窗体加载事件处理  5)下载消息处理  4.主要难点 1)多线程管理: 2) UI更新: 3) 错误处理: 4) 资源管理: 5) 用户体验: 5.不足及改进 参考:  6.代码展示 代码仓库  7.运行结果 ​​​​​ 1.

C#实现音乐在线播放和下载——Windows程序设计作业3

1. 作业内容     编写一个C#程序,在作业二实现的本地播放功能的基础上,新增在线播放和在线下载功能,作业二博客地址:C#实现简单音乐文件解析播放——Windows程序设计作业2 2. 架构选择     考虑到需求中的界面友好和跨版本兼容性,我选择选择WinForms作为开发平台,WinForms提供了一个简单而强大的方法来创建桌面应用程序,并且与C#高度兼容,在开发过程,选择.NETF

咖啡事故,上海Manner咖啡店,1天两起店员和顾客发生冲突

上海咖啡店Manner,一天的时间竟然发生两起店员和员工发生肢体冲突: 事情详情: Manner威海路716店事件: 店员泼顾客咖啡粉,随后被辞退品牌方回应媒体,表示将严肃处理Manner梅花路门店事件:顾客因等待时间长抱怨,店员与顾客沟通不畅店员抢夺顾客手机,发生肢体冲突 事件发生后大家都非常关注,但是值得注意的是昨晚Manner清空了两个官方的抖音号的内容(这是为什么?害怕网友在评论区

java程序设计 第八章 多维数组

8.1 引言 二维数组可以将一维数组作为元素的数组 8.2  二维数组基础        声明二维数组:elementType[ ][ ] arrayRefVar                         例如:int[ ][ ] matrix; 创建二维数组:matrix = new int[5][5] 数组初始化简明语句: int[ ][ ] array = { {1

上海高校大学智能制造实验室数字孪生三维可视化系统平台建设项目顺利验收

巨蟹数科智能制造数字孪生系统平台建设项目于下午3点正式验收。上海高校领导老师从4号楼实验室,5号楼实验室,再到8号教学楼,现场严格测试与审查项目建设使用硬件配置,5G网络环境软件运行的可靠性,稳定性,安全性,兼容性和拓展性。 在智能制造数字孪生系统平台建设项目验收过程中,上海校方领导老师们对系统平台进行全面的功能测试、性能测试、安全测试以及兼容性拓展性测试,确保系统在各个方面达到或超过预定标准和

高校新闻头条系统

摘 要 随着互联网技术的快速发展,网络几乎成为了人们搜集信息和交流沟通最方便、快捷的通道,科技创新一直在影响着人们的生活,人们的衣食住行也在不断变化,与此同时,也大大改变了人们获取信息的方式,人们获取新闻和信息的方式也越来越快,越来越多样化。我们需要利用有限的时间获取,获取自己感兴趣的新闻信息,而传统的新闻网站只能根据热度进行推荐,无法根据用户的个性化和喜好猜测用户的喜好再进行推荐。在这样的背景