Skip to content

Commit 58d0420

Browse files
committed
AcWing 第 31 场周赛
1 parent 357c621 commit 58d0420

File tree

6 files changed

+188
-0
lines changed

6 files changed

+188
-0
lines changed

misc/acwing/weekly/31/a/a.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package main
2+
3+
import (
4+
. "fmt"
5+
"io"
6+
"os"
7+
)
8+
9+
// github.com/EndlessCheng/codeforces-go
10+
func run(in io.Reader, out io.Writer) {
11+
var v, l, r, ans int
12+
x := int(1e9)
13+
for i := 0; i < 4; i++ {
14+
Fscan(in, &v)
15+
x = min(x, v)
16+
}
17+
Fscan(in, &l, &r)
18+
r = min(r, x-1)
19+
if r >= l {
20+
ans = r - l + 1
21+
}
22+
Fprint(out, ans)
23+
}
24+
25+
func main() { run(os.Stdin, os.Stdout) }
26+
27+
func min(a, b int) int {
28+
if a > b {
29+
return b
30+
}
31+
return a
32+
}

misc/acwing/weekly/31/a/a_test.go

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

misc/acwing/weekly/31/b/b.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package main
2+
3+
import (
4+
. "fmt"
5+
"io"
6+
"os"
7+
"strconv"
8+
)
9+
10+
// github.com/EndlessCheng/codeforces-go
11+
func run(in io.Reader, out io.Writer) {
12+
var s []byte
13+
Fscan(in, &s)
14+
for i, b := range s {
15+
if b > '1' {
16+
for ; i < len(s); i++ {
17+
s[i] = '1'
18+
}
19+
break
20+
}
21+
}
22+
v, _ := strconv.ParseInt(string(s), 2, 64)
23+
Fprint(out, v)
24+
}
25+
26+
func main() { run(os.Stdin, os.Stdout) }

misc/acwing/weekly/31/b/b_test.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

misc/acwing/weekly/31/c/c.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
. "fmt"
6+
"io"
7+
"math/bits"
8+
"os"
9+
)
10+
11+
// github.com/EndlessCheng/codeforces-go
12+
const _w = bits.UintSize
13+
func NewBitset(n int) Bitset { return make(Bitset, n/_w+1) } // (n+_w-1)/_w
14+
type Bitset []uint
15+
func (b Bitset) Set(p int) { b[p/_w] |= 1 << (p % _w) }
16+
17+
func run(_r io.Reader, _w io.Writer) {
18+
in := bufio.NewReader(_r)
19+
out := bufio.NewWriter(_w)
20+
defer out.Flush()
21+
22+
var n, m, k, v, w int
23+
Fscan(in, &n, &m, &k)
24+
ps := make([]struct{ x, y int }, n)
25+
for i := range ps {
26+
Fscan(in, &ps[i].x, &ps[i].y)
27+
}
28+
cs := make([]struct{ x, y, r int }, m)
29+
for i := range cs {
30+
Fscan(in, &cs[i].r, &cs[i].x, &cs[i].y)
31+
}
32+
bs := make([]Bitset, n)
33+
for i, p := range ps {
34+
bs[i] = NewBitset(m)
35+
for j, c := range cs {
36+
if (p.x-c.x)*(p.x-c.x)+(p.y-c.y)*(p.y-c.y) <= c.r*c.r {
37+
bs[i].Set(j)
38+
}
39+
}
40+
}
41+
for ; k > 0; k-- {
42+
Fscan(in, &v, &w)
43+
s := 0
44+
for i, x := range bs[v-1] {
45+
s += bits.OnesCount(x ^ bs[w-1][i])
46+
}
47+
Fprintln(out, s)
48+
}
49+
}
50+
51+
func main() { run(os.Stdin, os.Stdout) }

misc/acwing/weekly/31/c/c_test.go

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)