A Wasserstein Distance[贪心/模拟]
链接:https://www.nowcoder.com/acm/contest/91/A
来源:牛客网
左图为第一堆泥土的初始形态,右图为第二堆泥土的初始形态,颜色代表了一种可行的移动方案,使得第一堆泥土的形态变成第二堆泥土的形态
输入描述:
输入测试组数T,每组测试数据,第一行输入n,1<=n<=100000,紧接着输入两行,每行n个整数,
输出描述:
对于每组数据,输出一行,将a土堆的形态变成b土堆的形态所需要花费的最小体力
输入
2 3 0 0 9 0 2 7 3 1 7 6 6 6 2
输出
2 9
备注:
输入数据量较大,建议使用scanf/printf
【分析】:想要代价最小,控制k*|i-j|最小的办法是只移动相邻的。那么只要保证k最小并且从左到右累加k(k必定为正数,因为k>0&&|i-j|>0,故abs( a[i]-b[i] )。
首先这里有一个简化的思想。考虑到分好后所有的土堆数都等于bi,我们干脆以bi作为标准,让所有的ai减去bi,如果是正数表明需要移走这个正数数量的土堆,注意负数需要移走的土堆数就是这个负数本身,下文中把处理过的牌组就叫做简化后的土堆。
.可能会疑问那个差值可能是正可能是负(其实+/-可以看成移动的方向),这没有关系,差值为正表示 i 移到 i+1,为负表示从 i+1 移到 i,其答案数都是加abs( a[i]-b[i] ),所以可以等价。
贪心思想则是从左到右依次枚举,将每个土堆上简化后的数移动到右边的土堆(再说一遍,是负数的就移走负数),这样最后一组牌就自动变成bi了
但是如果简化后的土堆中有bi怎么办?第一个不为bi的土堆之前所有的土堆都不需要进行移动,否则步数偏大。但是在土堆中如果有bi,那没有关系,因为他左边的土堆一定会往他上面移动一定数量的土堆。
【代码】:
#include <bits/stdc++.h> using namespace std; const int maxn=1e5+100;int a[maxn],b[maxn]; int main() {int T;//cin>>T;scanf("%d",&T);while(T--){int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)scanf("%d",&b[i]);long long ans=0;for(int i=1;i<n;i++){ans += abs(a[i]-b[i]);//每次分配 答案+abs(a[i]-b[i])a[i+1] += a[i]-b[i];//a[i]-b[i]计算还差多少,后面的补上来,将该摞多余的土堆数放到下一摞 }printf("%lld\n",ans);}return 0; }
【总结】:贪心选择性:全局最优解是由局部最优解产生。贪心法比较容易实现,但是不好证明。移动负数个土堆也是不违反题意的,因为那相当于逆向移动了正数个土堆。问题的规模被一步步地缩小。
转载于:https://www.cnblogs.com/Roni-i/p/8848999.html
A Wasserstein Distance[贪心/模拟]相关推荐
- 推土机距离(Wasserstein distance)以及其他几种常用的分布差异度量方法(mark)
文章目录 1. Wasserstein距离 2. KL散度 3. JS散度 参考资料 1. Wasserstein距离 1.1 方法简介 Wasserstein Distance也称为推土机距离(Ea ...
- 推土距离, Wasserstein distance
在鲁棒优化中见到一个名词:Wasserstein distance, 又称作 earth mover's distance,推土距离.用来测量两个随机分布的距离. 之所以叫推土距离,是因为它的物理含义 ...
- Detecting tiny objects in aerial images: A normalized Wasserstein distance and a new benchmark(论文导读)
A normalized Wasserstein distance and a new benchmark(论文导读) 论文链接 文章目录 A normalized Wasserstein dista ...
- 【CVPR 2021】基于Wasserstein Distance对比表示蒸馏方法:Wasserstein Contrastive Representation Distillation
[CVPR 2021]基于Wasserstein Distance对比表示蒸馏方法:Wasserstein Contrastive Representation Distillation 论文地址: ...
- 校内hu测(10.6T2,T3)(乱搞+贪心+模拟)
@liu_runda T2.便(then) [题目描述] 给出一个R*C的棋盘.共有R行C列,R*C个格子.现要在每个格子都填一个非负整数.使得任意一个2*2的正方形区域都满足这样的性质:左上角的数字 ...
- KL divergence,JS divergence,Wasserstein distance是什么
文章目录 前言 KL divergence JS divergence Wasserstein distance 总结 前言 这三个东西都可以用来两个分布的差异.其中三最难,其本身是来自另外的领域,如 ...
- 【SPRS J P RS 2022】小目标检测模块:A Normalized Gaussian Wasserstein Distance for Tiny Object Detection
[SPRS J P & RS 2022]A Normalized Gaussian Wasserstein Distance for Tiny Object Detection A Norma ...
- 【NOIP2013】积木大赛(差分数组,贪心模拟)
题目 原题链接 问题描述 分析 直观思路--贪心模拟:每次都处理最长正整数区段. 以[2,3,4,1,2][2,3,4,1,2][2,3,4,1,2]为例: [2,3,4,1,2]⟹[1,2,3,0, ...
- Wasserstein distance vs Dynamic Time Warping
这篇博客同时在我的wordpress上发布 In my internship with UCSF Neuroscape lab, I was faced with an important quest ...
最新文章
- Nature子刊:残留DNA在土壤中含量丰富并且模糊了对土壤生物多样性的估计
- IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例
- FreeImage加速保存图像
- Xftp使用教程——问答方式
- 修改Chrome的UserAgent
- 字符串替换方法的优劣
- 从MongoDB2.4升级到3.0的详细步骤
- 一文看懂Stacking!(含Python代码)
- 麦子学院字符设备驱动201126
- When I’m old and dying
- Fractional Laplacian
- win10防火墙删除的文件在哪里_【微软】第42期分享:微软 Win10 仍存在删除个人配置文件数据 Bug!...
- WebP图片格式处理和兼容使用
- 怎么把PPT压缩到最小?
- Android获取正在运行的进程列表
- Kali无线渗透获取宿舍WiFi密码(WPA)
- 计算机制作灯笼,做灯笼日记
- 【百度地图API】你看过房产地图吗?你知道房产标注是如何建立的吗?
- 【photoshop】笔记之图层详解
- 最小生成树--还是畅通工程