A - Search for Pretty Integers

题目大意:

  给两组数。给一个叫“pretty integer”的定义。

  如果这个数至少有一位来自第一个数组,又有一位来自第二个数组,那么这个数就是 pretty integer。

  要求找出最小 pretty integer。

  输入一行两个整数:n,m。分别代表接下来的两个数组大小(n,m ∈ [1,9])。

  输入一行n 个整数:代表第一个数组(n[i] ∈ [1,9])。

  输入一行m 个整数:代表第二个数组(m[i] ∈ [1,9])。

  输出一行一个整数:代表所得出的最小 pretty integer。

  样例输入:2 3      8 8

       4 2      1 2 3 4 5 6 7 8

       5 7 6     8 7 6 5 4 3 2 1

  样例输出:25       1

解题思路:

  暴力查询组合所有符合题意的数,不断更新最小值,如果组合出11的倍数,最小值更新成1,2,3...等等。

A C 代码:

 1 import java.util.*;
 2
 3 public class Main{
 4     public static void main(String[] args){
 5         Scanner sc = new Scanner(System.in);
 6         while(sc.hasNext()){
 7             int n = sc.nextInt();
 8             int m = sc.nextInt();
 9             int a[] = new int[n];
10             int b[] = new int[m];
11             for(int i = 0;i < n;i ++){
12                 a[i] = sc.nextInt();
13             }
14             for(int i = 0;i < m;i ++){
15                 b[i] = sc.nextInt();
16             }
17             Arrays.sort(a);
18             Arrays.sort(b);
19             int ans = 10000000;
20             for(int i = 0;i < n;i ++){
21                 for(int j = 0;j < m;j ++){
22                     if(a[i] == b[j]){ans = Math.min(ans,a[i]);  }
23                     ans = Math.min(ans,Math.min(a[i],b[j]) * 10 + Math.max(a[i],b[j]));
24                 }
25             }
26             System.out.println(ans);
27         }
28     }
29 }

View Code

B - Maximum of Maximums of Minimums

题目大意:

  给出一组数,将这组数分割成若干个集合。

  求出每个集合中的最小值的最大值的最大可能值。

  输入一行两个整数:n,k。n代表接下来有n个数,k代表恰好分成若干个区间(1 <= k <= n <= 1e5)。

  输入一行n 个整数:代表被分割的集合(每个数字 ∈ [-1e9,1e9])。

  输出一行一个整数:代表得出的最大值。

  样例输入:5 2      5 1

       1 2 3 4 5   -4 -5 -3 -2 -1

  样例输出:5       -5

解释样例:

  第一个集合被拆分成两个有如下可能:

  可以被拆分成{1}{2,3,4,5},最大值是2;

  可以被拆分成{1,2}{3,4,5},最大值是3;

  可以被拆分成{1,2,3}{4,5},最大值是4;

  可以被拆分成{1,2,3,4}{5},最大值是5;

  所以输出5。

解题思路:

  本题稍作思考,即可发现规律。

  正好被分成一个集合,最大值就是这组数据的最小值。

  大于等于3个集合,最大值就是这组数据的最大值。

  只需将最大值独立出来,剩下的集合分成两个集合,就能得到这个答案。

  若恰好分成两个集合,从解释样例一可以看出,只需要比较这组数据的第一个值与最后一个值,然后输出这两个中的较大值即可。

A C 代码:

 1 import java.util.*;
 2
 3 public class Main{
 4     public static void main(String[] args){
 5         Scanner sc = new Scanner(System.in);
 6         while(sc.hasNext()){
 7             int n = sc.nextInt();
 8             int k = sc.nextInt();
 9             int m[] = new int[n];
10             int max = -1000000002;
11             int min = 1000000002;
12             for(int i = 0;i < n;i ++){
13                 m[i] = sc.nextInt();
14                 if(m[i] > max){max = m[i];}
15                 if(m[i] < min){min = m[i];}
16             }
17             if(k == 1){System.out.println(min);}
18             else if(k == 2){System.out.println(Math.max(m[0],m[n - 1]));}
19             else{System.out.println(max);}
20         }
21     }
22 }

View Code

C - Maximum splitting

题目大意:

  求任意一个数能否被分成若干个合数的和(合数,即非素数,不包括1和0)。若能,输出最多能分割的数量,若不能输出 -1。

  输入一行一个整数:q,代表共有多少个数被判断(q ∈ [1,1e5])。

  输入q 行q 个整数:每个数都进行上述计算(q[i] ∈ [1,1e9])。

  输出q 行q 个整数:代表得出的结果。

  样例输入:1      2      3

       12      6      1

              8      2

                    3

  样例输出:3      1      -1

              2      -1

                    -1

解题思路:

  根据样例,1,2,3都输出 -1。

  要想拆分的最多,应该保证每个合数都尽可能小。

  因为最小的合数是4,最小的奇数和数是9,但是不是所有偶数都能被4整除,所以需要引进第二个合数6。

  然后思路十分明确,奇数先减9,然后一直减6直到剩下的数能被4整除。偶数则不需要减9,直接进行后面的计算。

