abc

Atcoder abc301 复盘(更新中)

跳转比赛链接 A - Overall Winner 简述: 高桥和青木下了 \(N\) 盘棋。给你一个长度为 \(N\) 的字符串 \(S\),表示这两盘棋的结果。如果 \(S\) 的 \(i\) 个字符是 t,那么高桥赢得了 \(i\) 局;如果 \(S\) 的 \(i\) 个字符是 A,那么青木 ......
Atcoder 301 abc

ABC312 复盘

ABC312 复盘 At 链接 LG 链接 A Chord 思路解析:水题,一个 if 即可 #include<bits/stdc++.h> using namespace std; string s; int main() { cin >> s; if(s == "ACE" || s == "BD ......
ABC 312

ABC301 复盘

ABC301 复盘 At 链接 LG 链接 [ABC301A] Overall Winner 思路解析:从头开始遍历字符串,遇到一个字符就给对应的一方加分,输出第一个胜场大于 \(\lceil n / 2\rceil\) 的一方。 #include<bits/stdc++.h> using name ......
ABC 301

[ABC241Ex] Card Deck Score 题解

题目链接 点击打开链接 题目解法 个人认为推式子很妙的生成函数题 暴力套上生成函数,\(ans=[x^m]\prod\limits_{i=1}^{n}(\sum\limits_{j=1}^{b_i}(a_ix)^j)\) \(\sum\limits_{j=1}^{b_i}(a_ix)^j=\frac ......
题解 Score Card Deck ABC

AT_abc312复盘

AT_abc312 复盘 A 一眼过去直接 \(if\) 秒了 AC code: #include <bits/stdc++.h> using namespace std; string s; int main(){ cin >> s; if (s == "ACE" || s == "BDF" || ......
AT_abc 312 abc AT

[ABC254Ex] Multiply or Divide by 2

[ABC254Ex] Multiply or Divide by 2 题意: 给定大小为 $ n $ 的集合 $ A $ 和 $ B $,你可以对集合 $ A $ 中的元素 $ a_i $ 进行两种操作,分别为 $ a_i \leftarrow \lfloor \dfrac{a_i}{2} \rfl ......
Multiply Divide ABC 254 Ex

Atcoder-ABC317G-Rearranging

ABC317G - Rearranging 题意 给出一个 \(n\) 行 \(m\) 列的矩阵,可以将每一行的 \(m\) 个数重新排列,问能不能得到 \(m\) 列都是 \(n\) 的排列的矩阵,能得到则输出任意一个方案。 给出的矩阵满足对于 \(i \in [1,n]\) ,都恰好出现了 \( ......

ABC256H

不懂其他题解在干什么,明明一个线段树就可以做的题偏要各种数据结构一起上,有难写复杂度也不优。介绍一种优质算法。 区间推平区间求和是简单的。现在只需要解决区间向下取整的除法。 对于这种不好直接在线段树上搞得操作,性质又很妙妙的,考虑势能分析。 若区间最大值和最小值除以 \(x\) 的值一样就一起打推平 ......
256H ABC 256

ABC325G offence 题解

给出一个长为 \(n\) 的字符串和非负整数 \(k\)。你可以进行以下操作若干次,使得最终字符串长度最小。 选择一个字串 of。然后删掉 of 以及这之后的 \(i\) 个字符。\(i\) 由你决定,但要满足 \(0\leq i\leq k\)。 输出这个最小长度。\(1\leq n,k\leq ......
题解 offence 325G ABC 325

[ABC254E] Small d and k 题解

题目传送门 一道暴力题。 度数和 \(k\) 那么小?直接暴力 \(n\) 遍 bfs,注意 bfs 的队列只能 push 距离不超过 \(3\) 的点。但有个问题,每次 bfs 都需要清空一次距离数组,这样子的时间复杂度是 \(O(n^2)\) 的。但也不难想到,距离数组中被赋值的地方不会很多,记 ......
题解 Small 254E ABC 254

ABC331G 题解

盒子里有 \(n\) 张 \(m\) 种卡片,第 \(i\) 种卡片有 \(c_i\) 张。\(\sum c_i=n\)。 每次均匀随机选一张,再放回去。求拿出过的卡片包含全部种类所需要的取出次数的期望。 对 \(998244353\) 取模。 \(1\leq n,m\leq 2e5,c_i\gt0 ......
题解 331G ABC 331

ABC331G题解

ABC331G 日常被bot吊打罢了。 首先注意到一件事是你 需要求一堆max的期望 对吧。所以其实上来就应该试试上 min-max容斥 的。但是鉴于我没有脑子,所以其实没想到也可以理解。 先来复习一下式子: \[Emax(S) = \sum_{T \subset S} Emin(T)(-1)^{\ ......
题解 331G ABC 331

ABC 331 F - Palindrome Query(字符串哈希,树状数组)

字符串哈希 [OI-Wiki](字符串哈希 - OI Wiki (oi-wiki.org)) 分为两种哈希方式:以左为高位 和 以右为高位 如果只是快速查询每个字串的哈希值,用以左为高位比较简单,即 \[Hash[l...r]=Hash[1...r]-Hash[1...(l-1)]\times ba ......
数组 字符串 Palindrome 字符 Query

AtCoder_abc328

A - Not Too Hard 题目链接 题目大意 给出$N$个数($S_1$ $S_2$...$S_n$)和一个$X$,输出所有小于等于$X$的$S_i$之和 解题思路 循环遍历每一个$S_i$并判断是否大于$X$ 代码 // Problem: A - Not Too Hard // Conte ......
AtCoder_abc AtCoder 328 abc

AtCoder_abc327

T1 ab 循环从s[0] 到s[n-2] 判断有无ab相邻 T2 A^A 两层循环枚举就可以了 由于aa会增长的很快,所以当a=16时aa就已经大于$10^{18}$了,一定不会T 就这么点数打表也能过 T3 Number Place 就是数独的判断规则,h,l,g三个数组存储已有的数就好 宫的判 ......
AtCoder_abc AtCoder 327 abc

AtCoder_abc329

AtCoder_abc329 比赛链接 A - Spread A题链接 题目大意 输入一个字符串由大写字母组成的$S$,输出$S$并在每一个字符之间加上空格 解题思路 随便打打就能过.jpg 代码 // Problem: A - Spread // Contest: AtCoder - Sky In ......
AtCoder_abc AtCoder 329 abc

AtCoder_abc330

AtCoder_abc330 比赛链接 A - Counting Passes A题链接 题目大意 给出$N$个数$a_1,a_2,a_3\cdots,a_N$,和一个正整数$L$。输出有几个$a_i \le L$. 解题思路 O(n)遍历一遍就好了 代码 // Problem: A - Count ......
AtCoder_abc AtCoder 330 abc

AtCoder_abc331

AtCoder_abc331 (这次题真的真的真的好难) 比赛链接 A - Tomorrow 题目链接 题目大意 有一个$M$个月,$D$天的日历,请输出$y年m月z日$的下一天。 解题思路 先让天数加一,如果超过了$D$就让月份加一,天数减$D$,然后月份同理 代码 // Problem: A - ......
AtCoder_abc AtCoder 331 abc

AtCoder_abc326

T1 2UP3DOWN 简单的if判断,做题一分钟,翻译十分钟。。。 代码: #include<bits/stdc++.h> using namespace std; int main(){ int x,y;cin>>x>>y; if((x<=y&&y-x<=2)||(x>y&&x-y<=3)) c ......
AtCoder_abc AtCoder 326 abc

[ABC017D] サプリメント 题解

题目传送门~ 一道 DP 前缀和优化好题。 题目分析 首先,朴素 DP 非常好想。可以从后向前考虑,设 \(f_i\) 表示从第 \(i\) 个补品开始的摄取方法数。 摄取一个补品:\(f_i = f_{i+1}\) 摄取两个补品:\(f_i = f_{i+2}\) 以此类推。 则转移方程为: \[ ......
题解 017D ABC 017

Atcoder ABC235 D - Multiply and Rotate

[ABC235D] Multiply and Rotate 题面翻译 给定两个整数\(a\),\(x\)和\(N\),你可以对这两个数进行以下操作。 把\(x\)乘以\(a\) 将\(x\)末尾的数字移动到\(x\)的开头(该操作只能在\(x≥10\)且\(x\)不能被\(10\)整除时进行) 例如 ......
Multiply Atcoder Rotate ABC 235

ABC270F 题解

和博客园一样好的体验 思路 首先看到花最小代价使得所有点连通,果断转换成最小生成树问题。 接下来就要考虑怎么建图,首先陆地就正常连不用说,建机场和港口的代价貌似都是点权,考虑转成边权。因为一个点飞或者划船到另一个点要两重代价,所以若我们想让 \(u\) 和 \(v\) 建能飞过去的边,我们可以先从 ......
题解 270F ABC 270

[ABC277G] Random Walk to Millionaire 题解

题目链接 点击打开链接 题目解法 首先 \(O(n^3)\) 的 \(dp\) 是显然的,令 \(f_{i,j,k}\) 为第 \(i\) 步在 \(j\),当前等级为 \(k\) 的 \([i,n]\) 步获得钱数的期望,转移枚举出边即可 一个很妙的优化是:贡献都是 \(k^2\) 的形式,所以我 ......
题解 Millionaire Random 277G Walk

AtCoder Beginner Contest(abc) 330

B - Minimize Abs 1 难度: ⭐⭐ 题目大意 给定n个数Ai和一个范围l, r; 问是否存在一个长度为n的序列Xi, Xi的范围是l ~ r; 对于1 ~ n中的每个i, 都要求满足|Xi - Ai| <= |Y - Ai|, Y是l ~ r中的任意一个数; 解题思路 题目有点难理解 ......
Beginner AtCoder Contest 330 abc

ABC330 C Minimize Abs 2 题解

Link ABC330 C Minimize Abs 2 Question 给定一个整数 D 求 \(|x^2+y^2-D|\) 的最小值,\(x,y\) 为非负整数 Solution 同时枚举 \(x,y\) 显然是不切实际的,考虑折半枚举 枚举 \(x^2\) 然后寻找接近 \(D-x^2\) ......
题解 Minimize ABC 330 Abs

ABC330 E Mex and Update 题解

Link ABC330 E Mex and Update Question 给一个数组 \(a\),有 \(Q\) 次修改 每次把 \(a_i\) 改成 \(x\) 问每次修改后,不在 \(a\) 数组中的最小非负数时多少 Solution 记录每个 \(a_i\) 出现的次数 \(num\) 每个 ......
题解 Update ABC 330 Mex

[ABC321E] Complete Binary Tree

思路:第一次先把往后距离为 $k$ 的点算出来,然后再每次往前走一个,考虑 $k-i$ 的情况。(具体见代码注释)。 代码: ```cpp#include <bits/stdc++.h>using namespace std;// headint sum[100],head=0;int n,x,k; ......
Complete Binary 321E Tree ABC

[ABC315Ex] Typical Convolution Problem

题目链接 首先观察到这个形式,容易发现它和常规的卷积不同点就在于:题目给出的求和定义中,\(\sum\) 符号下面的式子是 \(i+j<N\) 求和而不是 \(i+j=N\)。 为了方便计算,我们引入: \[G_n=\sum_{i+j<N}F_iF_j \]我们发现,假设所有 \(F_{1\sim{ ......
Convolution Typical Problem ABC 315

ABC330 A-E 题解

ABC330题解 AtCoder Beginner Contest 330 A - Counting Passes 思路: 枚举一遍,当前数大于\(L\)使\(ans+1\)即可. 代码: #include<iostream> #define int long long using namespac ......
题解 ABC 330 A-E

[ABC327G] Many Good Tuple Problems

题目链接 简化题意:有一个 \(n\) 个点的图,问有多少个长度为 \(M\) 的边序列,满足连边后图是二分图。 \(n\le 30,m\le 10^9\) 考虑先强制要求无重边。 定义 \(f_{i,j}\) 为 \(i\) 个点,\(j\) 条边的图的二分图染色数量(染色方式不同算多次)。这个是 ......
Problems Tuple 327G Many Good