acwing abc dfs 97

acwing1055股票买卖 II

其实做这题我一眼DP... 设$f[i]$表示前$i$天能够获得的最大利润(肯定未持股) 有$f[i]=max(f[i-1],a[i]-a[j]+f[j-1])$,第一个决策表示未在当天购入股票 稍微优化即可,复杂度为$O(n)$ ``` #include using namespace std; ......
股票 acwing 1055 II

ABC243F

发现直接记录有哪些奖品被选是不可能的,所以考虑转换一下思路:设 $dp_{i,j,p}$ 为只考虑前 $i$ 个奖品,抽了 $j$ 次,有 $p$ 种不同奖品的的概率。 这个状态相当于是维护一个操作(抽奖)序列。考虑每次加入 $q$ 个第 $i$ 种奖品,就相当于是将原序列和一个由 $q$ 个 $i ......
243F ABC 243

BFS和DFS基础

# BFS和DFS基础 ## 搜索简介 搜索是"暴力法"算法的具体实现,是一种吧所有可能的情况都罗列出来,然后逐一检查,从中找到答案的方法。 ### 一般步骤 1. 找到所有可能的数据,并且永数据结构表示和存储。 2. 优化:尽量多的排除不符合条件的数据,以减少搜索空间。 3. 用某个算法快速检索这 ......
基础 BFS DFS

abc089 <前缀和>

### 题目 [D - Practical Skill Test](https://atcoder.jp/contests/abc089/tasks/abc089_d) ### 思路 - 计算出所有结点在跳转过程中的前缀和, 从而O1查询 - 根据数据范围, 实际上不需要二分, 直接开相同大小的数组 ......
前缀 abc 089 lt gt

abc088 <bfs 最短路>

### 题目 [D - Grid Repainting](https://atcoder.jp/contests/abc088/tasks/abc088_d) ### 思路 - bfs找到从起点到终点的最短路, +1(起点), 即为至少留下的白色块的个数 - 则答案 = 总白色块数 - (最短路+1 ......
abc 088 bfs lt gt

abc086d <二维前缀和 同余>

### 题目 [D - Checker](https://atcoder.jp/contests/abc086/tasks/arc089_b) ### 思路 - 坐标对 2k 取余, 通过二维前缀和计算满足条件的个数; - 也可对 k 取余, [参考](https://www.luogu.com.c ......
前缀 086d abc 086 lt

击杀黄金蛋糕人马(dfs + 记忆化搜索)(难)

题解: 这段代码实现了一个递归的记忆化搜索算法,用于解决一个求最大蛋糕面积下限的问题。下面解释一下其递归思路: 定义状态 设 ways[w][h][m] 表示当前蛋糕的宽度为 w,高度为 h,已经切了 m 刀时,最大蛋糕面积的下限。 状态转移 对于当前的蛋糕,可以选择竖着切一刀或者横着切一刀。竖着切 ......
蛋糕 记忆 黄金 dfs

Codeforces Round 881 (Div. 3) D - Apple Tree(dfs)

https://codeforces.com/contest/1843/problem/D ``` 题目大意: 一颗树中,每次给定两个结点,每个结点都可以移动到孩子结点,最后可以到达叶子结点, 问我们这两个结点最终移到叶子结点有多少种组合? (其实就是让求以这两个节点为根的子树的叶子结点个数的乘积) ......
Codeforces Apple Round Tree 881

abc085d <贪心>

### 题目 [D - Katana Thrower](https://atcoder.jp/contests/abc085/tasks/abc085_d) ### 思路 - 关键: 连续使用ai与投掷bi并无冲突, 可先使用ai再投掷bi - 找到ai中的最大值maxa; 首先从大到小使用bi中比 ......
085d abc 085 lt gt

abc084d <素数筛 前缀和>

### 题目 [D - 2017-like Number](https://atcoder.jp/contests/abc084/tasks/abc084_d) ### 思路 - 筛出数据范围`1e5`范围内的素数 - 检查每个素数是否为 2017-like - 对`1~1e5`内的2017-lik ......
素数 前缀 084d abc 084

abc083d <思维 贪心>

### 题目 [D - Wide Flip](https://atcoder.jp/contests/abc083/tasks/arc088_b) ### 思路 参考[live4m的博客](https://blog.csdn.net/weixin_44178736/article/details/1 ......
思维 083d abc 083 lt

abc082d <bitset 状压dp>

### 题目 [D - FT Robot](https://atcoder.jp/contests/abc082/tasks/arc087_b) ### 思路 - 动态规划的方式记录每次行动后, 机器人在坐标系中所有可能位置 - 通过bitset对状态进行压缩, 即每个位置有机器人true or 没 ......
bitset 082d abc 082 lt

[ABC135D] Digits Parade

