邓心一 6 years ago
parent
commit
cec52282b0

+ 25 - 0
oj/tencent-2017-autumn/encode.go

@@ -0,0 +1,25 @@
+package main
+
+import "fmt"
+
+func main() {
+	var s string
+	fmt.Scanln(&s)
+	base := []int{16276, 651, 26, 1}
+	code, l := 0, len(s)
+	num := make([]int, l)
+	for i := range num {
+		num[i] = int(s[i] - 'a')
+	}
+	switch l {
+	case 1:
+		code = num[0] * base[0]
+	case 2:
+		code = num[0]*base[0] + 1 + num[1]*base[1] + 1
+	case 3:
+		code = num[0]*base[0] + 1 + num[1]*base[1] + 1 + num[2]*base[2]
+	default:
+		code = num[0]*base[0] + 1 + num[1]*base[1] + 1 + num[2]*base[2] + 1 + num[3]*base[3]
+	}
+	fmt.Println(code)
+}

+ 23 - 0
oj/tencent-2017-autumn/geohash.go

@@ -0,0 +1,23 @@
+package main
+
+import (
+	"fmt"
+)
+
+func main() {
+	var n int
+	fmt.Scan(&n)
+	val, beg, end := n, -90, 90
+	code := make([]rune, 6)
+	for i := 0; i < 6; i++ {
+		mid := (beg + end) / 2
+		if mid <= val {
+			code[i] = '1'
+			beg = mid
+		} else {
+			code[i] = '0'
+			end = mid
+		}
+	}
+	fmt.Println(string(code))
+}

+ 19 - 0
oj/tencent-2017-autumn/mark-mission.go

@@ -0,0 +1,19 @@
+package main
+
+import "fmt"
+
+func main() {
+	var i, j, res int
+	fmt.Scan(&i, &j)
+	if i < 1 || 1024 < i || j < 1 || 1024 < j {
+		res = -1
+		return
+	}
+	store := uint32(i)
+	if store == uint32(j) {
+		res = 1
+	} else {
+		res = 0
+	}
+	fmt.Println(res)
+}

+ 36 - 0
oj/tencent-2017-autumn/prime-pair.go

@@ -0,0 +1,36 @@
+package main
+
+import (
+	"fmt"
+	"math"
+)
+
+func main() {
+	var n int
+	fmt.Scan(&n)
+	sieve := make([]bool, n+1)
+	prime := make([]int, 0)
+	sqrt := int(math.Sqrt(float64(n)))
+	for i := 2; i <= sqrt; i++ {
+		if sieve[i] {
+			continue
+		}
+		for j := 2 * i; j <= n; j += i {
+			sieve[j] = true
+		}
+	}
+	for i := 2; i <= n; i++ {
+		if !sieve[i] {
+			prime = append(prime, i)
+		}
+	}
+	cnt := 0
+	m := make(map[int]bool)
+	for _, p := range prime {
+		if m[n-p] || 2*p == n {
+			cnt++
+		}
+		m[p] = true
+	}
+	fmt.Println(cnt)
+}