• 刚开始拿到这题很懵逼,知道了别人的思路之后开始写,但是还是遇到很多坑,要求求P2/S最大。p=a b。就是求(a2+ b2 +2ab)/ab最大,也就是a/b +b/a最大。那么题意就很明显了。
    但是处理的时候还要注意,刚开始用map存入数据,保存数量大于2的数据。接着就是找最小的,千万不要用数组进行双重循环查找,这样的O(n*n)会爆时,要先排序O(lgn);然后对相邻的遍历比较一遍就可以了O(n)。当数据量很大的时候差距很明显。
    附上ac代码(java)
package codeforces504;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/** 贪心 数学 排序*/
public class testC {public static void main(String[] args) throws IOException {// TODO 自动生成的方法存根StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));in.nextToken();int n=(int)in.nval;for(int i=0;i<n;i++){in.nextToken();int num=(int)in.nval;int a[]=new int[num];Map<Integer,Integer>map=new HashMap();     for(int j=0;j<num;j++){in.nextToken();int q=(int)in.nval;if(map.containsKey(q)) {map.put(q, map.get(q)+1);}else map.put(q, 1);}int index=0;int a2=0;int b2=0;boolean b=false;for(int q:map.keySet()){if(map.get(q)>=4) {a2=q;b2=q;b=true;break;}elseif(map.get(q)>=2) {a[index++]=q;}}if(!b) {Arrays.sort(a,0, index);//0-到index-1排序      double min=Double.MAX_VALUE;;for(int q=0;q<index-1;q++){double d=(double)a[q]/(double)a[q+1]+(double)a[q+1]/(double)a[q];if(d<min) {min=d;a2=a[q];b2=a[q+1];}         }}out.println(a2+" "+a2+" "+b2+" "+b2);out.flush();}}
}

codeforces Educational Codeforces Round 49 (Rated for Div. 2) C题相关推荐

  1. Educational Codeforces Round 103 (Rated for Div. 2)前四题

    Educational Codeforces Round 103 (Rated for Div. 2) 第二次被别人hack,悲 A - K-divisible Sum 题意 给定两个整数 n,kn, ...

  2. Educational Codeforces Round 133 (Rated for Div. 2) D题

    题目链接:Problem - D - Codeforces 一道非常经典的完全背包求方案数题: 首先先写好我们的状态转移方程,那什么代表体积,什么代表物品数目呢: 其实很清晰k, k + 1 ... ...

  3. Educational Codeforces Round 49 (Rated for Div. 2)切题报告

    A. Palindromic Twist 原题地址 题目大意:给你t个问题,每一个问题里包含一个n和一串字符串,n代表这串字符串有n个字母,每一个字母要求必须变换一次,也只能变换一次,变换的要求是只能 ...

  4. Educational Codeforces Round 100 (Rated for Div. 2)补题记录

    总结:感觉这个educational场好难啊(蒟蒻视角),又被虐了,唉 A. Dungeon 每一枪会造成1点伤害对一个单位,但是当开7的倍数枪时会造成3点伤害 每7次一个轮回,一个完整的轮回共造成9 ...

  5. Educational Codeforces Round 119 (Rated for Div. 2) 做题日志

    A Equal or Not Equal 题意 给你一个字符串, s i = = E si == E si==E表示 a ( i ) = = a ( i + 1 ) a(i) == a(i+1) a( ...

  6. Educational Codeforces Round 33 (Rated for Div. 2) B题

    B. Beautiful Divisors Recently Luba learned about a special kind of numbers that she calls beautiful ...

  7. Educational Codeforces Round 131 (Rated for Div. 2)刷题记录OR题解

    题解 A Grass Field 题面翻译 给出一个 2×22 \times 22×2 的矩阵,矩阵的值都是 000 和 111,定义一次操作:选择一个点,将其所在的行和列的点的值全部修改为 000, ...

  8. 【Educational CF Round 86 (Rated for Div. 2) / 1342 A + B】- A. Road To Zero + B. Binary Perio - 水题

    目录 A. Road To Zero 题目大意 思路 代码 B. Binary Period 题目大意 思路 代码 A. Road To Zero time limit per test :1 sec ...

  9. Educational Codeforces Round 74 (Rated for Div. 2)

    Educational Codeforces Round 74 (Rated for Div. 2) 原题地址 # 题目 分数 是否AC A Prime Subtraction 900 ✅ B Kil ...

最新文章

  1. RxJava 过滤操作符skip 与 skipLast
  2. IAR8.32.4 for ARM安装预注册教程
  3. wince中的背光灯控制
  4. modelsim 下载链接
  5. scipy安装_4. Python--Scipy库(下/13-17)
  6. 软件工程考试归纳知识点
  7. Android-DRM详解
  8. python自动化办公-提取excal表格某列数据
  9. 免费 whois 查询 API
  10. AMBA总线-结合axi-vip对axi4协议的理解1
  11. 计算机网络ospf实验报告,计算机网络ospf实验报告.pdf
  12. php微信支付返回值,php微信支付全记录
  13. 《编程之美》 查找最大(小)的k个元素
  14. 108页《SpringBoot 学习笔记完整教程》PDF附下载
  15. 地表真实温度,辐射温度,亮度温度的区别
  16. 调用短信、电话、邮件、Safari浏览器的系统API
  17. 什么是 Kubernetes HPA
  18. 基于VBS的恶搞/表白程序
  19. 一句话证明你是java开发_如何用一句话证明你是程序员?41 个答案揭晓!
  20. 如何恢复丢失的桌面文件

热门文章

  1. 数据科学导论 考试有感 2019 山东大学
  2. 程序设计中的几种设计原则
  3. buu [BJDCTF 2nd]燕言燕语-y1ng
  4. optee中添加一个中断以及底层代码的相关解读
  5. TEE Internal core API介绍(globalplatform)
  6. cve-bin-tool 证书错误的解决方法
  7. 常用ARM指令总结(未完待续)
  8. 6、Java Swing JTextField:单行文本框组件
  9. 1.1 对象的概念及面向对象的三个基本特征
  10. 1030 Travel Plan (30 分) 【难度: 中 / 知识点: 最短路】