> [Digits Parade の 传送门](https://www.luogu.com.cn/problem/AT_abc135_d) ## Solution 首先看到 > $1\le |S|\le 10^5$ 考虑 DP。 定义 $f_{i,j}$ 表示前 $i$ 个位置的数除以 $13$ 的 ......
Digits Parade 135D ABC 135

ABC222D-Between Two Arrays(前缀和优化dp)

题意:给定两个递增数列A和B,构造一个ai <= ci <= bi 的递增数列C,询问满足条件的C的个数。 普通dp会超时,用前缀和优化 n=int(input()) a=list(map(int,input().split())) b=list(map(int,input().split())) ......
前缀 D-Between Between Arrays ABC

[ABC134E] Sequence Decomposing

[Sequence Decomposing の 传送门](https://www.luogu.com.cn/problem/AT_abc134_e) ### 前置知识 > [multiset](https://zh.cppreference.com/w/cpp/container/multiset) ......
Decomposing Sequence 134E ABC 134

ABC309G Ban Permutation

### Problem > 求有多少个 $1$ 至 $n$ 的排列 $P$,满足对于任意 $i$ 都有 $|i-p_i|\ge X$。 > $1\le n\le 100$,$1\le X\le 5$。 ......
Permutation 309G ABC 309 Ban

abc081d <思维 构造>

[D - Non-decreasing](https://atcoder.jp/contests/abc081/tasks/arc086_b) ``` // https://atcoder.jp/contests/abc081/tasks/arc086_b // // 两种情况非常容易构造 : 全整 ......
思维 081d abc 081 lt

abc080d <区间重叠>

[D - Recording](https://atcoder.jp/contests/abc080/tasks/abc080_d) ``` // https://atcoder.jp/contests/abc080/tasks/abc080_d #include #include using na ......
区间 080d abc 080 lt

Atcoder ABC 309 F

# [Atcoder ABC 309 F](https://atcoder.jp/contests/abc309/tasks/abc309_f) ## 题意 n个盒子,长宽高为$x,y,z,$(长宽高是相对的,可以任意调换),问是否有一个盒子可以完全容纳另一个盒子,即存在一个$A_i={x_i,y_ ......
Atcoder ABC 309

abc079d <Floyed>

[D - Wall](https://atcoder.jp/contests/abc079/tasks/abc079_d) ``` // https://atcoder.jp/contests/abc079/tasks/abc079_d // #include #include #include # ......
Floyed 079d abc 079 lt

abc078d <博弈>

[D - ABS](https://atcoder.jp/contests/abc078/tasks/arc085_b) ``` // https://atcoder.jp/contests/abc078/tasks/arc085_b // // 思路: // 首先注意到两点: // 1. a[n] ......
078d abc 078 lt gt

97.隐式转换,如何消除隐式转换?

# 97.隐式转换,如何消除隐式转换? 1.C++的基本类型中并非完全的对立,部分数据类型之间是可以进行隐式转换的。所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。很多时候用户可能都不知道进行了哪些转换 2.C++面向对象的多态特性,就是通过父类的类型实现对子类的封装。通过隐式转换, ......
97

abc077d <思维 + 最短路 (将构造数字过程视为最短路)>

[D - Small Multiple](https://atcoder.jp/contests/abc077/tasks/arc084_b) ``` // https://atcoder.jp/contests/abc077/tasks/arc084_b // // 参考: // 1. https ......
思维 过程 数字 077d abc

AT_abc306_h 题解

# AT_abc306_h Balance Scale 题解 ## Links [洛谷](https://www.luogu.com.cn/problem/AT_abc306_h) [AtCoder](https://atcoder.jp/contests/abc306/tasks/abc306_h ......
题解 AT_abc 306 abc AT

acwing -- 1459. 奶牛体操

给我们一些排列,问我们在这些排列中,哪些元素的相对位置没有发生变化。 1.利用哈希 我们对每个数据对(i, j)进行哈希处理 v = i * 100 + j; 然后对剩下的排列进行枚举,看看有没有 j * 100 + i == v的,如果有,就说明所有排列中即出现了(i, j) 也出现了(j, i) ......
奶牛 体操 acwing 1459

acwing -- 3745. 牛的学术圈 I

h指数问题,当看到题目要求最大,最小的字眼是,可以想到二分,dp,枚举。 本题采用二分答案,对h指数进行二分。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ......
学术 acwing 3745

abc076d <dp / 贪心>

[D - AtCoder Express](https://atcoder.jp/contests/abc076/tasks/abc076_d) ``` // https://atcoder.jp/contests/abc076/tasks/abc076_d // // dp[i][j] 表示第i秒 ......
076d abc 076 lt dp

acwing -- 3346. 你知道你的ABC吗

简单模拟,最小的两个数字是a, b, 最大的数字时a + b + c #include<iostream> #include<cstdio> #include<algorithm> #include<set> using namespace std; int main() { multiset<in ......
acwing 3346 ABC

acwing -- 3370. 牛年

大模拟,本题我们可以唯一确定每头牛的相对年龄。 若无法确定牛的相对年龄,可以用图论进行遍历。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<unordered_map> using ......
acwing 3370

acwing -- 3358. 放养但没有完全放养

利用计数的思想,把每个字母分配到26个桶中,下标从小到大排序,利用upper_bound即可判断 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int ma ......
acwing 3358