GCJ——Minimum Scalar Product(2008 Round1 AA)
题意:
给定两组各n个数,可任意调整同一组数之中数字的顺序,求 sum xi*yi i=1..n的最小值。
Small: n<=8
abs xy,yi<=1000
Large: n<=800
abs xi,yi <= 100000
假如两个数字之和为固定,那么两数字之积最大当且仅当两两数字尽量接近。
所以,直觉告诉我们——将x升序排列,y降序排列,所得对应积最大。
因为顺序可以任意调整,所以我们完全可以固定x的数字顺序,仅仅思考y的数字顺序。
验证:
当n=2时:
当仅有两个数的时候 x1,x2,y1,y2 ,假定标号大的数字也大。
x1*y2+x2*y1 - (x1*y1 + x2*y2)
x1(y2 - y1) + x2 (y1-y2)
(x1-x2)(y2-y1) < 0
显然,n=2的情况下是符合的。
当n>2时:
假设最优解中,存在 ya,yb,有b>a且ya>yb(不是按照降序排列的),显然根据n=2,交换他们的位置,就会得到更小的答案。
所以,假设正确。
另外,还有很重要的一点,就是在Larger数据下,xi*yi是可能会溢出int的(10^10),数据要选择好。
GCJ——Minimum Scalar Product(2008 Round1 AA)的更多相关文章
- [Google Code Jam (Round 1A 2008) ] A. Minimum Scalar Product
Problem A. Minimum Scalar Product This contest is open for practice. You can try every problem as ...
- codejam环境熟悉—Minimum Scalar Product
今天准备熟悉一下codejam的在线编程,为google的笔试做准备,因此按照codejam上对新手的建议,先用了一个简单的题目来弄清楚流程.记录一下需要注意的地方. 1.输入输出 输入输出重定位 ...
- GCJ 2008 Round 1A Minimum Scalar Product
https://code.google.com/codejam/contest/32016/dashboard 题目大意: GCJ(google code jam)上的水题.下周二有比赛,来熟悉熟悉. ...
- GCJ 2008 Round 1A Minimum Scalar Product( 水 )
链接:传送门 题意:给两个向量 v1 = { x1 , x2 , x3 , x4 .... } , v2 = { y1 , y2 , y3 , y4 ...... } 允许任意交换 v1 和 v2 各 ...
- GCJ:2008 Round1AA-Minimum Scalar Product(有序数组倒序乘积和最小)
题目链接:https://code.google.com/codejam/contest/32016/dashboard#s=p0 Minimum Scalar Product This contes ...
- [UCSD白板题] Minimum Dot Product
Problem Introduction The dot product of two sequences \(a_1,a_2,\cdots,a_n\) and \(b_1,b_2,\cdots,b_ ...
- minimum viable product
w https://en.wikipedia.org/wiki/Minimum_viable_product
- 【刷题记录】GCJ 2.71~2.72
GCJ 271 [题目大意] Minimum Scalar Product 有两个东西(滑稽)v1=(x1,x2,x3,……,xn)和v2=(y1,y2,……yn),允许任意交换v1和v2中各数字的顺 ...
- ProgrammingContestChallengeBook
POJ 1852 Ants POJ 2386 Lake Counting POJ 1979 Red and Black AOJ 0118 Property Distribution AOJ 0333 ...
随机推荐
- Notepad++ 32 位 PluginManager 下载
github 下载地址:(有 64 位的哦) https://github.com/bruderstein/nppPluginManager/releases 1. PluginManager 管理插 ...
- StartWith 测试
var clientConfiguration = GetConfiguration("couchbase.json"); ClusterHelper.Initialize(cli ...
- 1、HTML基础总结 part-1
1.基本标签属性 <html> <!--属性和属性值对大小写不敏感. 不过,万维网联盟在其 HTML 4 推荐标准中推荐小写的属性/属性值. 而新版本的 (X)HTML 要求使用小写 ...
- Windows核心编程小结1
这本书绝对经典,看看定会增加不少知识.当然这本书有很多东西比<Windows程序设计第五版>中的更加详细. 1.Unicode:宽字节字符集 这是一个国际的字符标准,16位,最大可支持65 ...
- 【转】MapReduce:默认Counter的含义
MapReduce Counter为提供我们一个窗口:观察MapReduce job运行期的各种细节数据.今年三月份期间,我曾经专注于MapReduce性能调优工作,是否优化的绝大多评估都是基于这些C ...
- python IDLE简介及使用技巧
前言:本人环境windows 7 64位,python2.7 IDLE简介: 是python 的可视化GUI编辑器 可以逐行输入命令 可方便的进行复制.粘贴等操作 常用命令行命令: import mo ...
- Leetcode 654.最大二叉树
最大二叉树 给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左子树是通过数组中最大值左边部分构造出的最大二叉树. 右子树是通过数组中最大值右边部 ...
- [转]Jupyter NoteBook 的快捷键使用指南
- Windows下Git多账号ssh-key(复制自己用)
Windows下Git多账号配置,同一电脑多个ssh-key的管理 这一篇文章是对上一篇文章<Git-TortoiseGit完整配置流程>的拓展,所以需要对上一篇文章有所了解,当然直接往下 ...
- bable
Babel是一个javascrpt编译器,能将es6转换为es5代码.并且通过插件的形式可以灵活的扩展. 从根目录读取.babelrc文件中读取配置..babelrc是一个json文件 配置 plug ...