Je suis allé à la montagne et je ne suis pas revenu à ce moment-là, alors je suis entré dans la course virtuelle. C'est la première fois que je ne peux pas apparaître dans ABC depuis que j'ai commencé AtCoder? Le résultat était ABCD complet (TLE1) à 75:49. Si ça sort, c'était une note plus élevée, je suis désolé
Percer en 2 minutes. Il suffit d'écrire.
S = input()
t = 0
result = 0
for c in S:
if c == 'R':
t += 1
else:
t = 0
result = max(result, t)
print(result)
Percer en 7 minutes. Tout d'abord, j'ai cherché sur Google parce que je ne connaissais pas l'état de la longueur du côté où le triangle peut être formé. Ensuite, "L i </ sub>, L j </ sub>, L k J'ai raté "tous différents </ sub>". En conséquence, il a fallu beaucoup de temps pour répondre à la question B.
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)
J'ai su tout de suite parce que j'avais résolu des problèmes similaires dans le passé que j'allais simplement m'approcher et faire des va-et-vient, mais il a fallu beaucoup de temps pour faire des bugs ici et là.
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))
Percer en 52 minutes TLE × 1. Au début, j'ai manqué le "inférieur ou égal à" de "K fois ou moins", j'ai écrit le code en doublant et je me suis demandé pourquoi l'exemple de sortie 1 n'était pas 7. En repensant ce qui suit, j'ai pensé que O ( N </ i> 2 </ sup>) ne passerait pas, et si la détection de boucle était effectuée et que le total dans cette boucle était positif, le nombre de boucles possibles × Je l'ai écrit en pensant que je devrais ajouter le total dans la boucle, mais TLE. Cela ne peut pas être aidé, donc je l'ai réécrit en langage Go et il est passé rapidement.
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...)
}
Au lieu de le réécrire en langage Go, je devais juste le mettre en PyPy.
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)
Je ne pouvais pas percer. Je pensais que ce serait facile avec DP sans "Cependant, vous ne pouvez ramasser que 3 objets dans la même ligne du carré." Il y avait pas mal de gens qui ont sauté D et résolu E. Alors, si vous savez quelque chose, n'y a-t-il pas une différence de difficulté?
Recommended Posts