题目:非常多人在一起吃饭。有两组单支的筷子,定义badness为一对筷子长度差的平方,求最小的badness和。

分析:dp,最大公共子序列类似物。

这里利用数学关系找到一个结论:

a < b < c < d 时,(c - a)^2 +(d-b)^2 <(d-a^2)+(c-b)^2;(展开就可以)

所以最优解一定不会交叉,然后先用元素少的串,求长串的LCS的就可以。

权值计算用长度差的平方,而不是1。

这里,能够设置两种状态f(i。j):

1.以a[i]。b[j]为结束标志的最优解,则 T(n)= n^3    { 须要遍历前一位置,非常多反复 };

2.a[1..i]与b[1..j]两区间的最优解,则T(n)= n^2   { 仅仅取决本位置选否,去掉反复 }。

说明:(2011-09-24 05:03)。

#include <stdio.h>
#include <stdlib.h> #define min( a, b ) ((a)<(b)?(a):(b)) int A[ 501 ];
int B[ 501 ];
int T[ 501 ][ 501 ];
int S[ 501 ][ 501 ]; int cmp( const void*a, const void*b )
{
return *((int *)a) - *((int *)b);
} int f( int *a, int *b, int N, int M )
{
for ( int i = 1 ; i <= N ; ++ i )
for ( int j = i ; j <= M ; ++ j )
S[ i ][ j ] = (a[ i ]-b[ j ])*(a[ i ]-b[ j ]);
for ( int i = 1 ; i <= N ; ++ i )
for ( int j = i ; j <= M ; ++ j )
T[ i ][ j ] = 0xfffffff;
for ( int i = 0 ; i <= M ; ++ i )
T[ 0 ][ i ] = 0;
for ( int i = 1 ; i <= N ; ++ i ) {
T[ i ][ i ] = T[ i-1 ][ i-1 ] + S[ i ][ i ];
for ( int j = i+1 ; j <= M ; ++ j )
T[ i ][ j ] = min( T[ i-1 ][ j-1 ]+S[ i ][ j ], T[ i ][ j-1 ] );
} return T[ N ][ M ];
} int main()
{
int t,N,M,S;
scanf("%d",&t);
while ( t -- ) {
scanf("%d",&N);
for ( int i = 1 ; i <= N ; ++ i )
scanf("%d",&A[ i ]);
scanf("%d",&M);
for ( int i = 1 ; i <= M ; ++ i )
scanf("%d",&B[ i ]);
qsort( &A[ 1 ], N, sizeof( int ), cmp );
qsort( &B[ 1 ], M, sizeof( int ), cmp ); if ( N <= M )
printf("%d\n",f( A, B, N, M ));
else
printf("%d\n",f( B, A, M, N ));
}
return 0;
}

zoj 2068 - Chopsticks的更多相关文章

  1. ZOJ 1234 Chopsticks

    原题链接 题目大意:有这么一个公式 A,B,C(A<=B<=C), (A-B)^2来衡量这对数字的好坏,值越小越好.现在给出一个数组,要求每三个配对,最后得到的每组值总和最小. 解法:我是 ...

  2. ZOJ 1234 Chopsticks(动态规划)

    Chopsticks 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=234 题目大意:给定n个筷子的长度,取k+8套筷 ...

  3. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  4. ZOJ题目分类

    ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...

  5. ZOJ People Counting

    第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ  3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...

  6. ZOJ 3686 A Simple Tree Problem

    A Simple Tree Problem Time Limit: 3 Seconds      Memory Limit: 65536 KB Given a rooted tree, each no ...

  7. ZOJ Problem Set - 1394 Polar Explorer

    这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...

  8. ZOJ Problem Set - 1392 The Hardest Problem Ever

    放了一个长长的暑假,可能是这辈子最后一个这么长的暑假了吧,呵呵...今天来实验室了,先找了zoj上面简单的题目练练手直接贴代码了,不解释,就是一道简单的密文转换问题: #include <std ...

  9. ZOJ Problem Set - 1049 I Think I Need a Houseboat

    这道题目说白了是一道平面几何的数学问题,重在理解题目的意思: 题目说,弗雷德想买地盖房养老,但是土地每年会被密西西比河淹掉一部分,而且经调查是以半圆形的方式淹没的,每年淹没50平方英里,以初始水岸线为 ...

随机推荐

  1. C#数组排序以及比较对象的大小

    先来看个小例子吧 ,,,,,}; Array.Sort(intArray); Array.ForEach<int>(intArray,(i)=>Console.WriteLine(i ...

  2. LOJ N!在不同进制的位数

    lightoj1045 - Digits of Factorial (N!不同进制的位数) 对于一个B进制的数,只需要对其取以B的对数就可以得到他在B进制情况下的位数(取了对数之后可能为小数,所以还需 ...

  3. Oracle的隔离级别

    隔离级别(isolation level)       隔离级别定义了事务与事务之间的隔离程度.     隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差:隔离程度越低,数据库的并发性越 ...

  4. UIScrollView/UITableView 一直显示滚动条(ScrollBar Indicators)、滚动条Width(宽度)、滚动条Color(颜色)

    在 IOS 中,对 UIScrollView 的滚动条(ScrollBar Indicators)的自定义设置接口,一直都是很少的.除了能自定义简单的样式(UIScrollViewIndicatorS ...

  5. wireshark学习笔记

    之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包. 记得大学的 ...

  6. 关于Android内存优化你应该知道的一切

    介绍 在Android系统中,内存分配与释放分配在一定程度上会影响App性能的—鉴于其使用的是类似于Java的GC回收机制,因此系统会以消耗一定的效率为代价,进行垃圾回收. 在中国有句老话:”由俭入奢 ...

  7. dedecms安装完成后登录后台出现空白

    今天家里的电脑上新装DEDE5.7后台登陆后竟然一片空白经过分析代码,发现登录验证的时候用到了这个函数session_register(我的环境:win7+PHP5.4.3+Apache2.2.22+ ...

  8. UE把环境变量Path改了

    为了比较个文件,装了UE. 文件比较完了,环境变量也被改了. 改还不是写添加式的改,是写覆盖式的改. 搞得ant都起不动了,一看Path被改的那样(C:\hy\soft\ultraedit\Ultra ...

  9. opengl加载多个3ds模型失败记

    VC6 下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 opengl环境配置 http://blog.csdn.net/bcbo ...

  10. 关于使用Axure RP进行原型开发的一些心得体会

    Axure RP(Axure Rapid Prototyping)是一款高速实现.准确表达.带有交互效果且易于上手的原型设计工具. 本人在曾參与某系统需求分析时開始接触Axure RP,初步掌握了一定 ...