2023NOIP A层联测31总结

2023NOIP A层联测31总结

T 1 T1 T1 暴力操作:

给你一个长度为 n n n 的序列 a a a ,你可以花费 c x c_x cx 使得 a i a_i ai 变为 [ a i / x ] [a_i / x] [ai/x] ,你总共有 k k k 元。为最终序列的中位数最小是多少。保证 n n n 为奇数。

n , m ≤ 5 ∗ 1 0 5 n , m \le 5*10^5 n,m5105

首先想到了二分一个答案,因为只要使得前 ( n + 1 ) / 2 (n + 1) / 2 (n+1)/2 个数小于一个数就满足条件,所以这个满足单调性。

处理 c c c 数组的时候只想到了 m 2 m^2 m2 的做法,而且向下取整的那部分没有处理好,就挂了。

正解就是这样,处理 c c c 数组的时候只要处理因子就好了。

T 2 T2 T2 异或连通:

给定一个 n n n 个点 m m m 条边的无向图,每次询问 x x x ,若 w i ⊕ x ≥ K w_i \oplus x \ge K wixK ,则这条边不存在, w i w_i wi 为第 i i i 条边的权值。 对于每个询问,输出互相连通的点对个数。

n , m ≤ 1 0 5 n , m \le 10^5 n,m105

一开始想了一种离线的加边操作,保证每条边只加入一次,但是对于这个异或的操作好像不适用。

就打了个 n , m , q ≤ 1 0 3 n , m , q\le 10^3 n,m,q103 的暴力。

其实就是按位操作,对于每一位如果满足条件,就把 i i i 加入,需要 T r i e Trie Trie 树和可撤回并查集维护。

T 3 T3 T3 诡异键盘:

你有一个键盘,有两种操作,

  • 按下按键 i ≤ n i\le n in 会打印出字符串 S i S_i Si
  • 按下按键 n + 1 n + 1 n+1 会删掉结尾的 K K K 个字符

求打印出 S S S 需要的操作次数。

这个题看一眼就知道不会做了,打算先放着。

正解现在还没补出来

T 4 T4 T4 民主投票:

n n n 个人形成了一个以 1 1 1 为根的树。除了 1 1 1 以外,每个人都必须给他的祖先投一票。对于每个 i ∈ [ 1 , n ] i\in[1 , n] i[1,n] 请问有没有一种方案使得 i i i 的最终票数严格大于其他人的票数。

想到了二分求一个每个人的最小票数,那样只要子树 i i i 内的数大于所有最小票数的最大值,子树 i i i 就是成立的。

当时看到过了样例就没管了,感觉挺神奇的。

过了后面几个点,但是最小的点没过,早知道就打个拼盘了。

估分 : 30 + 20 + 0 + [ 0 , 100 ] = [ 50 , 150 ] 30 + 20 +0 + [0 , 100] = [50 , 150] 30+20+0+[0,100]=[50,150]

实际得分: 0 + 20 + 0 + 80 = 100 0 +20 + 0 +80 = 100 0+20+0+80=100

这次考试按照自己的策略去打了,就是自己该拿什么分就尽力去骗,只是可能代码实现能力确实不够强,导致 T 1 T1 T1 失分了。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值