首页 > 其他分享 >AtCoder Beginner Contest 356

AtCoder Beginner Contest 356

时间:2024-06-02 13:32:52浏览次数:20  
标签:AtCoder 00 le Beginner sum cnt times 356 right

Contest

从比赛开始第三分钟开始记:

  • 00:00~00:02:A 题。

  • 00:02~00:07:B 题。

  • 00:07~00:16:C 题。

  • 00:16~00:43:D 题。

  • 00:43~01:02:E 题。

  • 01:02~结束:摆烂。

A - Subsegment Reverse

  • 给定 \(n, l, r\)。输出将序列 \(A = (1, 2, \dots, n)\) 中 \([l, r]\) 翻转后的样子。
  • \(l \le r \le n \le 100\)。

模拟。可以用 reverse 函数。

B - Nutrients

  • 有 \(m\) 种营养成分。对于第 \(i\) 种营养成分,他的目标是每天摄入至少 \(A_i\) 单位。今天,他吃了 \(n\) 种食物,从第 \(i\) 种食物中摄入了 \(X_{i, j}\) 单位的营养成分 \(j\)。判断他是否满足了所有 \(m\) 种营养成分的目标。
  • \(n, m \le 100\),\(A_i, X_{i, j} \le 10^7\)。

用 \(m\) 个桶维护每种营养的数量。

C - Keys

  • 你有 \(n\) 把编号为 \(1, 2, \dots, n\) 的钥匙。其中一些是真正的钥匙,而其他的是假钥匙。

    有一扇门,你可以插入任意数量的钥匙。只有当至少插入 \(k\) 把真正的钥匙时,门才会打开。

    你对这些钥匙进行了 \(m\) 次测试。第 \(i\) 次测试如下:

    • 你向门插入了 \(c_i\) 把钥匙 \(a_{i, 1}, a_{i, 2}, \dots, a_{i, c_i}\)。

    • 测试结果用一个英文字母 \(r_i\) 表示:

      • $r_i = $ o表示第 \(i\) 次测试时门X打开了。

      • $r_i = $ x表示第 \(i\) 次测试时门X没有打开。

    有 \(2^n\) 种可能的组合,确定哪些是真正的钥匙,哪些是假钥匙。在这些组合中,找出不与任何测试结果矛盾的组合数量。

  • \(k, n \le 15\),\(m \le 100\)。

\(2^n\) 暴力枚举每种钥匙是不是真的。检查即可。

D - Masked Popcount

  • 给定 \(n, m\),求 \(\sum\limits_{i=0}^n \operatorname{popcount}(k \And m)\)。
  • \(n, m \le 2^{60} - 1\)。

令 \(x_i\) 表示 \(x\) 的第 \(i\) 个二进制位。

逐二进制考虑。若当前枚举位 \(i\),我们需要计算:

有多少 \(x \in [0, n]\) 使得 \((x \And m)_i = 1\)。

\(m\) 是个定值。如果 \(m_i = 0\),那么显然上述答案为 \(0\)。否则上述答案为:

有多少 \(x \in [0, n]\) 使得 \(x_i = 1\)。

类似于数位 DP。拆贡献答案为:

\[\left(\sum_{j=i+1}^{\infty} a_j \times 2^{j-1}\right) + a_i \times \left(1 + \sum_{j=0}^{i-1} a_j \times 2^j\right) \]

E - Max/Min

  • 给定 \(n, a_1\dots a_n\)。求 \(\sum\limits_{i=1}^{n-1}\sum\limits_{j=i+1}^n \left \lfloor \dfrac{\max(a_i, a_j)}{\min(a_i, a_j)} \right \rfloor\)。
  • \(n \le 2 \times 10^5\),\(a_i \le 10^6\)。

首先可以统计 \(a\) 中每种元素的出现次数 \(cnt_i\),然后将 \(a\) 排序并去重。令 \(b_1 \dots b_m\) 为去重后的 \(a\),那么答案为:

\[\begin{aligned}\sum\limits_{i=1}^{n-1}\sum\limits_{j=i+1}^n \left \lfloor \dfrac{\max(a_i, a_j)}{\min(a_i, a_j)} \right \rfloor &=\sum_{i=1}^{m-1}\sum_{j=i+1}^m cnt_{b_i} \times cnt_{b_j} \times \left \lfloor\frac{b_i}{b_j} \right \rfloor\\ &=\sum_{j=2}^{m}\sum_{i=1}^{j-1} cnt_{b_i} \times cnt_{b_j} \times \left \lfloor\dfrac{b_i}{b_j} \right \rfloor\\ &=\sum_{j=2}^{m}cnt_{b_j} \times \sum_{i=1}^{j-1} cnt_{b_i} \times \left \lfloor\dfrac{b_i}{b_j} \right \rfloor\\ \end{aligned} \]

