//存储容器:1:node father[maxn][maxn];//当前节点的父节点
2:struct node//*** { int x,y,d; char pos;//存储D L R U };
具体存储:
for(int i0;i<4;i){int toxnow.xdix[i];int toynow.ydiy[i];father[tox][toy].x…
[USACO11DEC]RoadBlock S / [USACO14FEB]Roadblock G/S - 洛谷 #include <bits/stdc.h>
#define LL long long
using namespace std;
const int maxn 1e6 10;
const int mod 1e9 7;
const int INF 1e9 10;
const int N 1e6;int n,m,a[105][105],pre[…
分数 25
全屏浏览题目
作者 CHEN, Yue
单位 浙江大学
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product fr…
个人觉得直接放入代码是最管用的。 其他方法类似,题意请参考其他博主。
#include <bits/stdc.h>
using namespace std;
const int N 1e4 50;int maxn 2000000000;
int c, n, ed, s[N], m, minlen, needn, backn, pre[N];
bool flag, book[N];
vector<p…
题目链接 Leetcode.1992 找到所有的农场组 Rating : 1539 题目描述
给你一个下标从 0 开始,大小为 m x n 的二进制矩阵 land ,其中 0 表示一单位的森林土地,1 表示一单位的农场土地。
为了让农场保持有序,农场土地之…
Smallest number - 洛谷 #include<bits/stdc.h>
#define int long long
using namespace std;
int a[10];
string s[5];
bool vis[10];
int ans1e13;//0x3f1e9,所有有点不够
void dfs(int u)
{
// for(int i0;i<4;i)
// {
// printf("%d…
一句话,深度搜索所有路径,判断路径是否伪回文
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val0, leftNone, rightNone):
# self.val val
# self.left left
# self.right right
clas…
2023每日刷题(四十)
Leetcode—94.二叉树的中序遍历 C语言实现代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
/*** Note: The returned array mus…
树链剖分 - OI Wiki
树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。具体来说,将整棵树剖分为若干条链,使它组合成线性结构,然后用其他的数据结构维护信息。 全是oiwiki的,不写咯 定义:
fa…
文章目录 A. 字符串拼接🍻 AC code B. 最小差值🍻 AC code C. 红色和紫色🍻 AC code D. abb🍻 AC code E. kotori和素因子🍻 AC code F. 红和蓝🍻 AC code 🥰 Tips:AI可以把代码从 j…
文章目录 贪心:A. Sasha and Array Coloring结论:B. Long Long性质:C. Sum in Binary Treedfs求叶子数量:D. Apple Tree二分与前缀和:E. Tracking Segments 贪心:A. Sasha and Array Coloring
Problem - A…
A. tokitsukaze and Connection 题目链接 题意:给你一个全由小写字母构成的字符串,判断这个字符串中的同种字母是不是全部连在一起; 思路:直接暴力for一遍,从第二个字母开始,判断当前字母有没有出现过&…
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn 20;
int arr[maxn]; //这n个数字有哪几个 如1 2 3
int vis[maxn]; //判断这个数字是否被使用
int n;//表示有n个数 比如有3个数字
int stc[maxn];//保存排列的结果,这…
整体思路就是普通的dfs,只是判断条件多了一个素数,如果出了问题,可以按照正常dfs修改,本人初学dfs,代码可能有问题
#include<iostream>
using namespace std;
const int N 999;
int a[N];//保存结果
int vis[N…
上午: [1]听四级网课 [2]记单词
[3]洛谷:perket
#include<stdio.h>
#include<math.h>
int acid1,salt0;
int s[20],b[20];
int n;
int book[100]{0};
int absdifference1e9;
void dfs(int c)
{//这个好像有没有都无所谓
// if(c>n-1)
// {
// …
题目:
This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with…
深度优先算法(Depth First Search,DFS)是一种常见的图形算法,它是一种用于遍历或搜索树或图的算法。在深度优先搜索中,我们首先探索一个子树的深度,然后再回溯到父节点,接着探索另一个子树的深度…
原题链接:CSP 202112-5 极差路径
#include <bits/stdc.h>
using namespace std;
#define ll long long
const int MAX5e510;
const int INF1e9;int n,k1,k2;
vector<int> g[MAX];
int vis[MAX];
int p[MAX];
int num1;
set<pair<int,int> >…
递归实现全排列
#include<bits/stdc.h>
using namespace std;
//递归实现全排列
int n;
int a[20];
int vis[20];
void dfs(int step){if(step>n){for(int i1;i<n;i){cout<<a[i]<<" ";}cout<<endl;return ;}for(int i1;i<n;i){if…
文章目录 一、题目二、题解 一、题目
Given an m x n matrix board containing ‘X’ and ‘O’, capture all regions that are 4-directionally surrounded by ‘X’.
A region is captured by flipping all O’s into X’s in that surrounded region.
Example 1:
Input…
目录 M - 八皇后问题
输入格式
输出格式
N - 选数
输入格式
输出格式
O - 打开灯泡 Switch the Lamp On M - 八皇后问题 努比亚和苏丹没有子女,所以他要从一些有集成资格的继承者中挑选一个出来继承王位。他希望这个继承者足够聪明,所以他准备了一…
class Solution {
public://是课程表207题的升级版,不同是结果需要输出顺序数组//不同的地方作了标注,思路不懂的建议先翻看第207题的注释vector<vector<int>> vecVecInt;vector<int> visited;bool flag true;vector<int> ans;…
题目地址:https://leetcode.com/problems/flood-fill/description/解题思路:深度优先搜索code(java):public int[][] floodFill(int[][] image, int sr, int sc, int newColor) {int oldColor image[sr][sc];if (oldC…
题目描述
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入: n 4, k 2
输出:
[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],
]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combin…
题目
法1:岛屿数量
class Solution {public int numIslands(char[][] grid) {int m grid.length, n grid[0].length;int[][] used new int[m][n];int res 0;for (int i 0; i < m; i) {for (int j 0; j < n; j) {if (grid[i][j] 0 || used[i][j] 1) …
树和无向图都可以看成有向图(无向图在添加边的时候添加双向的) 下面是模版,实际使用要根据情况改:
#include <iostream>
#include <cstring>
using namespace std;const int N 10010, M N * 2;int n;
int h[N], e[…
【解题思路】 先将二叉树中的数字放在数组中,对数组进行排序。对二叉树使用先序遍历。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/
class…
A - New Scheme
AC代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#define int long long
using namespace std;
const int N 110;
int a[N];
void solve()
{for (int i 0; i < 8; i) cin >> a[i];if (a[0] < …
LINK
题目 思路: 先将每个人拥有的桃子数量减1,再将其求出前缀和(求的同时直接modk)先将每个人拥有的桃子数量减1,再将其求出前缀和(求的同时直接mod k)先将每个人拥有的桃子数量减1,再将其求出前缀和&…
原题链接:CSP 201809-4 再卖菜 学习博客:ccf再卖菜
#include <bits/stdc.h>
using namespace std;
#define ll long long
const int N310;
int t;int a[N],b[N];
bool f[N][N][N];//储存状态信息,也就是dfs的n,x,y
//分别是搜到第n天&…
2022.2.11 练习 PAT甲 1034 Head of a Gang (原题链接)
图的深度遍历:
#include <bits/stdc.h>
using namespace std;
const int MAX_NUM2010;
int n,k;
int num0;
int G[MAX_NUM][MAX_NUM]{0};
int weight[MAX_NUM]{0};
int visit[M…
原网址:https://acs.jxnu.edu.cn/problem/NOIOPJCH02077215
描述:
Huanhuan challenges you to a simple math problem.
Define F(x)F(x) as the sum of the decimal digits of xx.
//嬛嬛给你一个简单的数学问题。
定义F(x)F(x)是十进制…
A - 棋盘问题
#include <bits/stdc.h>
using namespace std;
int ans0;//最终方案数
int h0,qi0;
char map0[10][10];
int book[10];void dfs(int h1,int qi1)//h1是变化的行
{if(qi10||h1h0){ if (qi1 0)ans; return ;}//如果棋下完了或棋下到了最后一行,…
link dfs,mst,01trie,2300 题解写的很清楚,也是看了题解才会做。。
const int maxn 2e5 10;
int n;
int a[maxn];
int nxt[maxn*30][2], cnt 1;
void insert(int x) {int cur 1;for(int i 30; i > 0; i--) {if(!nxt[cur]…
HJ43 迷宫问题
#include <bits/stdc.h>
using namespace std;void dfs(vector<vector<int>>& map, vector<pair<int,int>>& paths, int x, int y){//记录走过,更新路径// cout << x << y << endl;map[x][y] 1;pair&…
选择 D 0作为本地宿主机,127作为内部回送,不予分配 A B C C 存储在浏览器 D A B B D 网络延迟是指从报文开始进入网络到它离开网络之间的时间 编程
红与黑
红与黑__牛客网 #include <iostream>
#include <stdexcept>
#include <string…
C/C++编程(1~8级)全部真题・点这里 第1题:道路 N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数:道路的长度和需要为该路付的通行费(以金币的数目来表示) Bob and Alice 过去住在城市 1.在注意到Alice在他们过去喜欢玩的纸牌游戏中作弊后,Bob和她分手…
Linova and Kingdom—CF1336A 参考文章
思路 1 1 1 号节点为根节点。很容易想到,工业城市在树的下边,旅游城市在树的上边。具体来说,如果节点 u u u 是工业城市,那么它的子树的所有节点一定都是工业城市;如果节点 u…
Problem - E2 - Codeforces
问题描述:给两个字符串和一个k。如果下标i,j满足|i - j| k or |i - j| k 1,则可以swap(s[i], s[j]),s为两个字符串之一。
思路:如果<i,z> <z,j>可行,那么<i…
P2607 [ZJOI2008] 骑士
[P2607 ZJOI2008] 骑士 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 文章目录 P2607 [ZJOI2008] 骑士题目大意思路code 题目大意
给你一个 n n n 个点, n n n 条边的基环树森林。
你可以从中选择若干个点,满足两两之间不存…
题目传送门
引
属于一眼题,不看时间限制 8 s 8s 8s 容易被诈骗
解法
简单容斥 大概 式子就是 ∑ ( − 1 ) M ∗ K ∣ S ∣ \sum(-1)^{M}*K^{|S|} ∑(−1)M∗K∣S∣ , M M M 为边集的大小, ∣ S ∣ |S| ∣S∣ 为联通块的数量 那么我们就有 空间复杂度&#…
基础
前置知识
强连通:对于有向图中两点 i i i, j j j,若存在 i i i 到 j j j 和 j j j 到 i i i 的路径,则称 i i i, j j j 强连通。强连通:对于有向图中两点 i i i, j j j࿰…
n 皇后
前置知识:
根据数学函数 y x b;
当不同的一元函数的斜率相同时,唯一能区分他们的就是截距b
因此,可以由 b y-x 得到不同的对角线直线函数(我们假设这些直线的斜率都是1)
那么反对角线 y -x b 所以b xy…
问题描述:地上有一个m行n列的方格,从坐标[0,0]到坐标[m-1,n-1].一个机器人从坐标[0,0]的格子开始移动,他每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。
public int numB…
看完题目我就拿直接用递归写了如下代码:
class Solution {private int ans;public int pathSum(TreeNode root, int targetSum) {ans 0;dfs(root, targetSum, 0);return ans;}public void dfs(TreeNode root, int targetSum, int sum){if(root null)return;sum r…
[蓝桥杯 2022 省 A] 推导部分和
题目描述
对于一个长度为 N N N 的整数数列 A 1 , A 2 , ⋯ A N A_{1}, A_{2}, \cdots A_{N} A1,A2,⋯AN,小蓝想知道下标 l l l 到 r r r 的部分和 ∑ i l r A i A l A l 1 ⋯ A r \sum\limits_{il}^{r}A_iA_{l}A…
力扣第370场周赛
找到冠军 I
答案即入度为0的点
class Solution {
public:int findChampion(vector<vector<int>>& grid) {vector<int>d(1005);int n grid.size() , m grid[0].size();for(int i 0 ; i < n ; i ){for(int j 0 ; j < m ; j )…
度优先搜索(Depth First Search,DFS)算法是一种用于遍历或搜索图或树的算法。这种算法从一个节点开始,沿着一条路径尽可能深地搜索,直到遇到不能继续前进的节点时返回上一个节点,然后继续搜索其他路径。具体…
感觉和cf div3差不多。 A - Tomorrow
签到,D和M是一年有D月M天,输入ymd输出ym[d1],如果d1>D了显然要m,模拟即可。
#include <bits/stdc.h>
//#define int long long
#define fr first
#define se second
#define endl …
个人学习记录,代码难免不尽人意。 今天做了做21年的浙大复试上机题,感觉还好,但是第一题没做出来汗,我觉得是自己阅读理解的问题,题意没有弄清楚,题目本身还是很简单的。
7-1 Square Friends For any give…
problem nowcoder
思路
把点按照奇偶分为4类,一个三角形的面积是整数当且仅当构成它的三个点中至少2个是同一类的,用总共的三角形减去这类即可。 一开始并没有发现这个性质。
// Decline is inevitable,
// Romance will last forever.
#include <bits/stdc++.h>
us…
8.树形DP
没有上司的舞会
树上最大独立集问题
Ural 大学有 N N N 名职员,编号为 1 ∼ N 1 \sim N 1∼N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 H i H_i Hi 给出,…
2022.1.28 练习 PAT甲 1094 The Largest Generation(原题链接)
自己写的代码(19分),暂时想不通为何扣分,记录留待以后思考。
#include <bits/stdc.h>
using namespace std;
const int MAX_SIZE110;…
澪有个 n n n 个点 m m m 条边的无向图,每条边都有蓝白两种颜色中的一种,保证蓝色的边形成了这个图的一个生成树。
她希望给这些边赋上边权,保证边权是 1 ∼ m 1 \sim m 1∼m 的排列,使得蓝色的边是最小生成树。
希望这些边权…
[图论与代数结构 701] 强连通分量
题目描述
给定一张 n n n 个点 m m m 条边的有向图,求出其所有的强连通分量。
注意,本题可能存在重边和自环。
输入格式
第一行两个正整数 n n n , m m m ,表示图的点数和边数。
接下来…
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径? 示例 1…
题目
#include<bits/stdc.h>
using namespace std;
#define int long long
#define pb push_back
const int maxn 2e5 5, maxm 2e3 5;
int a[maxn];
int nxt;//下一个应该遍历的结点
int res 0;
int n, m;
vector<int> G[maxn];
void dfs(int u){if(u nxt) …
筛法求欧拉函数 核心思想 :线性筛法 筛的过程中顺便求欧拉函数 第一种情况 (i % prime[j] 0) 第二种情况 (i % prime[j] ! 0) #include<iostream>#include<algorithm>using namespace std;typedef long long LL;const int N 1000010;int prime[N],cnt…
2023每日刷题(七十二)
Leetcode—62.不同路径 超时dfs代码
class Solution {
public:int uniquePaths(int m, int n) {int starti 1, startj 1;int ans 0;function<void(int, int)> dfs [&](int i, int j) {if(i m && j n) {a…
文章目录 一、题目二、题解 一、题目
Given an m x n 2D binary grid grid which represents a map of 1’s (land) and 0’s (water), return the number of islands.
An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertic…
文章目录K.Search For MafuyuC.Optimal Strategy补题链接:https://pintia.cn/market/item/1459833348620926976
K.Search For Mafuyu
K Search For Mafuyu (300分) Mafuyu has hidden in Sekai, and Kanade is searching for her.
In Sekai, there is nothing bu…
题目
给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。
字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “…
一、了解dfs1、DFS(Depth First Search)DFS在我看来就是一条路走到黑,直到无路可走的情况下,才会选择回头,然后重新选择一条路(官方说法即“优先考虑深度”)整个进程反复进行直到所有节点都被访…
代码:
#include<bits/stdc.h>
using namespace std;
int n;
int fx[4]{0,1,0,-1};
int fy[4]{1,0,-1,0};
bool vis[100][100];
int q[35][3];
int c;
void print(int k){c;cout<<c<<":";for(int i1;i<k;i){cout<<q[i][1]<…
【PAT甲级题解记录】1079 Total Sales of Supply Chain(25 分)
前言 Problem:1079 Total Sales of Supply Chain (25 分) Tags:树的带权路径长度 树的遍历 Difficulty:剧情模式 想流点汗 想流点血 死而无憾 Address:1079 Total S…
DFS 深搜板子 ti
#include<bits/stdc.h>using namespace std;#define ll long longstruct Node {int m, n;
};int n;
int res 100010;
int v[6][6];
int a, b, c, d;
bool st[6][6];
ll pp[6][6];
int xi[4] {1, 0, -1, 0};
int yi[4] {0, 1, 0, -1};void dfs(int x,…
组合的输出
题目描述
排列与组合是常用的数学方法,其中组合就是从 n n n 个元素中抽出 r r r 个元素(不分顺序且 r ≤ n r \le n r≤n),我们可以简单地将 n n n 个元素理解为自然数 1 , 2 , … , n 1,2,\dots,n 1,2,…,n&a…
[NOIP2002 普及组] 选数
题目描述
已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn,以及 1 1 1 个整数 k k k( k < n k<n k<n)。从 n n n 个整数中任选 k k k 个整数相加,可分别得…
深度优先遍历(Depth First Search,DFS)和广度优先遍历(Breadth First Search,BFS)是图的遍历算法。其中,深度优先遍历从某个起始点开始,先访问一个节点,然后跳到它的一个…
题目如下:
Given two integers a and b, we write the numbers between a and b, inclusive, in a list. Your task is to calculate the number of occurrences of each digit. For example, if a1024a 1024a1024 and b1032b 1032b1032, the list will be 10241…
一.题目 二.思路
1.暴力
训练的时候,初看这道题,这不就打个暴力吗? 2.暴力代码
#include<bits/stdc.h>
#define int long long
using namespace std;
int n,m,fa,x,y,vis[1000001],ans;
vector<int> vec[1000001];
void dfs(i…
分数 25
全屏浏览题目
切换布局
作者 CHEN, Yue
单位 浙江大学
Given a tree, you are supposed to tell if it is a complete binary tree.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N …
分数 30
全屏浏览题目
切换布局
作者 CHEN, Yue
单位 浙江大学
Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the pa…
文章目录 987. Vertical Order Traversal of a Binary Tree二叉树的垂序遍历Tag 987. Vertical Order Traversal of a Binary Tree二叉树的垂序遍历
建议预备DFS,集合排序的知识,不然可能看的很慢。
一个二叉树根节点是root,要求垂序遍历 v…
【LetMeFly】1376.通知所有员工所需的时间
力扣题目链接:https://leetcode.cn/problems/time-needed-to-inform-all-employees/
公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。…
小 A A A地盘上的所有人被从 1 1 1 到 n n n 编号,每个人都有自己传话的对象,第 i i i 个人对第 a i a_i ai个人传话。 有一天,小 A A A在宫殿的顶部大声喊着 O w f Owf Owf,于是一个有趣的游戏在小 A A A的地盘上开始了。 …
一、题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相…
题目如下:
For a decimal number x with n digits (AnAn−1An−2...A2A1)(A_nA_{n-1}A_{n-2} ... A_2A_1)(AnAn−1An−2...A2A1), we define its weight as F(x)An∗2n−1An−1∗2n−2...A2∗2A1∗1.F(x) A_n * 2^{n-1} A_{n-1} * 2^{n-2} ... A_2 *…
【LetMeFly】1026.节点与其祖先之间的最大差值
力扣题目链接:https://leetcode.cn/problems/maximum-difference-between-node-and-ancestor/
给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val…
通知所有员工所需的时间【LC1376】 公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。 在 manager 数组中,每个员工都有一个直属负责人,其中 manager[i] 是第 i 名员工的…
图的遍历 - 洛谷
/** Description: To iterate is human, to recurse divine.* Autor: Recursion* Date: 2022-03-18 10:04:24* LastEditTime: 2022-03-18 10:46:57*/
#include<bits/stdc.h>
using namespace std;
int n,m;
vector<int> v[100001];
int maxx[1000…
题目链接:树的重心
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int N 100010, M N * 2;int n;
int h[N], e[M], ne[M], idx;
int ans N;
bool st[N];void add(int a, int b)
{e[idx] b, ne[id…
LeetCode 547.省份数量
有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。
省份 是一组直接或间接相连的城市,组内不含其他没…
problem
学习了大佬的方法
// Decline is inevitable,
// Romance will last forever.
#include <bits/stdc.h>
using namespace std;
//#define mp make_pair
#define pii pair<int,int>
#define pb push_back
#define ll long long
#define LL long long
#defi…
Power Tower 欧拉降幂,递归, 思路参照这位大佬link。 关键在于 ab≡abmodφ(m)φ(m)(modm)a^b \equiv a^{b\space mod\space \varphi(m) \varphi(m)}\space (mod\space m) ab≡ab mod φ(m)φ(m) (mod m) 中φ(m)\varphi(m)φ(m)和bbb大小不确定&#x…
再一次认识dfs
做这个题目我经历了,数组越界,xy轴搞反,以及最后计数面积。
不过这都最后一一解决啦。先上代码: int hen[4]{0,0,1,-1};
int shu[4]{1,-1,0,0};
int n,m;
int dfs(int x,int y,int** grid )
{if(x<0||y<0|…
(1条消息) POJ 3050 Hopscotch(深搜)_3050hopscotch_皮皮皮皮皮皮皮卡乒的博客-CSDN博客 #include <iostream> #include<cstring> #include<set> using namespace std; int a[5][5]; int i; set<int> s; int dis[4][2]{0,1,0,-1…
1020. 飞地的数量
解题思路
将靠边的陆地全部使用海水淹没 然后计算封闭的陆地面积使用Dfs将边界的陆地进行淹没,不能简单的置为1,因为边界的陆地和内部的陆地相连通,这种情况也需淹没最后统计剩下的陆地
class Solution {public int numE…
79单词搜索 思路:
注意: 我自己在写
for i in range(m):for j in range(n):# 对每一个格子都从头开始搜索if self.__search_word(board, word, 0, i, j, marked, m, n):return True这一段的时候,就写成了:
这一段代码是…
题目
https://www.lintcode.com/problem/1386
小九来到某地坐缆车,他的钱只能坐一次缆车,所以他想尽量延长坐缆车的时间。已知缆车站分布可以看作是一个n x m的矩阵,每个格点代表缆车站的高度。他可以从任一站点开始坐缆车,缆车…
原题链接:CSP 201909-5 城市规划 暴力前20分
#include <bits/stdc.h>
using namespace std;
#define ll long long
const int INF1e8;
int big[2020];struct node
{int v;int w;node(int _v,int _w){v_v;w_w;}
};vector<node> g[2010];
int vis[2010];…
🍑 算法题解专栏 🍑 生日蛋糕 7 7 7 月 17 17 17 日是 Mr.W 的生日,ACM-THU 为此要制作一个体积为 N π Nπ Nπ 的 M M M 层生日蛋糕,每层都是一个圆柱体。
设从下往上数第 i i i 层蛋糕是半径为 R _ i R\_i R_i࿰…
216. 组合总和 III
代码如下
var( path []int res [][]int sum int
)
func combinationSum3(k int, n int) [][]int { path make([]int,0) 收集路径上的每一个数 res make([][]int,0) 收集满足条件的结果 dfs(k,n,1) 调用函数 return res
}
f…
没看答案,dfs解法,把返回True或者False的情况都列出即可。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val0, leftNone, rightNone):
# self.val val
# self.left left
# self.right…
LeetCode 417.太平洋大西洋水流问题
有一个 m n 的长方形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。
这个岛被分割成一个个方格网格。给定一个 m x n 的整数矩阵 heights &…
PS:要放假了,考试也快考完了,时间多了起来,有空便来写一篇博客,接下来博客更新会快一点,Thanks for your watching。
前言:该博客主要通过题目讲解给大家简要的介绍一下 题目链接:P1135 奇怪的…
原题链接:https://leetcode.cn/problems/shu-de-zi-jie-gou-lcof/description/?envTypestudy-plan-v2&envIdcoding-interviews
是一个dfs的题目,但是一开始的方法写的有点麻烦
/*** Definition for a binary tree node.* type TreeNode struct {*…
I.递归法 根据二叉搜索树的性质,判断两个节点p,q 是否在root 的同一侧,如果在的话说明p,q的相同父节点是root 的子节点;如果判断p,q 在root 的异侧那么就返回根节点root.
/*** Definition for a binary tree node.* public class TreeNode {…
文章目录785. Is Graph Bipartite? (判断二分图)210. Course Schedule II (课程表II)1059. All Paths from Source Lead to Destination (Medium)1135. Connecting Cities With Minimum Cost 最小生成树785. Is Graph Bipartite?…
有点难😅
发现容斥系数设计的非常巧妙🤔
设 f ( i ) f(i) f(i)表示恰好有 i i i条边相同的方案数, g ( i ) g(i) g(i)表示至少有 i i i条边相同的方案数
根据二项式反演, g ( i ) ∑ j ≥ i ( j i ) f ( j ) ⇒ f ( i ) ∑ j…
Link 欧拉降幂,b^n mod c, b和n都需要降幂
代码
// Decline is inevitable,
// Romance will last forever.
#include <bits/stdc.h>
using namespace std;
//#define mp make_pair
#define pii pair<int,int>
#define pb push_back
#defi…
题目描述 现在有一个仅包含‘X’和‘O’的二维板,请捕获所有的被‘X’包围的区域 捕获一个被包围区域的方法是将被包围区域中的所有‘O’变成‘X’ 例如 X X X X X O O X X X O X X O X X 执行完你给出的函数以后,这个二维板应该变成: X X X …
原题链接:Acwing 165. 小猫爬山 学习博客:[dfs] aw165. 小猫爬山(dfs剪枝与优化好题)
#include <bits/stdc.h>
using namespace std;
#define ull unsigned long long
int n,m;
int w[20];
int car[20];
int res1e8;void dfs(int u,int cnt)
{if(…
题目描述 给出 n 个点的一棵树,多次询问两点之间的最短距离。
注意:边是双向的。
输入格式 第一行为两个整数 n 和 m。n 表示点数,m 表示询问次数;
下来 n-1 行,每行三个整数 x ,y, k,表示点 x 和点 y 之…
邻接矩阵存储无向图的类
const int MaxSize10;
template <class T>
class Mgraph{public:MGraph(T a[ ], int n, int e ); ~MGraph( )void DFSTraverse(int v); void BFSTraverse(int v);……private:T vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, …
2022.2.13 练习 PAT 甲 1030 Travel Plan (原题链接)
题解一:
#include <bits/stdc.h>
using namespace std;
const int MAX_NUM510;
const int INF0x3fffffff;
int n,m,s,D;int d[MAX_NUM];//起点到各点的最短路径长度
int visit[MA…
Alice 和 Bob 用几堆石子在做游戏。一共有偶数堆石子,排成一行;每堆都有 正 整数颗石子,数目为 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的 总数 是 奇数 ,所以没有平局。 Alice 和 Bob 轮流进行,Alice 先…
文章目录 A - abB - A^AC - Number PlaceD - Good Tuple ProblemE - Maximize RatingF - Apples A - ab
#include <bits/stdc.h>using namespace std;
const int N 2e5 5;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef array<ll, 3> p3;
int…
2023每日刷题(二十三)
Leetcode—LCR 044.在每个树行中找最大值 DFS实现代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
/*** Note: The returned …
琴里的飞船中有 n n n 个人,其中有 n − 1 n - 1 n−1 个通道,所以飞船的内部是一个树形结构。每个人从 1 ∼ n 1\sim n 1∼n 编号,编号越小代表这个人的投票经验最丰富。
每个人有一个投票装置,初始都没有启动。现在琴里希望…
Link 挺有意思的一道题,思路其实蛮清晰也比较容易理解,然而实现的时候写了半天
代码
const int maxn 1e6 10;
const int maxm 1e6 10;
struct Edge {int to, dis, next;
}edge[maxm];
int n, m;
int head[maxn], dis[maxn], cnt 1;
bool vis[maxn…
文章目录 Minimum Falling Path Sum II 下降路径最小和 II问题描述:分析代码暴力递归记忆化 Tag Minimum Falling Path Sum II 下降路径最小和 II
问题描述:
给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。
非…
树的重心
给定一颗树,树中包含 n n n 个结点(编号 1 ∼ n 1∼n 1∼n)和 n − 1 n−1 n−1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义: 重心是指树中的一…
// 算法流程详见dfs函数,设数字n有m位,arr长度为n,时间复杂度O(m*n)public int max(int n, int[] arr) {Arrays.sort(arr);String value String.valueOf(n);char[] chars value.toCharArray();int[] nums new int[chars.length];for (int i 0; i <…
1111-1
代码:
好难好困 梦回图论qaq
class Solution {Map<TreeNode,Integer> f new HashMap<TreeNode,Integer>();Map<TreeNode,Integer> g new HashMap<TreeNode,Integer>();public int rob(TreeNode root) {dfs(root);return Math.m…
今日份题目:
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元…
切披萨的方案数【LC1444】 给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: A (表示苹果)和 . (表示空白格子)。你需要切披萨 k-1 次,得到 k 块披萨并送给别人。 切披萨的…
求1~8的全排列
拿来温故一下回溯和全排列函数
dfs做法
#include<bits/stdc.h>
using namespace std;
const int maxn2023;
int a[maxn];
int flag[maxn];
int n8;
void fun(int step)
{if(step9){for(int i1;i<n;i){if(i1)cout<<a[i];elsecout<<"…
1、题目 2、题意
输入正整数 n n n,把整数1,2,3,…,n 组成一个环,使得相邻两个整数之和均为素数。输出时从整数 1开始逆时针排列。同一个环应恰好输出一次。 n ≤ 16 n \le 16 n≤16。
3、分析
由模型不难得到:每个…
文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围提示思路与部分实现完整代码 题目描述
将整数 n n n 分成 k k k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。
例如: n 7 n7 n7…
Problem - 1336A - Codeforces
Linova and Kingdom - 洛谷 解析: 开始认为分情况讨论 k 小于等于叶子结点和大于叶子结点的情况,然后选择深度最深的叶子结点和子孙数量最小的结点,但是发现如果把某一个非叶子结点选取,那么其子孙…
LeetCode 130- 被围绕的区域
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目描述:给你一个 m x n 的矩阵 board ,由若干字符 X 和 O ,找到所有被 X 围绕的区域,并将这些区域…
C. Infected Tree
Problem - C - Codeforces
问题描述:一个二叉树,根节点被感染了,可以通过删除一个节点使这个树分成两个部分,从而使分离开的子树无法被感染,求这样操作,有最多多少个节点是未被感染的&a…
文章目录 207. Course ScheduleApproach 1 : DFS topological sortingApproach 2: BFS 207. Course Schedule https://leetcode.com/problems/course-schedule/ There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prerequisites…
题目描述 D D D 市有 n n n 个公交车站和 m m m 条公交线路,公交车站的编号为从 1 1 1到 n n n 。每条公交线路会经过某些车站,如果两条公交线路有公共的公交车站,那么它们可以在公共车站相互换乘。比如线路 ( 1 , 2 , 3 , 9…
Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 又开始玩游戏了,他们已经把石子堆得比山还高了,现在他们要玩一种更新奇的游戏,这种游戏的规则如下:
给定一颗 n n n 个节点的树, Alice \text{Alice} Alice 和 Bo…
单词方阵
题目描述
给一 n n n \times n nn 的字母方阵,内可能蕴含多个 yizhong 单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 8 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此…
用回溯法分析“最小重量机器设计问题”
代码
#include<bits/stdc.h>using namespace std;const int N1010;
int n,m,d;
int w[N][N],c[N][N];
int x[N],bestx[N];
int cw,cm;
int bestw0x3f3f3f3f;void dfs(int u)
{if(u>n){if(cw<bestw){bestwcw;for(int i1;i&l…
一、Java数据类型分类
在Java中,数据类型可以分为两大类:内置数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。
**内置数据类型(Primitive Data Types)**是…
给你一个无根树,问你以哪个节点为根节点的时候得到所有点的深度之和最大 《贴一张 知乎大佬的一个解释》 #include<bits/stdc.h>
using namespace std;
const int N 2e610;
using ll long long;
ll dep[N],sz[N];
ll ans[N];
vector<int>g[N];
int n;…
文章目录 一、题目二、题解 一、题目
Given a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1 and return them in any order.
The graph is given as follows: graph[i] is a list of all nodes you…
199. 二叉树的右视图 - 力扣(LeetCode)
从二叉树的层序遍历改进,根右左
/*** Definition for a binary tree node.* public class TreeNode {* public int val;* public TreeNode left;* public TreeNode right;* public T…
文章目录 一、题目二、题解 一、题目
There are n rooms labeled from 0 to n - 1 and all the rooms are locked except for room 0. Your goal is to visit all the rooms. However, you cannot enter a locked room without having its key.
When you visit a room, you m…
1-DFS
排列数字
N10
path[0]*N
state[False]*N
def dfs(u):if un:for i in range(n):print(path[i],end )print()for i in range(n):if state[i]False:path[u]i1 state[i]Truedfs(u1)#恢复现场path[u]0state[i]False
nint(input())
dfs(0)采用位运算太优雅了,细细…
【LetMeFly】2477.到达首都的最少油耗:深度优先搜索(DFS)
力扣题目链接:https://leetcode.cn/problems/minimum-fuel-cost-to-report-to-the-capital/
给你一棵 n 个节点的树(一个无向、连通、无环图),每个节点表示一…
题目描述
给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。
求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。
给定一张边带权的无向图 G(V,E),其中 V 表示图中点的集合ÿ…
OD统一考试 题解: Java / Python / C 题目描述
现有一个机器人,可放置于 M x N 的网格中任意位置,每个网格包含一个非负整数编号,当相邻网格的数字编号差值的绝对值小于等于 1 时机器人可以在网格间移动。
问题: 求机器人可活动…
代码:
#include <bits/stdc.h>
using namespace std;
int n, a[19], c 0;
bool f[19];
bool prime(int n){if(n 1)return false;for ( int i 2 ; i * i < n ; i )if(n % i 0)return false;return true;
}
void print(){c;cout << c << &q…
原题链接:E. Matrix Problem 题目大意: 给出一个 n n n 行 m m m 列的 0 / 1 0/1 0/1 矩阵,再给出一些限制条件:一个长为 n n n 的数组 a a a,和一个长为 m m m 的数组 b b b 。
其中 a i a_{i} ai 表示第 …
目录
Lake Counting S
求细胞数量
海战
组合的输出
div3 A. Square
div3 B. Arranging Cats Lake Counting S
P1596 [USACO10OCT] Lake Counting S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
感谢大佬的指点!!!!
思…
216. 组合总和 III - 力扣(LeetCode)
class Solution {public List<List<Integer>> combinationSum3(int k, int n) {List<List<Integer>> res new ArrayList<>();List<Integer> list new ArrayList<>();d…
1013 Battle Over Cities
dfs确定连通块数量
const int N 1e6 10, M 2 * N, INF 0x3f3f3f3f;
int n, m, k, h[N], e[M], ne[M], idx 0;
bool visited[N];
void add(int a, int b)
{e[idx] b, ne[idx] h[a], h[a] idx;
}void dfs(int u, int x)
{visited[u] true;for…
砝码承重
【问题描述】 你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,...,WN。请你计算一共可以称出多少种不同的正整数重量?注意砝码可以放在天平两边。【输入格式】 输入的第一行包含一个整数 N。第二行包含 N 个整数:W1,W2,W3,.…
1、B站视频链接:B26 双向DFS 送礼物_哔哩哔哩_bilibili #include <bits/stdc.h>
using namespace std;
int n,m;
int g[46];//存储所有物品的质量
int w[1<<23];//存储所有能凑出来的重量
int ans,cnt;//w的个数是cnt//搜索第u个数,和为s;
…
宽搜一般要手写一个队列,深搜一般是用系统栈来实现的。 DFS之连通性模型 1112. 迷宫 - AcWing题库
import java.util.*;public class Main{static int N 110, ha, la, hb, lb, n;static char[][] g new char[N][N];static boolean[][] st new boolean[N][N];st…
P1135
#include<iostream> #include<algorithm> #include<cstring>
using namespace std;
const int N 10010;
int n, A, B; int evlt[N]; int res 1e9; bool st[N]; //存每层楼走没走过
//当前在x楼, 当前按了cnt次按钮 void dfs(int x, int cnt) …
原题链接:C. Mashmokh and Reverse Operation 题目大意: 给出一个长度为 2 n 2^{n} 2n 的正整数数组 a a a ,再给出 m m m 次操作。
每次操作给出一个数字 q q q ,把数组分为 2 n − q 2^{n-q} 2n−q 个长度为 2 q 2^{q} 2…
Everyday English
Your optimal career is simply this: Share the real you with physical world through th e process of creative self-expression. 你的最佳职业很简单,就是这样:通过创造性自我表达的途径和世界分享真实的你。
前言
今天带着大家…
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
只使用数字1到9每个数字 最多使用一次
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1:
输入: k 3, n 7
输出: [[1,2,4]]
解…
一、单调递增的数字
题目一:738. 单调递增的数字
738. 单调递增的数字
当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。
给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递…
DFS
排列数字 #include<iostream>
using namespace std;
const int N 10;
int a[N], b[N];
int n;void dfs(int u){if(u > n){for(int i 1; i < n; i)cout<<a[i]<<" ";cout<<endl;return;}for(int i 1; i < n; i){if(!b[i]){b[…
跟77题组合一样,在这里又遇到同样的问题,如果使用暴力解法,nums大小不同,使用的循环嵌套的层数也不同。那么这时候我们就需要使用暴力的解法。 我们看以下代码,如果nums [1,2,3]会输出什么?
class Soluti…
用bfs,dfs判断图的连通性,核心在于,搜到合法的某点,把于其联通的点全找到并记录或改判 题目链接
ACcode(dfs)
#include<bits/stdc.h>using namespace std;int n, m;
char a[105][105];
int ans 0;int xx[12] { 0,0,1,-1…
话不多说,直接看题: 显然,我们直接用深搜,我们可以先把空位用结构体存,然后打表存小方块,再用数组存行列。
下面是AC代码:
#include<bits/stdc.h>
using namespace std;
int a[12][12];…
1.冶炼金属(二分、数学) //二分
#include <iostream>
using namespace std;int get1(int a, int b){int l 0, r 1e9;while(l 1 < r){int mid (l r) / 2;if(a / mid < b) r mid;else l mid;}return r;
}int get2(int a, int b){int l …
最近刚学回溯和DFS,刷力扣遇到一道题(113题),如下: 我们不细究回溯和DFS的区别联系。关于这道题的2种写法,我把第一种称为回溯。
class Solution {List<List<Integer>> res new LinkedList&l…
比赛链接
D. Trie
思路:
构建trietrietrie树后建ACACAC自动机的failfailfail树,那么对一个串的后缀的最长公共前缀就是其在failfailfail树节点的父亲节点。那么对于询问1,假设对当前点x1,x2,x3x1,x2,x3x1,x2,x3打上新的标记,其…
深搜其实用的就是栈,虽然不是手写的栈,但是递归函数就是在调用系统的栈。
dfs基础篇
(1)排列数字
#include<cstdio>
int N;
int path[15], vis[15];
void dfs(int u) {if (u N) {for (int i 0; i < N; i) printf(&q…
A. Linova and Kingdom(dfs 贪心)一、问题二、思路三、代码一、问题 二、思路
这道题的大意就是,给我们一棵树,我们需要在树上选择kkk个点,然后让kkk个信使从我们选取的kkk个点向第一个点出发。
我们把我们选取的k个…
训练计划 dfs树求每棵树的重量
#include<bits/stdc.h>
using namespace std;
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#define x first
#define y second
#define int long long
#define endl \n
#define rep(i,a,n) fo…
题目总结
lc1979 给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。 两个数的 最大公约数 是能够被两个数整除的最大正整数。 会求 gcd 就行
class Solution {
public:int gcd(int a, int b){return b ? gcd(b, a % b) : a;}int findGCD(vector&…
题目
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
示例 1:
输入:root [3,1,4,null,2], k 1 输出:1
题目
class Soluti…
DFS(depth first search) 深度优先遍历
从图中一个未访问的顶点V开始,沿着一条路一直走到底,然后从这条路尽头的节点回退到上一个节点,再从另一条路走到底…不断递归重复这个过程,直到所有的顶点都遍历完成。前序遍历,…
题意
给定一颗有根树,起初点全为白色,序列 a [ i ] a[i] a[i]表示在第 i i i秒将 a [ i ] a[i] a[i]染成黑色,求在每次染色后有多少颗子树中既有黑色又有白色节点。 int n;cin >> n;vector<int> mn(n 1), mx(n 1);vector<v…
分数 30
全屏浏览题目
作者 CHEN, Yue
单位 浙江大学
One way that the police finds the head of a gang is to check peoples phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined to be the …
树的重心
题目
链接:https://www.acwing.com/problem/content/848/
给定一颗树,树中包含 n n n 个结点(编号 1 ∼ n 1 \sim n 1∼n)和 n − 1 n-1 n−1 条无向边。
请你找到树的重心,并输出将重心删除后&#x…
强连通分量(SCC, Strongly Connected Component) 强连通分量的概念强连通分量的应用强连通分量的算法——Tarjan算法 强连通分量的概念
在有向图中,任意两个顶点 v i v_i vi 和 v j v_j vj 互相可达(也即存在路径 v i → v…
[USACO1.5]八皇后 Checker Challenge - 洛谷
/** Description: To iterate is human, to recurse divine.* Autor: Recursion* Date: 2022-03-13 11:07:25* LastEditTime: 2022-03-13 19:13:23*/
#include<iostream>
using namespace std;
const int N 15;
int a[N];//…
目录
MGraph类
构造函数
深度优先遍历
广度优先遍历 MGraph类
const int N 10;
int visit[N]; // 顶点是否被访问
template<typename DataType>
class MGraph//无向图
{
public:MGraph(DataType a[], int n, int e);~MGraph(){}void DF(int x); //深度优先遍历void…
2023牛客第七场补题报告C F L M
C-Beautiful Sequence_2023牛客暑期多校训练营7 (nowcoder.com)
思路
观察到数组一定是递增的,所以从最高位往下考虑每位的1最多只有一个,然后按位枚举贪心即可。
代码
#include <bits/stdc.h>
using namespac…
文章目录 一、A - Love Story二、B - Blank Space三、C - Mr. Perfectly Fine四、D - Gold Rush五、E - The Lakes六、F - Forever Winter七、G - Hits Different八、H - Dont Blame Me 一、A - Love Story 思路: 直接比较 代码:
#include <bits/stdc.h>
#define int …
1004 Counting Leaves
分数 30 全屏浏览题目 切换布局
作者 CHEN, Yue
单位 浙江大学
A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.
Input Specification:
Each input file contains one…
一、问题引出
[NOIP2002 普及组] 选数
题目描述
已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn,以及 1 1 1 个整数 k k k( k < n k<n k<n)。从 n n n 个整数中任选 k k k 个整数相加&…
文章目录A Not Shading 简单思维B Not Sitting 思维搜索C Not Assigning题目集地址
Codeforces Round #766 (Div. 2)A Not Shading 简单思维
题目地址:A Not Shading 题目大意:一个棋盘,n*m大小,有黑色方块和白色方块,对于每一个黑色方块可以…
Problem - B - Codeforces
思路:
数位dp,如果我们暴力的计算的状态的话,显然就是记录每个数字出现几次。但是显然这样难以发挥数位dp的记忆化功效,因为只有出现次数相同,你是什么数字,实际是无所谓的。所…
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>using namespace std;const int N 100010, M 2*N;int h[N], e[M], ne[M], idx;bool st[N];// dfs只搜索一遍// 有向图邻接表存储
void add(int a, int b){e[idx] b;ne[…
🍑 算法题解专栏 🍑 回转游戏
如下图所示,有一个 # 形的棋盘,上面有 1 , 2 , 3 1,2,3 1,2,3 三种数字各 8 8 8 个。
给定 8 8 8 种操作,分别为图中的 A s i m H A \\sim H AsimH。
这些操作会按照图中字母和箭头…
目录
图的创建和常用方法
深度优先遍历(Depth First Search)
广度优先遍历(Broad First Search) 图的创建和常用方法
//无向图
public class Graph {//顶点集合private ArrayList<String> vertexList;//存储对应的邻接…
文章目录F The Chosen One 数学规律H The Game of Life 元胞自动机类问题I Rake It In 对抗搜索J Rearrangement 数学规律L Twice Equation 数学打表找规律题目集地址
ICPC南宁2017F The Chosen One 数学规律
题目地址F - The Chosen One 题目大意:给出1-n,每次删除…
2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm
https://ac.nowcoder.com/acm/contest/57363/B 文章目录 2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm题意解题思路代码 题意 解题思路
欧拉定理 a b ≡ { a b % φ ( p ) g c d ( a , p ) 1 a b g c d ( a ,…
个人学习记录,代码难免不尽人意。 A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a highest tree. Such a root is called the…
个人学习记录,代码难免不尽人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相…
Tri Tiling题目信息输入输出测试样例来源解答想法题目信息
In how many ways can you tile a 3xn rectangle with 2x1 dominoes? Here is a sample tiling of a 3x12 rectangle. 有多少种方法可以用2x1多米诺骨牌平铺3xn矩形? 下面是3x12矩形的平铺示例。
输入 …
题目链接:二叉搜索树与双向链表 import java.util.*;
/**
public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}}
*/
public class Solution {TreeNode pre null;public TreeNode Convert(Tree…
[蓝桥杯 2016 国 AC] 路径之谜
题目描述
小明冒充 X X X 星球的骑士,进入了一个奇怪的城堡。
城堡里边什么都没有,只有方形石头铺成的地面。
假设城堡地面是 n n n\times n nn 个方格。如图所示。 按习俗,骑士要从西北角走到东南角。 …
今日份题目:
给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)
graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节…
[NOIP2002 普及组] 产生数
题目描述
给出一个整数 n n n 和 k k k 个变换规则。
规则:
一位数可变换成另一个一位数。规则的右部不能为零。
例如: n 234 , k 2 n234,k2 n234,k2。有以下两个规则: 2 ⟶ 5 2\longrightarrow 5 2⟶5。 …
Problem - D - Codeforces
题目大意:有一个长度为n的数组a,每次操作可以选取一个长度为k的所有数互不相同的数组b,令a[bi]b[i%k1],问能否将一个全为零的数组通过任意次操作得到a
1<k<n<1e5
思路:通过上述操…
Leetcode 93(复原ip地址)
比较字符串(数字型)大致有两种方法:
1、通过Integer.valueOf()转化成数字
class Solution {List<String> result new ArrayList<>();LinkedList<String> temp new Lin…
要做一株小草,默默努力
求细胞数量 #include<iostream>
using namespace std;
//对每个点进行搜索,dfs/bfs,将搜过的点标记出来,然后记录次数
//搜索几次,就有几个细胞
const int N110;
int g[N][N],st[N][N];
…
前言
A*算法最早于1964年在IEEE Transactions on Systems Science and Cybernetics中的论文《A Formal Basis for the Heuristic Determination of Minimum Cost Paths》中首次提出。 其属于一种经典的启发式搜索方法,所谓启发式搜索,就在于当前搜索结点往下选择下一步结点时…
Problem - 466C - Codeforces
Number of Ways - 洛谷 解析: 首先判断所有数总和是否能被三整除。 之后遍历前缀和数组,如果某个位置的前缀和等于sum/3,则记录。 某个位置前缀和等于sum/3*2则记录答案。 注意由于分成三份,所以同…
题目描述
给定一个 n n n 个点的基环树,现在对基环树上的点染色,使得每个点都有且仅有一个与他相连的点(不包括它自身)被染色,求最少的染色点数,或者返回无解。 n n n 个点, n n n条边的连通无…
2023每日刷题(二十三)
Leetcode—515.在每个树行中找最大值 DFS实现代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
/*** Note: The returned arra…
Problem A: Here Comes Santa Claus
给一个数列,要求分成若干组,要求每组至少2个数,使得所有组中位数的最大值与最小值之差尽量大,求这个值。
#include<bits/stdc.h>
using namespace std;
#define For(i,n) for(int i1;…
D一种因子游戏
思路:我们考虑,对于A数组中的每个数,我们考虑B数组中是否存在某个对应的数字能和其匹配,即 g c d gcd gcd等于1。由此想到二分图最大匹配,算出最大匹配数然后判断即可。
#include<bits/stdc.h>u…
A : A DS图_传递信息
Description
小明在和他的小伙伴们玩传消息游戏,游戏规则如下:
有n名玩家,所有玩家编号分别为0~n-1,其中小明编号为0;每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传消息的关系是…
C/C++等级考试(1~8级)全部真题・点这里 第1题:课程冲突
小 A 修了 n 门课程, 第 i 门课程是从第 ai 天一直上到第 bi 天。 定义两门课程的冲突程度为 : 有几天是这两门课程都要上的。 例如 a1=1,b1=3,a2=2,b2=4 时, 这两门课的冲突程度为 2。 现在你需要求的是这 n 门课…
如果一个无向图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路。
#include<bits/stdc.h>
using namespace std;
#define N 510
int g[N][N],d[N],c[N],n,m,reckon,oddity_point,lt;
void dfs(int i)…
何为深搜?
即不撞南墙不罢休。
话不多说,直接看题: 我们可以把这看成深搜的模板题,下面是AC代码:
#include<bits/stdc.h>
using namespace std;
int a[15];//存值并输出
int vis[15];
int n18;
void dfs(int …
题目
法1:DFS两遍
不太好的方法
class Solution {public int diameterOfBinaryTree(TreeNode root) {if (root null) {return 0;}int left diameterOfBinaryTree(root.left);int right diameterOfBinaryTree(root.right);int cur oneSideDepth(root.left) o…
C/C++等级考试(1~8级)全部真题・点这里 第1题:道路
N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数:道路的长度和需要为该路付的通行费(以金币的数目来表示) Bob and Alice 过去住在城市 1.在注意到Alice在他们过去喜欢玩的纸牌游戏中作弊后,Bob和她…
1.A
a题 ∑ i 2 n ( a i − a i − 1 ) \sum_{i2}^{n}(a_{i}-a_{i-1}) ∑i2n(ai−ai−1) a n − a 1 a_{n}-a_{1} an−a1所以我们排一下序输出 a n − a 1 a_{n}-a_{1} an−a1即可,当然直接累加也可以
#include<bits/stdc.h>
using namespace std;
#def…
回溯算法其实就是深搜,只不过这里的深搜是侧重于在图上搜索,回溯大多是在树上搜索。
797.所有可能的路径 完成 代码
模板题
class Solution {List<List<Integer>> res new ArrayList<>();List<Integer> path new ArrayList…
原题链接:E. AND-MEX Walk 题目大意: 给出一张 n n n 个点 m m m 条边的无向图,边带有边权。
我们定义一条路径的价值为:
假设我们经过了 k k k 个点(点和边都可重复经过),且按顺序经过的边…
一、题目
1、题目描述 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数…
前言 整体评价
T4感觉有简单的方法,无奈树形DP一条路上走到黑了,这场还是有难度的。 T1. 超过阈值的最少操作数 I
思路: 模拟
class Solution {public int minOperations(int[] nums, int k) {return (int)Arrays.stream(nums).filter(x -> x <…
自己另辟蹊径想的新思路 果然好像还是不太行呀
import java.util.Scanner;public class Main {static int T;//样例组数static int n;//矩阵大小static int[] X {0,1,0,-1};static int[] Y {1,0,-1,0};static int[] X1 {1,0,-1,0};static int[] Y1 {0,-1,0,1};static int …
Problem: 1261. 在受污染的二叉树中查找元素 思路
👨🏫 灵神题解
💖 二进制
时间复杂度:初始化为 O ( 1 ) O(1) O(1);find 为 O ( m i n ( h , l o g 2 t a r g e t ) O(min(h,log_2target) O(min(h,log2targ…
题目描述
达达帮翰翰给女生送礼物,翰翰一共准备了 N N N 个礼物,其中第 i i i 个礼物的重量是 G [ i ] G[i] G[i]。
达达的力气很大,他一次可以搬动重量之和不超过 W W W的任意多个物品。
达达希望一次搬掉尽量重的一些物品,请…
算法:
简单的一个dfs就能过 ac:
#include "iostream"
#include "algorithm"
#include "cstring"
#include "queue"
using std::cin;
using std::cout;
using std::endl;
#define N 110
char a[N][N];
int abook[N][N];
i…
考点 暴力枚举,搜索,数学,二分,前缀和,简单DP,优先队列,链表,LCA,树上差分 A 日期统计
暴力枚举:
#include<bits/stdc.h>
using namespace std;
int …
1 深度优先算法与 宽度优先遍历
深度优先算法(DFS,Deep First Search)与 宽度优先遍历(BFS,Breadth First Search) 是树、图数据结构的基础性、标准性的遍历算法。 2 深度优先算法(DFS,Deep First Search)
深度优先搜索(DFS)是一种用于搜索图形或树数据结构的算法…
Problem - E - Codeforces
题目大意:有一棵n个点的树,初始状态下所有点都是白色的,每次操作可以选择一个点u和一个距离dis,使得距离点u所有长度为dis的点变为黑色,问最少需要多少次操作能使所有点变成黑色,…
一个不知名大学生,江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion:2024.03.27 Last edited: 2024.03.27 目录
算法6.4-6.6DFS
第1关:算法6.5采用邻接矩阵表示图的深搜
任务描述
相关知识
编程要求…
4.全球变暖 - 蓝桥云课 (lanqiao.cn)
#include <bits/stdc.h>
using namespace std;
#define int long long
const int N1e36;
char a[N][N];
int n;
int xx[]{0,1,-1,0};//右 下 上 左
int yy[]{1,0,0,-1};
int scc0;//涂色器
int clsm[N*N];//用于存储每个颜色是否还有…
全排列问题
题目描述
按照字典序输出自然数 1 1 1 到 n n n 所有不重复的排列,即 n n n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。
输入格式
一个整数 n n n。
输出格式
由 1 ∼ n 1 \sim n 1∼n 组成的所有不重复的数字序…
/* 指数型枚举(每个数有选和不选两种情况) #include<bits/stdc.h> using namespace std; const int N20; int n; int st[N];//记录每个数的状态,0还没有考虑,1表示选这个数,2表示不选这个数 void dfs(int x){/…
解题思路:
经典dfs题目,需要重点掌握。
养成好习惯,静态方法都要用到的变量提前想到定义为静态常量。
import java.util.Scanner;public class Main {//注意加static,经常忘记导致编译错误static int N, M, x1, x2, y1, y2, mi…
//新生训练 #include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
typedef pair<int, int> PII;
const int N 205;
int n, m;
int l;
int A, B, C;
int dis[N][N];struct node
{int px, py, op…
全球变暖蓝桥杯2018省赛真题
DFS大法
全球变暖 #include <bits/stdc.h>
using namespace std;
#define int long long
bool flag;
char a[1010][1010];
int cnt,n,ans0,pre_ans0,d[4][2] {1,0,-1,0,0,1,0,-1};
void dfs(int x,int y){if(x>n||x<0||y>n||y<…
废话不多说,先上题
对应代码如下: def dfs(x,y):global numfor i in range(0,4):dir[(-1,0),(0,-1),(1,0),(0,1)]nx,nyxdir[i][0] ,ydir[i][1]if nx<0 or nx>hx or ny <0 or ny>wy: continueif mp[nx][ny]*:num1print("%d:%s->%d%…
DFS 模板 #include<bits/stdc.h>
using namespace std;
const int N20;
int dp[N][N];
int a[N],len;
int n,m;//pos 代表当前位置 limit是当前位置是否有这个枚举范围限制int dfs(int pos,int pre,int limit){if(!pos)return 1;if(!limit&&~dp[pos][pre])return…
P3379 【模板】最近公共祖先(LCA) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc.h>
#include<cstdio>
using namespace std;
const int N5e5100;
const int inf0x3f3f3f;
int n,m,s;
vector<int>g[N];
int dep[…
//新生训练 #include <bits/stdc.h>
using namespace std;
int n, m;
bool f;
char mp[15][15];
int vis[15][15];
int dir[4][2] {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
bool in(int x, int y)
{return 0 < x && x < n && 0 < y && y …
//新生训练 #include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
using PII pair<int, int>;
const int N 205;
int n, m;
int dis[N][N];
int dx[] {0, 0, -1, 1, -1, 1, -1, 1};
int dy[]…
树的深度优先搜索 function Node(value) {this.value valuethis.children []
}let a new Node(a)
let b new Node(b)
let c new Node(c)
let d new Node(d)
let e new Node(e)
let f new Node(f)
a.children.push(c)
a.children.push(b)
a.children.push(f)
b.children…
题目链接
NOIP2014提高组D1T2:联合权值
题目描述
无向连通图 G G G 有 n n n 个点, n − 1 n-1 n−1 条边。点从 1 1 1 到 n n n 依次编号,编号为 i i i 的点的权值为 W i W_i Wi,每条边的长度均为 1 1 1。图上两点 ( u , v ) (…
题目 小明最近迷上了一款名为《扫雷》的游戏。
其中有一个关卡的任务如下:
在一个二维平面上放置着 n 个炸雷,第 i 个炸雷 (xi,yi,ri) 表示在坐标 (xi,yi) 处存在一个炸雷,它的爆炸范围是以半径为 ri 的一个圆。
为了顺利通过这片土地&…
零和博弈
有点类似那个Min-Max 游戏 考虑DP【l,r】 为当前考虑到[l,r]当前的先手能得到的最大的分 #include<bits/stdc.h>
using namespace std;
using ll long long;
using pii pair<int,int>;
const int N 1e510;
const int inf 0x3f3f3f3f;
const int mod …
N皇后
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;const int N 15;
int n, res;
int col[N];bool pd(int k) {for (int i 1; i < k; i) {if (abs(k - i) abs(col[k] - col[i]) || col[k]…
代码和解析
#include<bits/stdc.h>
using namespace std;
int a[5][5]{{1,0,1,0,1}}; //记录图中圆圈内的值,并初始化第1行
int gate[11]; //记录10个逻辑门的一种排列
int ans; //答案
int logic(int x, int y, int op){…
深度优先遍历
思路: 根据二叉搜索树特性,通过中序遍历得到有序序列,验证序列是否有序来判断;中序遍历使用栈通过深度优先遍历;
/*** Definition for a binary tree node.* struct TreeNode {* int val;* Tre…
123 Word Search Algorithms Medium Description Given a 2D board and a string word, find if the string word exists in the grid.
The string word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally o…
枚举排列
题目描述
今有 n n n 名学生,要从中选出 k k k 人排成一列拍照。
请按字典序输出所有可能的排列方式。
输入格式
仅一行,两个正整数 n , k n, k n,k。
输出格式
若干行,每行 k k k 个正整数,表示一种可能的队…
发个博客,证明我还活着。
答案很显然,根据 kruskal \text{kruskal} kruskal算法,尽量连 ( i , i 1 ) (i,i1) (i,i1)是最优的,难点在于输出方案。下文设删掉的节点是 v v v。
正常的做法是从小到大依次判断 ( i , i 1 ) (i,i1)…
DFS BFS 并查集 三种方式解决岛屿问题
import java.util.*;
public class Edit {//并查集版本public int numIslandsUnion(char[][] grid) {UnionSet unionfind new UnionSet(grid);//unionfind.UnionSet(grid);for(int clow1;clow<unionfind.clow;clow){if(grid[0][clow-…