传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1237

题目大意:你有n 个整数Ai和n 个整数Bi。你需要把它们配对,即每个Ai恰好对应一 个Bp[i]。要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配 对。例如A=                   {5,6,8},B={5,7,8},则最优配对方案是5配8, 6配5, 8配7,配对整数 的差的绝对值分别为2, 2, 1,和为5。注意,5配5,6配7,8配8是不允许的,因 为相同的数不               许配对。

题解:先排序,如果没有相同的我们就可以一一对应来求,(自己可以证明一下)。

  有相同的的怎么办?我们注意到一点:保证所有 Ai各不相同,Bi也各不相同。

  于是我们又有一个不加以证明的结论:我们得出最优解,移动匹配的位数不超过3,于是dp即可.

代码:

 #include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#define inf 21000000000000000ll
#define N 1000005
#define ll long long
using namespace std;
int n;
int a[N],b[N];
ll f[N];
int read()
{
int x=; char ch; bool bo=;
while (ch=getchar(),ch<''||ch>'') if (ch=='-') bo=;
while (x=x*+ch-'',ch=getchar(),ch>=''&&ch<='');
if (bo) return -x; return x;
}
ll get(int x,int y)
{
if (x==y) return inf/ ; else return abs(x-y);
}
void solve()
{
f[]=get(a[],b[]);
f[]=min(f[]+get(a[],b[]),get(a[],b[])+get(b[],a[]));
for (int i=; i<=n; i++)
{
f[i]=f[i-]+get(a[i],b[i]);
f[i]=min(f[i],f[i-]+get(a[i],b[i-])+get(a[i-],b[i]));
f[i]=min(f[i],f[i-]+min(get(a[i],b[i-])+get(a[i-],b[i-])+get(a[i-],b[i]),
get(a[i],b[i-])+get(a[i-],b[i])+get(a[i-],b[i-])));
}
if (f[n]>=inf/) printf("-1\n");
else printf("%lld\n",f[n]);
}
int main()
{
n=read();
for (int i=; i<=n; i++)
{
a[i]=read(),b[i]=read();
}
sort(a+,a+n+); sort(b+,b+n+);
solve();
}

BZOJ1237: [SCOI2008]配对的更多相关文章

  1. bzoj千题计划179:bzoj1237: [SCOI2008]配对

    http://www.lydsy.com/JudgeOnline/problem.php?id=1237 如果没有相同的数不能配对的限制 那就是排好序后 Σ abs(ai-bi) 相同的数不能配对 交 ...

  2. 洛谷 P2507 [SCOI2008]配对

    P2507 [SCOI2008]配对 题目背景 四川NOI2008省选 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值 ...

  3. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  4. 洛谷P2507 [SCOI2008]配对

    题目背景 四川NOI2008省选 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配对. ...

  5. [SCOI2008]配对

    题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配对.例如A={5,6,8},B={5, ...

  6. 洛谷P2507 [SCOI2008]配对 [DP,贪心]

    题目传送门 配对 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配对.例如A={5,6 ...

  7. 1237: [SCOI2008]配对

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1789  Solved: 715[Submit][Status][Discuss] Descripti ...

  8. P2507 [SCOI2008]配对

    题目背景 四川NOI2008省选 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配对. ...

  9. [SCOI2008]配对 (贪心,动态规划)

    题目链接 Solution 很妙的DP,很妙的贪心. 首先考虑,如果说没有那个相同的不能配对的情况; 那么我们肯定是直接排两遍序,然后一一对应即可. 但是是有限制的,同时我们可得几个条件供贪心: 每个 ...

随机推荐

  1. HDU 3966 Aragorn's Story 动态树 树链剖分

    Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. Using Sphinx to index CNS database

    1, look at the sphinx.person.address.conf to see how to configure the conf file2, index the database ...

  3. Ubuntu Linux系统下apt-get命令详解

    整理了Ubuntu Linux操作系统下apt-get命令的详细说明,分享给大家.常用的APT命令参数: apt-cache search package 搜索包 apt-cache show pac ...

  4. rstPixelType Constants

    Constant Value Description PT_UNKNOWN -1 Pixel values are unknown. PT_U1 0 Pixel values are 1 bit. P ...

  5. Myeclipse或Eclipse中搭建Easyui环境

    1.下载Easyui.网址:http://www.jeasyui.com/download/index.php 2.下载后解压,里面的demo文件夹可以不用添加到工程中. 3.如图所示在工程datag ...

  6. FusionChart实现柱状图、饼状图的动态数据显示 附Demo

    最近做的项目中需要用饼状图显示——'问卷调查'的统计结果(之前用过FusionChart做过柱状图的数据展示,那还是两年前的事了),在网上查了下FusionChart实现饼状图显示方面的资料,却发现资 ...

  7. USACO Section 1.1 Friday the Thirteenth 解题报告

    题目 题目描述 黑色星期五是否真的是一件不同寻常的事情?按理来说每个月的13号可能是星期一,或者是星期二...或者是星期天,但是黑色星期五的存在让我们不禁开始猜想,难道每个月的13号刚好是星期五的频率 ...

  8. libevent和libev的区别对比(二)

    之前有一篇文章描述过一些对比: http://www.cnblogs.com/charlesblc/p/6078029.html 这里在代码和应用方面再说一下. 看一下两边的Helloworld基本就 ...

  9. 浏览器UA汇总

    UA  -- uesr-agent -- 用户代理,是服务器判断请求的种类,比如:使用PC和手机访问一个网站,呈现的画面是不一样的. 原理就是设备的用户代理不同 1 主要浏览器 safari 5.1 ...

  10. phantom" breakpoints

    http://stackoverflow.com/questions/723199/why-does-my-eclipse-project-have-phantom-debugger-breakpoi ...