[PYTHON] Yukicoder-Wettbewerb 241 Teilnehmerrekord

Yukicoder-Wettbewerb 241 Teilnehmerrekord

A 1009 So finden Sie das Gebiet

Es brach in achteinhalb Minuten durch. Als Hinweis versuchte ich, es schnell mit der Divisionsproduktionsmethode zu lösen. Kam heraus, also reichte ich es ein und es war sicher AC.

a, b = map(int, input().split())

x = a
result = 0
t = 1 / 4096
while x < b:
    result += abs((x - a) * (x - b) * t)
    x += t
print(result)

B 1010 Falten und Stapeln

In 41 Minuten durchbrechen. Ich habe einen Code geschrieben, um ihn mit ganzen Zahlen zu verarbeiten, und mich gefragt, warum ich nicht AC habe. Es ist zu dumm. Falten Sie den kurzen vertikal und horizontal bis zum Limit und falten Sie dann den langen bis zum Limit. ..

x, y, h = map(int, input().split())

if x < y:
    x, y = y, x

x *= 1000
y *= 1000

result = 0

while y > h:
    y /= 2
    h *= 2
    result += 1

while x > h:
    x /= 2
    h *= 2
    result += 1

print(result)

Es kann auch als Ganzzahl verarbeitet werden, solange sich die Zahlen relativ korrekt ändern.

x, y, h = map(int, input().split())

if x < y:
    x, y = y, x

x *= 1000
y *= 1000

result = 0

while y > h:
    x *= 2
    h *= 4
    result += 1

while x > h:
    y *= 2
    h *= 4
    result += 1

print(result)

C 1011 Infinite Stairs

Besiegt. Wenn Sie gehorsam DP, wird es * O * (* N * 2 </ sup> d) sein, also TLE. Der erste Schritt ist der gleiche mit Ausnahme von i - d + 1 .. i und den beiden Enden. In diesem Fall kann * O * (1) anstelle von * O * (* d ) verwendet werden. Es wurde * O * ( N * 2 </ sup>) und wurde gelöst.

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func main() {
	N := readInt()
	d := readInt()
	K := readInt()

	buf0 := make([]int, d*N+K+1)
	buf1 := make([]int, d*N+K+1)
	buf0[0] = 1
	for i := 0; i < N; i++ {
		t := 0
		for j := 0; j < d; j++ {
			t += buf0[j]
			t %= 1000000007
			buf1[j] = t
		}
		for j := d; j < (i+1)*d; j++ {
			t -= buf0[j-d]
			if t < 0 {
				t += 1000000007
			}
			t += buf0[j]
			t %= 1000000007
			buf1[j] = t
		}
		buf0, buf1 = buf1, buf0
	}
	fmt.Println(buf0[K-N])
}

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
}
#AC für PyPy
N, d, K = map(int, input().split())

buf0 = [0] * (d * N + K + 1)
buf1 = [0] * (d * N + K + 1)
buf0[0] = 1

for i in range(N):
    t = 0
    for j in range(d):
        t += buf0[j]
        t %= 1000000007
        buf1[j] = t
    for j in range(d, (i + 1) * d):
        t -= buf0[j - d]
        t += buf0[j]
        t %= 1000000007
        buf1[j] = t
    buf0, buf1 = buf1, buf0

print(buf0[K - N])

Recommended Posts

Yukicoder-Wettbewerb 265 Teilnehmerrekord
Yukicoder-Wettbewerb 266 Teilnehmerrekord
Yukicoder-Wettbewerb 263 Teilnehmerrekord
Yukicoder-Wettbewerb 243 Teilnehmerrekord
Yukicoder-Wettbewerb 273 Teilnehmerrekord
Yukicoder-Wettbewerb 249 Teilnehmerrekord
Yukicoder-Wettbewerb 271 Teilnehmerrekord
Yukicoder-Wettbewerb 251 Teilnehmerrekord
Yukicoder-Wettbewerb 241 Teilnehmerrekord
Yukicoder-Wettbewerb 257 Teilnehmerrekord
Yukicoder-Wettbewerb 254 Teilnehmerrekord
Yukicoder-Wettbewerb 246 Teilnehmerrekord
Yukicoder-Wettbewerb 275 Teilnehmerrekord
Yukicoder-Wettbewerb 274 Teilnehmerrekord
Yukicoder-Wettbewerb 247 Teilnehmerrekord
Yukicoder-Wettbewerb 261 Teilnehmerrekord
Yukicoder-Wettbewerb 248 Teilnehmerrekord
Yukicoder-Wettbewerb 272 (Weird Math Contest) Teilnahmeprotokoll
Yukicoder-Wettbewerb 256 Eintragungsrekord
Yukicoder-Wettbewerb 267 Eintragungsrekord
Yukicoder-Wettbewerb 264 Eintragungsrekord
Yukicoder-Wettbewerb 245 Eintragungsrekord
Yukicoder-Wettbewerb 250 Eintragungsrekord
Yukicoder-Wettbewerb 262 Eintragungsrekord
Yukicoder-Wettbewerb 264 Bewertung
Yukicoder-Wettbewerb 261 Bewertung
Yukicoder-Wettbewerb 267 Bewertung
Yukicoder-Wettbewerb 266 Bewertung
Yukicoder-Wettbewerb 263 Bewertung
Yukicoder-Wettbewerb 268 Bewertung
AtCoder Beginner Contest 181 Teilnahmebericht
AtCoder Beginner Contest 161 Teilnahmebericht
AtCoder Beginner Contest 176 Teilnahmebericht
AtCoder Beginner Contest 154 Teilnahmebericht
AtCoder Beginner Contest # 003 Teilnahmehinweis
AtCoder Grand Contest 041 Teilnahmebericht
AtCoder Beginner Contest 166 Teilnahmebericht
AtCoder Beginner Contest 153 Teilnahmebericht
AtCoder Beginner Contest 145 Teilnahmebericht
AtCoder Beginner Contest 184 Teilnahmebericht
AtCoder Beginner Contest 160 Teilnahmebericht
AtCoder Beginner Contest 169 Teilnahmebericht
AtCoder Beginner Contest 178 Teilnahmebericht
AtCoder Beginner Contest 163 Teilnahmebericht
AtCoder Beginner Contest 159 Teilnahmebericht
AtCoder Beginner Contest 164 Teilnahmebericht
AtCoder Regular Contest 105 Teilnahmebericht
AtCoder Beginner Contest 168 Teilnahmebericht
AtCoder Beginner Contest 150 Teilnahmebericht
AtCoder Beginner Contest 158 Teilnahmebericht
AtCoder Beginner Contest 180 Teilnahmebericht
AtCoder Regular Contest 104 Teilnahmebericht
AtCoder Beginner Contest 156 Teilnahmebericht
AtCoder Beginner Contest 162 Teilnahmebericht
AtCoder Beginner Contest 157 Teilnahmebericht
AtCoder Beginner Contest 167 Teilnahmebericht
AtCoder Beginner Contest 179 Teilnahmebericht
AtCoder Anfängerwettbewerb 182
AtCoder Anfängerwettbewerb 146 Teilnahmebericht