Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz

Einführung

Dieses Thema

AtCoder beginner Contets C - Reconciled? Difficulty: 647

Dieses Thema, Bodenreiten Ruby Es ist das Produkt der Multiplikation des Hundes "N" und des Affen "M". Wenn Sie die Bodenkraft zu einer Funktion machen, können Sie sie für spätere Wettbewerbe verwenden.

ruby.rb


n, m = gets.split.map(&:to_i)
MOD = 1_000_000_007
def nPk(n, k)
  r = 1
  while k > 0
    r *= n
    r %= MOD
    n -= 1
    k -= 1
  end
  r
end
if (n - m).abs > 1
  puts 0
elsif n == m
  puts nPk(n, n) * nPk(m, m) * 2 % MOD
else
  puts nPk(n, n) * nPk(m, m) % MOD
end

nCk.rb


def nCk(n, k)
  r, j = 1, 1
  return 0 if k > n || k < 0
  k = n - k if n - k < k
  while j <= k
    r *= n
    n -= 1
    r /= j
    j += 1
  end
  r
end

Dies ist auch wiederverwendbar ~~ Kopie ~~. Python

python.py


n, m = map(int, input().split())
MOD = 1000000007
def nPk(n, k):
    r = 1
    while k > 0:
        r *= n
        r %= MOD
        n -= 1
        k -= 1
    return r
if abs(n - m) > 1:
    print(0)
elif n == m:
    print(nPk(n, n) * nPk(m, m) * 2 % MOD)
else:
    print(nPk(n, n) * nPk(m, m) % MOD)

Perl

perl.pl


chomp (my ($n, $m) = split / /, <STDIN>);
my $MOD = 1_000_000_007;
sub nPk {
  my ($n, $k) = @_;
  my $r = 1;
  while ($k) {
    $r *= $n;
    $r %= $MOD;
    $n -= 1;
    $k -= 1;
  }
  $r;
}
if (abs($n - $m) > 1) {
  print "0\n";
} elsif ($n == $m) {
  print (nPk($n, $n) * nPk($m, $m) * 2 % $MOD), "\n";
} else {
  print (nPk($n, $n) * nPk($m, $m) % $MOD), "\n";
}

nCk.pl


sub nCk {
  my ($n, $k) = @_;
  my ($r, $j) = (1, 1);
  return 0 if $k > $n || $k < 0;
  $k = ($n - $k) if ($n - $k) < $k;
  while ($j <= $k) {
    $r *= $n--;
    $r /= $j++;
  }
  $r;
}

Java

java.java


import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        sc.close();
        int MOD = 1_000_000_007;
        if (Math.abs(n - m) > 1) {
            System.out.println(0);
        } else if (n == m) {
            System.out.println((((nPk(n, n, MOD) * nPk(m, m, MOD)) % MOD) * 2) % MOD);
        } else {
            System.out.println((nPk(n, n, MOD) * nPk(m, m, MOD)) % MOD);
        }
    }

    static long nPk(int n, int k, int MOD) {
        long r = 1;
        while (k > 0) {
            r *= n;
            r %= MOD;
            n -= 1;
            k -= 1;
        }
        return r;
    }
}
Ruby Python Perl Java
Codelänge 287 Byte 314 Byte 386 Byte 794 Byte
Ausführungszeit 21 ms 64 ms 41 ms 111 ms
Erinnerung 1788 KB 3064 KB 384 KB 23764 KB

Zusammenfassung

Recommended Posts

Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 107 B String-Manipulation
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 098 C Kumulative Summe
Lösen mit Ruby, Perl, Java und Python AtCoder CADDi 2018 C Primfaktorisierung
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 131 D Sortieren von Arrays
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Lösen mit Ruby und Python AtCoder ABC011 C Dynamische Planungsmethode
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 B.
Lösen mit Ruby, Perl, Java und Python AtCoder diverta 2019 Programmierwettbewerb C String Manipulation
Lösen mit Ruby und Python AtCoder ABC057 C Zerlegung des Primfaktors Bit vollständige Suche
Lösen mit Ruby, Perl, Java und Python AtCoder AGC 033 Eine Suche mit Breitenpriorität
Lösen mit Ruby und Python AtCoder ARC 059 C Minimum-Quadrat-Methode
Lösen mit Ruby und Python AtCoder ABC178 D Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 066 C Iterativer Square Hash
Lösen mit Ruby und Python AtCoder ABC153 E Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ARC067 C Primfaktorisierung
Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste
Lösen in Ruby, Python und Java AtCoder ABC141 D Priority Queue
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Lösen mit Ruby, Python und networkx AtCoder ABC168 D Benachbarte Liste
AtCoder ABC110 C-String-Manipulation zum Lösen in Ruby
Lösen mit Ruby und Python AtCoder Tenka1 Programmer Contest C Kumulative Summe
AtCoder ABC 114 C-755 mit Python3 gelöst
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 086 C Hash-Sortierung
Lösen mit Ruby und Python AtCoder CODE FESTIVAL 2016 qual C B Priority Queue
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Lösen mit Ruby und Python AtCoder AISING2020 D Iterative Square-Methode
AtCoder ARC104 B Kumulative Summe in Ruby, Python und Java gelöst
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
Lösen mit Ruby und Python AtCoder ABC172 C Kumulative Summen-Dichotomie
Löse AtCoder ABC166 mit Python
C-Sprache, Java, Python-Benchmarks mit Primfaktorisierung
Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen
[AtCoder Erklärung] Kontrollieren Sie ABC158 A, B, C Probleme mit Python!
AtCoder ABC168 Ein in Ruby und Python gelöster Fallausdruck
[AtCoder Erklärung] Kontrollieren Sie ABC164 A, B, C Probleme mit Python!
[AtCoder Erklärung] Kontrollieren Sie ABC168 A, B, C Probleme mit Python!
Löse ABC163 A ~ C mit Python
Scraping mit Node, Ruby und Python
Löse ABC168 A ~ C mit Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
[AtCoder-Kommentar] Gewinnen Sie mit Python das ABC165 C-Problem "Many Requirements"!
Listen Sie Split- und Join-Zeichenfolgen mit Split und Join auf (Perl / PowerShell / Java / Kotlin / Python).
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Löse AtCoder ABC168 mit Python (A ~ D)
Einfaches Web-Scraping mit Python und Ruby
RaspberryPi L Chika mit Python und C #
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B- und C-Probleme von ABC182 mit Python!
AtCoder ABC130 D Kumulative Summen-Dichotomie, gelöst durch Ruby und Python
AtCoder Anfängerwettbewerb 170 B Problem "Crane and Turtle" Erklärung (Python3, C ++, Java)