balance scale abc 306

The 2023 ICPC Asia Hefei Regional Contest Test D. Balanced Array

Preface 这题赛场上出了个关键点基本都想到的做法,但因为一个地方卡住了没过去导致不得不选择弃掉这道题 赛后补了下发现\(O(n\log n)\)的做法是只差临门一脚了,但\(O(n)\)的做法还是trick性挺强的 Solution 首先考虑枚举\(k\),不难发现此时合法的前缀一定是个连续的 ......
Balanced Regional Contest Array Hefei

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

ABC327 E Maximize Rating 题解

Link ABC327 E Maximize Rating Question 给出 \(N\) 个数 \(Q_i\),从中按照顺序选出 \(k\) 个数,使得 \[R=\frac{\sum^k_{i=1}(0.9)^{k-i}\times Q_i}{\sum^k_{i=1}(0.9)^{k-i}}- ......
题解 Maximize Rating ABC 327

ABC325 D Printing Machine 题解

Link ABC325 D Printing Machine Question 有 \(N\) 个零件需要打印,每个零件从 \(T_i\) 时间进入机器,从 \(T_i+D_i\) 时间离开机器,每个时间段只能答应一个零件,求最多能打印多少零件 Solution 贪心的去想,对于第 \(i\) 个时 ......
题解 Printing Machine ABC 325

ABC330

D 记录每一行,每一列有多少个 o,然后统计答案即可。 #include<bits/stdc++.h> #define int long long using namespace std; int n; string str[2005]; int r[2005][2005],l[2005][2005 ......
ABC 330

AT_abc329_e [ABC329E] Stamp 题解

题目翻译 给你两个字符串:\(S\) 由大写英文字母组成,长度为 \(N\);\(T\) 也由大写英文字母组成,长度为 \(M\),小于 \(N\)。有一个长度为 \(N\) 的字符串 \(X\),它只由 # 字符组成。请判断是否有可能通过执行以下任意次数的操作使 \(X\) 与 \(S\) 匹配: ......
题解 329 AT_abc Stamp 329E

[ABC328C] Consecutive 题解

给一个长度为 \(n\) 的字符串 \(s\),\(q\) 次询问,每一次 \(l\) 和 \(r\) 区间内有多少个 \(s_i\) 等于 \(s_{i-1}\)。 \(10^5\) 的数据 \(O(N^2)\) 暴力肯定行不通。于是我们考虑预处理前缀和,处理到 \(i\) 下标以及之前有多少个 ......
题解 Consecutive 328C ABC 328

[ABC329C] Count xxx 题解

插曲 因为本人看错了题面,买看到一个子串只包含一种字母,所以切完 D 和 E 才回来发现很简单。 问题翻译 给你一个长度为 \(N\) 的字符串 \(S\),由小写英文字母组成。 求 \(S\) 的非空子串中有多少个是一个字符的重复。在这里,作为字符串的两个子串是相等的,即使它们是以不同的方式得到的 ......
题解 Count 329C ABC 329

[ABC329D] Election Quick Report 题解

题目翻译 有一场选举,要从 \(N\) 名候选人中选出一名获胜者,候选人编号为 \(1, 2, \ldots, N\),共有 \(M\) 张选票。 每张选票正好投给一位候选人,其中 \(i\) 票投给了候选人 \(A_i\)。 选票将按照从第一张到最后一张的顺序进行统计,每张选票统计完毕后,将更新并 ......
题解 Election Report Quick 329D

[ABC328D] Take ABC 题解

题目大意: 给你一个字符串 \(s\)。你要在其中找到多少个 ABC 的子串,例如 AABCBC 算两个,删掉中间的 ABC 后,前面的和后面的加起来也是一个 ABC,所以就算两个。 思路分析: 首先很容易写出暴力,把一个 ABC 提取出来后把后面的元素往前移,然后再重复操作,但是我们发现时间复杂度 ......
题解 ABC 328D Take 328

AT_abc324_e [ABC324E] Joint Two Strings 题解

题目大意 给你 \(n\) 个字符串 \(s\),和一个字符串 \(t\)。 问你,有多少组是 \(s_j\) 拼在 \(s_i\) 后面所组成的新字符串中,\(t\) 是其子序列。 思路 分析:\(5 \times 10^5\) 的数据肯定需要 \(O(n)\) 或 \(O(n \log n)\) ......
题解 324 Strings AT_abc Joint

[ABC327D] Good Tuple Problem 题解

分析: 这一道题很容易发现可以用并查集来维护 (不知道为什么其他人都用了图论),\(a_i\) 与其对应的 \(b_i\) 代表着 \(a_i\) 这个集合里不能存在着 \(b_i\)。 根据只有存在两个集合,所以我们会发现,若 \(x\) 与 \(y\) 不在一个集合且 \(x\) 与 \(z\) ......
题解 Problem Tuple 327D Good

[ABC321G] Electric Circuit 状压DP

用到了好多技巧的状压DP 我们先统计总数然后除以m的阶乘就可以了 设f[i]表示状态为i的集合造成的贡献数(也就是状态为i的集合 不与集合外的点联通 且 这个集合联通块数是1 的情况数) 不与集合外的点联通的话只用考虑结合i之间连边,集合外那些点之间两边就可以啦 这个集合联通块数是1 就比较难处理了 ......
Electric Circuit 321G ABC 321