acwing abc dfs 97

[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

ACW756回形矩阵

点击查看代码 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt( ......
矩阵 ACW 756

DFS搜索算法

简介 深度优先搜索算法\((Depth First Search,\) 简称 \(DFS):\) 一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点 \(v\) 的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点 \(v\) 的那条边的起始节 ......
算法 DFS

acwing 194涂满它总结

先说下我最开始的思路 我设计的估价函数是这么想的,因为估价函数必须优于实际情况嘛,我就考虑每走一步会改变什么,不难发现会把一些新的点加入连通块,我就让每一步中本来不该加入连通块(因为颜色不同)但是相连的点加入连通块,相当于每一步都加入了更多的块,肯定会比实际操作更优 比如说这个图 第一步加入这些块 ......
acwing 194

AcWing 181. 回转游戏 (IDA* 实现起来有点小困难

再看代码的时候有不懂的就再看一遍视频 package 算法提高课; import java.util.Scanner; // 本题听起来非常简单, 但是实现起来我觉得难度还是有的 /* 首先根据题目说明给整个地图的格子手动编号 (A) (B) 0 1 2 3 (H) 4 5 6 7 8 9 10 ( ......
AcWing 181 IDA

AcWing 90. 64位整数乘法 (龟速乘

package 算法提高课; import java.math.BigInteger; import java.util.Scanner; public class acw90 { public static void main(String[] args) { Scanner sc = new S ......
乘法 整数 AcWing 90

AcWing 166. 数独 (优化搜索顺序 + 进制压缩 + 各种映射 + 好复杂的实现

package 算法提高课; import java.util.Scanner; public class acw166 { static StringBuilder str; static final int N = 9, M = 1 << N; static int[] ones = new i ......
进制 顺序 AcWing 166

AcWing 237. 程序自动分析 (并查集 + 无序离散化 + 输入过多要快读

package 算法提高课; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util ......
过多 程序 AcWing 237

牛客 牛客周赛Round20. (如何让两个dfs连起来) D 小红的数位删除 (让第二个dfsB继承第一个dfsA的结果, 从而达到目的

package newCode.周赛Round20; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class D_solution2 { static int la, lb; ......
数位 目的 两个 结果 Round

AcWing 1129. 热浪 (dij板子题

package 算法提高课; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; public class acw1129 { static class PII implements C ......
板子 热浪 AcWing 1129 dij

AcWing 3305. 作物杂交 (spfa建边变形版本

package 蓝桥杯; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class lanqiao1443 { static ......
作物 版本 AcWing 3305 spfa

AcWing 167. 木棒 (剪枝非常多的一道搜索题

package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw167 { static int[] w; static boolean[] st; static int sum, len, n; / ......
木棒 一道 AcWing 167

AcWing 1128. 信使 (dij板子题 + 求花费最大的那个点的花费

package 算法提高课; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; public class acw1128 { static int n, m; static int[] ......
板子 信使 AcWing 1128 dij

AcWing 1127. 香甜的黄油 (dij板子不能背太死, 需要知道含义灵活变通

package 算法提高课; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; public class acw1127 { static int n, p, c; static in ......
板子 黄油 含义 AcWing 1127

AcWing 蓝桥杯 3994. 阿坤老师的独特瓷器 (非常经典俄罗斯套娃问题

package 蓝桥杯; import java.util.Arrays; import java.util.Scanner; public class lanqiao3994 { /** * 思路 : * 固定套路了感觉, 先按直径从大到小排, 然后直径相同的再按高度从小到大排 * 然后从前往后遍 ......
蓝桥 瓷器 老师 经典 AcWing

AcWing 920. 最优乘车 (抽象建图 + bfs

package 算法提高课; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class acw920 { /** * 本题的 ......
AcWing 920 bfs

AcWing 1126. 最小花费 (从终点方向求的dij -> 注意本题这么求就必须判断两点之间是否有边

package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw1126 { static int n, m; static int[][] g; static double[] d; static ......
本题 终点 方向 之间 AcWing

AcWing 903. 昂贵的聘礼 (超级源点 + 等级限制 + 抽象建图

package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw903 { static int m, n; static int[] dis, level; static boolean[] st; ......
聘礼 等级 AcWing 903

AcWing 180. 排书 (IDA*算法 = A* + 迭代加深, 感觉其实之所以IDA*可以过就是因为利用迭代加深和估价函数做了一步类似于剪枝的操作

要是有疑问就再看一遍视频 package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw180 { static Scanner sc = new Scanner(System.in); stati ......
算法 函数 IDA 之所以 感觉

[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