Codeforces #439.Div.2

Posted 薛定谔的Submit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces #439.Div.2相关的知识,希望对你有一定的参考价值。

A - The Artful Expedient

题目大意:

  一对基友在玩♂游♂戏♂。每个人有一个数列,两个数列中所有的数字都不一样。

  规则是,在两个数列中各取出一个数(a,b),将所有不同的数对全部取出来。

  计算 a^b ,如果得到的值在两个数列其中的一个里,那么就加一分。

  结束后计算得分,如果是奇数,则是Koyomi获胜,偶数则是Karen获胜。

  输入一行一个整数:代表每个人有n个数。n ∈ [1,2000]。

  输入一行n 个整数:代表Koyomi的数列。数列中数字的范围是[1,2e6]。

  输入一行n 个整数:代表Karen的数列。数列中数字的范围是[1,2e6]。

  输出一个字符串:代表胜利者。

  样例输入:3      5

       1 2 3    2 4 6 8 10

       4 5 6    9 7 5 3 1

  样例输出:Karen    Karen

解题思路:

  此题可以用暴力求解,但是却又更加优美的过题方式,利用异或运算的规律即可。

  在异或运算中,若存在 a ^ b = c 那么也一定存在 a ^ c = b 以及 b ^ c = a。就像是一个环一样。

  那么假设两个数列为 x,y。若a在x中,b在y中,且a ^ b = c,c在x或y中。

  那么遍历x时,运算到a的时候,得到一分,运算到c的时候又得到了一分。

  所以一旦有符合条件的情况出现,那么必定是成对出现的。

  所以一定有偶数的分数,Karen一定胜利。

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             for(int i = 0;i < n;i ++){
 9                 int t = sc.nextInt();
10             }
11             for(int i = 0;i < n;i ++){
12                 int t = sc.nextInt();
13             }
14             System.out.println("Karen");
15         }
16     }
17 }
View Code

B - The Eternal Immortality

题目大意:

  给你两个数a,b(a <= b && a,b ∈ [0,1e18])。

  求出(b!/a!)的个位数字。

  输入一行两个整数:a,b。

  输出一行一个整数:代表(b!/a!)的个位数字。

  样例:2 4 --> 2 

     0 10 --> 0

     107 109 --> 2

解题思路:

  明显要进行 %10 的处理。

  而且结果跟两个数字的差有关。

  但是部分人可能只想到了如果差大于十,结果都是0。

  其实仔细想一下,两个数的差只要大于5,个位数就已经一直是0了。

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             long x = sc.nextLong();
 8             long y = sc.nextLong();
 9             long t = y - x;
10             long ans = 1;
11             if(t >= 5){System.out.println("0");}
12             else{
13                 while(t > 0){
14                     ans = ans * (y % 10);
15                     y --;
16                     t --;
17                 }
18                 System.out.println(ans % 10);
19             }
20         }
21     }
22 }
View Code

C - The Intriguing Obsession

 





以上是关于Codeforces #439.Div.2的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #439 (Div. 2) Problem B (Codeforces 869B)

Codeforces Round #439 (Div. 2) Problem A (Codeforces 869A) - 暴力

Codeforces Round #439 (Div. 2) Problem C (Codeforces 869C) - 组合数学

Codeforces #439.Div.2

Codeforces Round #439 (Div. 2)

Codeforces Round #439 (Div. 2) Problem E (Codeforces 869E) - 暴力 - 随机化 - 二维树状数组 - 差分