zoukankan      html  css  js  c++  java
  • GCJ 2008 Round 1A Minimum Scalar Product( 水 )


    **链接:****传送门 **

    题意:给两个向量 v1 = { x1 , x2 , x3 , x4 .... } , v2 = { y1 , y2 , y3 , y4 ...... } 允许任意交换 v1 和 v2 各自向量的分量顺序,计算 v1,v2 内积 ( x1 * y1 + x2 * y2 .... )的最小值

    思路:根据样例可大胆猜测内积最小值应该为 v1 的最小值 × v2 的最大值 , v1 的次小值 × v2 的次大值 ...... 也就是需要排两次序即复杂度为 O( nlogn )是可以通过大数据的


    /*************************************************************************
        > File Name: gcj_2008_round1_A.cpp
        > Author:    WArobot 
        > Blog:      http://www.cnblogs.com/WArobot/ 
        > Created Time: 2017年06月19日 星期一 14时10分49秒
     ************************************************************************/
    
    #include<bits/stdc++.h>
    using namespace std;
    
    #define ll long long
    const int MAX_N = 1002;
    int v1[MAX_N] , v2[MAX_N];
    int n;
    
    bool cmp(int a,int b){
    	return a > b;
    }
    int main(){
    	int t , kase = 0;
    	freopen("A-small-practice.in","r",stdin);            // 测试小数据
    	freopen("A-small-practice.out","w",stdout);      // 测试小数据
    	scanf("%d",&t);
    	while(t--){
    		scanf("%d",&n);
    		for(int i = 0 ; i < n ; i++)	scanf("%d",v1+i);
    		for(int i = 0 ; i < n ; i++)	scanf("%d",v2+i);
    		sort(v1,v1+n);
    		sort(v2,v2+n,cmp);
    		ll ret = 0;
    		for(int i = 0 ; i < n ; i++){
    			ret += (ll)v1[i]*v2[i];
    		}
    		printf("Case #%d: %lld
    ",++kase , ret);
    	}
    	return 0;
    }
  • 相关阅读:
    产品化软件开发与项目化软件开发的对比
    4.ThinkPHP 3.1.2 输出和模型使用
    ThinkPHP 3.1.2 输出和模型使用1
    事务管理配置与@Transactional注解使用
    logstash 区分多个文件index端配置
    logstash 读取多个系统相同文件shipper端
    centos 6.5安装git
    如何查看PHP的配置信息
    MVC模式和URL访问
    1.环境搭建
  • 原文地址:https://www.cnblogs.com/WArobot/p/7048607.html
Copyright © 2011-2022 走看看