A C 代码:

 1 import java.util.*;
 2
 3 public class Main{
 4
 5     public static void main(String[] args){
 6         Scanner sc = new Scanner(System.in);
 7         while(sc.hasNext()){
 8             int n = sc.nextInt();
 9             for(int I = 0;I < n;I ++){
10                 int ans = 0;
11                 int t = sc.nextInt();
12                 if(t <= 3){System.out.println("-1");}
13                 else if(t == 5 || t == 7 || t == 11){System.out.println("-1");}
14                 else{
15                     if(t % 2 == 1){t = t - 9;ans ++;}
16                     while(t % 4 != 0){
17                         t = t - 6;
18                         ans ++;
19                     }
20                     ans = ans + t / 4;
21                     System.out.println(ans);
22                 }
23             }
24         }
25     }
26 }

View Code

转载于:https://www.cnblogs.com/love-fromAtoZ/p/7736147.html

Codeforces #440.Div.2相关推荐

  1. Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)

    一场挺简单的CF,但是我打炸了啊 A. Search for Pretty Integers time limit per test 1 second memory limit per test 25 ...

  2. 【codeforces】【比赛题解】#872 CF Round #440 (Div.2)

    链接. [A]寻找漂亮数字 题意: 给定了两列非零数字. 我们说一个数是漂亮的,当它的十进制表达中有至少一个数从数列一中取出,至少有一个数从数列二中取出. 最小的漂亮数字是多少? 输入: 第一行两个数 ...

  3. [Codeforces] #603 (Div. 2) A-E题解

    [Codeforces]1263A Sweet Problem [Codeforces]1263B PIN Code [Codeforces]1263C Everyone is a Winner! [ ...

  4. Codeforces #539 (Div. 1) A. Sasha and a Bit of Relax (异或 前缀和)

    题目连接: https://codeforces.com/problemset/problem/1109/A 题目大意: 给定n个数 问有多少个偶数长度的区间l,r 使得mid=(l+r-1)/2,l ...

  5. Codeforces CodeCraft-20 (Div. 2) C. Primitive Primes

    链接:http://codeforces.com/contest/1316/problem/C 题意: 给出两个方程: f(x)=a0+a1x+a2x2+...+an−1xn−1g(x)=b0+b1x ...

  6. Codeforces #594 (Div. 1) A. Ivan the Fool and the Probability Theory(DP)

    原题链接:https://codeforces.com/contest/1239/problem/A 大佬用来热身的小题 而我却迟迟想不出来 当n和m都为1的时候显然只有两种情况 当n为1,m不为1的 ...

  7. Codeforces #264 (Div. 2) D. Gargari and Permutations

    Gargari got bored to play with the bishops and now, after solving the problem about them, he is tryi ...

  8. codeforces #222 div 1 D Developing Game

    很神奇的线段树 #include<iostream> #include<cstdio> #include<algorithm> #include<cstrin ...

  9. (Incomplete) Codeforces #395 (Div 1 + Div 2)

    A. Taymyr is calling you 数据比较小,可以枚举每一次call的时间i*n, 然后检查 (i*n) % m 是否为0.如果为0,则答案加一.这种方法不需要想太多也不需要写太多. ...

最新文章

  1. 实现费用管理 mysql_移动电费房租管理系统的设计与实现(IDEA,MySQL)
  2. c语言中说取消标识符是,2019年全国计算机二级C语言考试考点解析(3)
  3. 完美世界手游不显示新服务器,完美世界手游手Q互通-黑曜开服时间表_完美世界手游新区开服预告_第一手游网手游开服表...
  4. collapse mode 严重_从泛化性到Mode Collapse:关于GAN的一些思考
  5. 项目奖金一般有多少_全年一次性奖金如何进行纳税筹划?
  6. 电大 计算机应用基础 专科 教材,2016年电大计算机应用基础(专科).doc
  7. php毕业设计遇到的问题,常见问题_php毕业设计_php课程设计_php大作业_原创作品下载网...
  8. python md5解密_python 生成文件MD5码
  9. unity怎么bake地形上的植被_“烧烤”是quot;barbecuequot;,那“烤串”的英语怎么说?一定要看看!...
  10. html页面如何接受提示参数,html页面如何象asp一样接受参数_javascript教程
  11. python phpstudy_phpStudy后门分析及复现
  12. 训练BERT,我只花了一半的时间
  13. 全新激光雕刻机切割机打标机写字机三轴步进电机运动控制板 控制板硬件软件全部是自己开发的
  14. 【机器人学习】机器人轨迹规划A※算法代码
  15. 华为鸿蒙麒麟玉兔_鸿蒙、麒麟、鲲鹏……这是属于中华的浪漫
  16. AltiumDesigner 如何快速查看任意两个元器件或者芯片的布线网络线长!
  17. python发送cmd命令_python 执行终端/控制台命令的例子 如何使用python在同一个控制台发送cmd命令...
  18. 加州房价预测数据预处理
  19. Bmob后端云——Android再也不担心没有后台了
  20. 实验四+070+胡阳洋

热门文章

  1. foreach形式的for语句
  2. Keil Debug(printf) Viewer的使用
  3. 程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26
  4. 第一个程序---汇编学习笔记
  5. CPU处理器架构和工作原理浅析
  6. [以太坊源代码分析]III. 挖矿和共识算法的奥秘
  7. Android Linker学习笔记
  8. Hyperledger Fabric 排序服务核心原理和工作过程
  9. python打架动态图_20个GIF动图解释令程序员崩溃的瞬间 - 里维斯社
  10. python数据分析第七章实训3_《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结...