Ich bin auf den Berg gegangen und bin nicht zurückgekommen, also bin ich in den virtuellen Krieg eingetreten. Es ist das erste Mal, dass ich nicht in ABC erscheinen konnte, seit ich AtCoder gestartet habe? Wenn es herauskommt, war es eine Bewertung, tut mir leid
Brechen Sie in 2 Minuten durch. Schreiben Sie einfach.
S = input()
t = 0
result = 0
for c in S:
if c == 'R':
t += 1
else:
t = 0
result = max(result, t)
print(result)
In 7 Minuten durchbrechen. Zuerst habe ich gegoogelt, weil ich den Zustand der Länge der Seite, auf der das Dreieck hergestellt werden kann, nicht kannte. Als nächstes "L i </ sub>, L j j / l k Ich habe "all different </ sub>" verpasst. Daher hat die Beantwortung der B-Frage lange gedauert.
from itertools import combinations
N, *L = map(int, open(0).read().split())
result = 0
for a, b, c in combinations(L, 3):
if a == b or b == c or c == a:
continue
if a + b > c and b + c > a and c + a > b:
result += 1
print(result)
Es brach in 10 Minuten durch. Ich wusste sofort, weil ich in der Vergangenheit ähnliche Probleme gelöst hatte, dass ich mich einfach nähern und dann hin und her gehen würde, aber es dauerte viel Zeit, um hier und da Fehler zu machen.
X, K, D = map(int, input().split())
if X > D:
t = min(X // D, K)
K -= t
X -= t * D
else:
t = min(-X // D, K)
K -= t
X += t * D
K %= 2
if K == 0:
print(abs(X))
else:
if abs(X + D) < abs(X - D):
print(abs(X + D))
else:
print(abs(X - D))
Durchbruch in 52 Minuten. TLE × 1. Zuerst habe ich das "kleiner als oder gleich" von "K mal oder weniger" verpasst, den Code mit Verdoppelung geschrieben und mich gefragt, warum das Ausgabebeispiel 1 nicht 7 war. Ich bemerkte "das Folgende" und überlegte, ich dachte, dass O ( N </ i> 2 </ sup>) nicht passieren würde, und wenn eine Schleifenerkennung durchgeführt wird und die Summe in dieser Schleife positiv ist, ist die Anzahl der möglichen Schleifen × Ich habe es geschrieben und dachte, ich sollte die Summe in die Schleife einfügen, aber TLE. Es kann nicht geholfen werden, also habe ich es in Go-Sprache umgeschrieben und es ging schnell vorbei.
package main
import (
"bufio"
"fmt"
"math"
"os"
"strconv"
)
func max(x, y int) int {
if x > y {
return x
}
return y
}
func main() {
defer flush()
N := readInt()
K := readInt()
P := make([]int, N)
for i := 0; i < N; i++ {
P[i] = readInt()
}
C := make([]int, N)
for i := 0; i < N; i++ {
C[i] = readInt()
}
result := math.MinInt64
for i := 0; i < N; i++ {
p := P[i] - 1
c := C[p]
k := K - 1
t := c
for p != i && k != 0 {
p = P[p] - 1
c += C[p]
t = max(t, c)
k--
}
if k == 0 || c <= 0 {
result = max(result, t)
continue
}
l := K - k
c = c * (K/l - 1)
k = K - (K/l-1)*l
t = c
for k != 0 {
p = P[p] - 1
c += C[p]
t = max(t, c)
k--
}
result = max(result, t)
}
println(result)
}
const (
ioBufferSize = 1 * 1024 * 1024 // 1 MB
)
var stdinScanner = func() *bufio.Scanner {
result := bufio.NewScanner(os.Stdin)
result.Buffer(make([]byte, ioBufferSize), ioBufferSize)
result.Split(bufio.ScanWords)
return result
}()
func readString() string {
stdinScanner.Scan()
return stdinScanner.Text()
}
func readInt() int {
result, err := strconv.Atoi(readString())
if err != nil {
panic(err)
}
return result
}
var stdoutWriter = bufio.NewWriter(os.Stdout)
func flush() {
stdoutWriter.Flush()
}
func println(args ...interface{}) (int, error) {
return fmt.Fprintln(stdoutWriter, args...)
}
Anstatt es in Go-Sprache umzuschreiben, musste ich es nur in PyPy veröffentlichen.
N, K = map(int, input().split())
P = list(map(int, input().split()))
C = list(map(int, input().split()))
result = -float('inf')
for i in range(N):
p = P[i] - 1
c = C[p]
k = K - 1
t = c
while p != i and k != 0:
p = P[p] - 1
c += C[p]
t = max(t, c)
k -= 1
if k == 0 or c <= 0:
result = max(result, t)
continue
l = K - k
c = c * (K // l - 1)
k = K - (K // l - 1) * l
t = c
while k != 0:
p = P[p] - 1
c += C[p]
t = max(t, c)
k -= 1
result = max(result, t)
print(result)
Ich konnte nicht durchbrechen. Ich dachte, es wäre einfach mit DP ohne "Sie können jedoch nur bis zu 3 Gegenstände in derselben Zeile des Quadrats aufnehmen." Es gab einige Leute, die D übersprangen und E lösten. Wenn Sie also etwas wissen, gibt es keinen Unterschied in der Schwierigkeit?
Recommended Posts