Atcoder Begining Contest 366

Atcoder Begining Contest 366

地址

A

  • 题意:

    总共 n n n 场比赛, A A A 暂时赢了 x x x 场, B B B 暂时赢了 y y y 场,问比赛胜负确定没有

  • 题解:

    判断 x x x y y y 有没有过半的即可

B

感觉说不清楚,看看代码吧

code

C

  • 题意:

    每次操作新增一个编号为 i i i 的小球,减少一个编号为 i i i 的小球,询问有多少个不同编号的小球

  • 题解:

    模拟就行,每次增加和减少的时候顺便维护不同种类小球个数

D

  • 题意:

    三维前缀和( n ≤ 100 n \le 100 n100)

  • 题解

    懒得写三维前缀和那个容斥了

    枚举第一维,对后面两维做二维前缀和就行

  • code

E

  • 题意:

    给定 n n n 个点,求到这 n n n 个点的切比雪夫距离和小于等于 D D D 的点对个数

  • 题解:

    发现 x x x 轴和 y y y 轴可以分开算

    预处理出来 f x f_x fx 表示 ∑ i ∣ x − x i ∣ \sum\limits_i |x-x_i| ixxi g y g_y gy 表示 ∑ i ∣ y − y i ∣ \sum\limits_i |y-y_i| iyyi,令 h x h_x hx 表示 y i = x y_i = x yi=x 的个数,对 h x h_x hx 做前缀和,之后枚举每个合法的 x x x,对答案的贡献就是 h [ D − f x ] h[D-f_x] h[Dfx]

  • code

F

  • 题意:

    初始分数为 1 1 1,有 n n n { a , b } \{a, b\} {a,b} 可以将分数变为 a x + b ax+b ax+b,求选取 k k k 对后的最大分数

  • 题解:

    假设最终答案会同时选取第 i i i 对和第 j j j 对,考虑这两对的先后顺序

    a i × ( a j × x + b j ) + b i > a j × ( a i × x + b i ) + b j a_i\times(a_j\times x + b_j) + b_i > a_j\times(a_i\times x + b_i)+b_j ai×(aj×x+bj)+bi>aj×(ai×x+bi)+bj 时,会先选择第 j j j 个再选择第 i i i

    化简式子,发先与 x x x 无关,将相同字母移动到等号的同一端,直接按照 b a − 1 \frac{b}{a-1} a1b 排序即可,一定先选择 b a − 1 \frac{b}{a-1} a1b 小的

  • code

G

  • 题意:

    n n n 个点 m m m 条边的无向图,给每个点赋值为 w x w_x wx,要求对任意点 x x x p p p x x x 有直接边相连的点,有 w p 1 ⊕ w p 2 ⊕ ⋯ = 0 w_{p_1}\oplus w_{p_2}\oplus\dotsb = 0 wp1wp2=0

  • 题解:

    异或高斯消元,相当于是有 n n n 个变量 n n n 个方程

    为了避免零解的出现,选择对二进制每一位分别跑高斯消元,此时每个变量值域只有 0 0 0 1 1 1,考虑到第 i i i 位时,令第 i i i 个变量恒等于 1 1 1,之后继续高斯消元即可

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值