Ich habe Atcoder ausprobiert, es ist also mein eigenes Memo. Ich habe vor, es später hinzuzufügen und zu korrigieren.
https://atcoder.jp/contests/abc183
A
Q_A.go
package main
import (
    "fmt"
)
func main() {
    var x int 
    fmt.Scanf("%d", &x)
    var ans int
    if x > 0{
        ans = x
    } else{
        ans = 0
    }
    fmt.Printf("%d\n", ans)
	
}
B
Q_B.go
package main
import (
	"fmt"
)
func main() {
    var S_x, S_y, G_x, G_y int
    fmt.Scanf("%d %d %d %d", &S_x, &S_y, &G_x, &G_y)
	
	var a float64
	a = float64(G_y + S_y) / float64(G_x - S_x)
	var ans float64
	ans = float64(S_y) / a + float64(S_x)
	fmt.Printf("%f\n", ans)
	
}
C
Q_C.go
package main
import (
	"fmt"
)
func remove(t []int, i int) []int {
	s := make([]int, len(t))
	copy(s, t)
    s[i] = s[len(s)-1]
    return s[:len(s)-1]
}
func greedy(n int, k int64, list []int, T [][]int64, now int) int{
	
	var num int = 0
	if n == 1{
		if T[now-1][0] == k{
			return 1
		} else {
			return 0
		}
	} else if  k<0{
		return 0
	}
	for i:=1; i<n; i++{
		next := list[i]
		var list_2 = remove(list, i)
		w := T[now-1][next-1]
		num += greedy(n-1, k-w, list_2, T, next)
	}
	return num
}
func main() {
	var N int
	var K int64
    fmt.Scanf("%d %d", &N, &K)
	T := make([][]int64, N)
	for i := 0; i < N; i++ {
		T[i] = make([]int64, N)
		for j:=0; j<N; j++{
			fmt.Scanf("%d", &T[i][j])
		}
	}
	List := make([]int, N)
	for i := 0; i < N; i++ {
		List[i] = i+1
	}
	ans := greedy(N, K, List, T, 1)
	fmt.Printf("%d\n", ans)
}
D Wenn Sie sich erinnern, werde ich es später schreiben.
E Wenn Sie sich erinnern, werde ich es später schreiben.
F Wenn Sie sich erinnern, werde ich es später schreiben.
Recommended Posts