后面这坨预处理 \(cnt_i\) 前缀和并整除分块。总时间复杂度 \(\mathcal O(n \sqrt {a_i})\)

标签:AtCoder,00,le,Beginner,sum,cnt,times,356,right
From: https://www.cnblogs.com/2huk/p/18227019

相关文章

  • abc356
    D1.5h没做出,E0.5h做出来啦?E有两个做法,第一个是枚举分子来计算分母对答案的贡献,另一种是枚举分母来求分子对答案的贡献。枚举分子来计算分母对答案的贡献需要用到数论分块,所以我们讲枚举分母来求分子对答案的贡献的写法。我们可以直接去枚举这个数是分母的情况。我们先考虑用......
  • AtCoder Beginner Contest 356
    A-SubsegmentReverse(abc356A)题目大意给定一个\(1,2,3,...,n\)的排列\(a\),给定两个数\(l,r\),左右颠倒\(a[l..r]\)。输出。解题思路按照题意模拟即可。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;intmain(void){ios::......
  • atcoder350,351,352,353,354,355期部分题解
    声明:有些题感觉已经说到很明白了,就先不写代码了,有空会补上目录350D: newfriend350E:toward0351D:GridandMagnet352D:permutation subsequence353C:sigmaproblem353D:anothersigmaproblem354C:atcodermagics355C:bingo2355D:intersectingintervals......
  • AtCoder Beginner Contest 355 (E,F)
    总结:这把B都错题了一直Wa,然后队友告诉我说F貌似可做,写了半个小时F发现题目读假了,于是四题下班。E-GuesstheSum题目大意:给定一个隐藏的、长度为N的数组,下标从0开始,题目给定L,R,要你用最少的询问次数求出\(\sum_{i=L}^{R}a_{i}\)。对于每次询问,可以选择一个i和j,然......
  • Atcoder ABC355 C~F
    C出题人太善良了,加强到\(10^5\)都没问题。考虑维护每条横线竖线两条对角线上被标记的点的个数,每次标记点后,判断是否有线上点全被标记。再考虑如何将点编号转为坐标,记编号为\(t\),推柿子:\[(x-1)\timesn+y=t\]\[nx+y=t+n\]\[x=\frac{t+n-y}{n}\]等同于找到\(y\)使得:\[n......
  • 迅为RK3562开发板安卓人工智能主板性能之选
      迅为RK3562开发板在CPU性能上表现卓越。这款开发板采用了先进的处理器和丰富的接口设计,为用户提供了无与伦比的使用体验。   在CPU性能方面,迅为RK3562开发板搭载了高性能的四核A53处理器,主频高达2.0GHz,确保了强大的运算能力和高效的处理速度。无论是复杂的图像处理、......
  • AtCoder Beginner Contest 328
    A-NotTooHard#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;#defineinti64usingvi=vector<int>;i32main(){ ios::sync_with_stdio(false),cin.tie(nullptr); intn,x; cin>>n&g......
  • 全国产RK3568J + FPGA的PCIe、FSPI通信实测数据分享!
    测试数据汇总案例时钟频率理论速率测试结果FSPI通信案例150MHz71.53MB/s读速率:67.452MB/s写速率:52.638MB/sPCIe通信案例100MHz803.09MB/s读速率:595.24MB/s写速率:791.14MB/s备注:(1)当TLPheadersize=16Byte时,PCIe理论传输速率为:7......
  • 含税168元起!四核A53+NPU+PCIe+USB3.0,瑞芯微RK3562性价比真高!
     ......
  • 【日记】终于鼓起勇气买了吹风机!(356 字)
    正文好忙。今天比昨天还要忙,水都没喝几口。嗯,好像只喝了两口。今天补了一份印鉴卡,销了一个户,变了一个户,弄了一大堆资料找人签字,还顺带要解决一个押品的历史遗留问题。中午睡得好香,都不想起床。终于鼓起勇气,买下了米家的吹风机!降了整整8块钱。69块钱拿下。......