
搜索
hohotiger
这个作者很懒,什么都没留下…
展开
-
力扣:组合总和 II DFS剪枝
组合总和 II给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]]示例 2:输入:.原创 2020-09-10 14:50:55 · 159 阅读 · 0 评论 -
力扣 1553. 吃掉 N 个橘子的最少天数 记忆化DFS|记忆化BFS|剪枝
吃掉 N 个橘子的最少天数厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数 n 能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n 个橘子的最少天数。示例 1:输入:n = 10输出:4解释:你总共有 10 个橘子。第 1 天:吃 1 个橘子,剩余橘子数 10 - 1 = 9。第 2 天:吃 6 个.原创 2020-08-26 14:36:45 · 291 阅读 · 0 评论 -
Leetcode 1559二维网格图中探测环 技巧DFS|剪枝
二维网格图中探测环给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在 相同值 形成的环。一个环是一条开始和结束于同一个格子的长度 大于等于 4 的路径。对于一个给定的格子,你可以移动到它上、下、左、右四个方向相邻的格子之一,可以移动的前提是这两个格子有 相同的值 。同时,你也不能回到上一次移动时所在的格子。比方说,环 (1, 1) -> (1, 2) -> (1, 1) 是不合法的,因为从 (1, 2) 移动到 (1, 1) 回到了上一次移动.原创 2020-08-25 15:55:13 · 506 阅读 · 0 评论 -
2018蓝桥杯模拟赛·青出于蓝而胜于蓝 DFS序+树状数组
武当派一共有 nnn 人,门派内 nnn 人按照武功高低进行排名,武功最高的人排名第 111,次高的人排名第 222,... 武功最低的人排名第 nnn。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。我们知道,武当派人才辈出,连祖师爷的武功都只能排行到 ppp。也就是说徒弟的武功是可能超过师父的,所谓的青出于蓝胜于蓝。请你帮忙计算每个人的所有子弟(包括徒...原创 2018-03-24 23:30:19 · 543 阅读 · 0 评论 -
蓝桥杯 平方十位数
2017 国赛c/c++ B组填空题集合平方十位数由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数(是某个数的平方)。比如:1026753849,就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少?注意:你需要提交的是一个10位数字,不要填写任何多余内容。答案:9814072356(17分) 分析:可以深搜 import java.io.Buffe...原创 2018-05-20 23:23:57 · 804 阅读 · 0 评论 -
Palindrome subsequence HDU - 4632 区间dp|记忆化搜索
// 区间dpimport java.util.Scanner;public class main { static int mod = 10007; static String l; static int[][] dp = new int[1010][1010]; public static void main(String[] args) {...原创 2018-05-14 20:20:01 · 193 阅读 · 0 评论 -
蓝桥杯2017 磁砖样式 brute force
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.HashSet;import java.util.Scanner;public class Main{ s...原创 2018-05-21 18:07:35 · 279 阅读 · 0 评论 -
2017蓝桥杯决赛-发现环 数据结构|搜索
问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。 为了恢复正常传输。小明需要找到所有在环路上的电脑,你...原创 2018-05-22 20:47:17 · 1069 阅读 · 0 评论 -
codeup 2044 暴力搜索
2044: 神奇的口袋时间限制:1 Sec内存限制:32 MB提交:735解决:333[提交][状态][讨论版][命题人:外部导入]题目描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总...原创 2019-03-07 12:33:07 · 157 阅读 · 0 评论 -
1143. Lowest Common Ancestor
1143. Lowest Common Ancestor (30)时间限制200 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueThe lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U and V as ...原创 2018-03-24 22:38:37 · 232 阅读 · 0 评论 -
1106. Lowest Price in Supply Chain (25)
#include<bits/stdc++.h>using namespace std;struct node{ int now; double p; node(int a,double b):now(a),p(b){}};const double eps = 1e-4;vector<int>g[100010];int main(){ int n; do...原创 2018-03-17 15:16:44 · 154 阅读 · 0 评论 -
NYOJ82-迷宫寻宝1
迷宫寻宝(一)时间限制: 1000 ms | 内存限制: 65535 KB 难度: 4 描述一个叫ACM的寻宝者找到了一个藏宝图,它根据藏宝图找到了一个迷宫,这是一个很特别的迷宫,迷宫里有N个编过号的门(N输入输入可能会有多组测试数据(不超过10组)。每组测试数据的第一行包含了两个整数M,N(1.表示可以走的路S:表示ACM的出发点G表示宝藏的位原创 2017-04-03 23:12:19 · 436 阅读 · 0 评论 -
Sudoku Extension UVALive - 4763
题目地址 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2764就是让你写一个计算数独的程序 这个程序有几个条件 1 输入o处填奇数2 输入e处天偶数3 输入0处随便填4 输入相同小写字符的地方要写相同的数5 每一个原创 2017-05-03 20:29:07 · 291 阅读 · 0 评论 -
HDU - 5438 Ponds 拓扑 dfs
题意在一个图中 给出了每个点得权值和连边 想要尽可能删除一些联通的点数小于2的点 删完后 求最后剩下联通块内点得数量是奇数的权值和分析本题由于在删除点得过程中需要考虑 当把当前点删除后 其联通的点也有可能会因为当前点得删除而连边小于2同时删除 考虑拓扑排序 建立邻接表和每个点得联通数目表将每个小于2的点入队 然后拓扑处理 对当前点 将其连边的点联通数目– 若小于2入队 继续处理直到队空后 df原创 2017-09-22 12:08:22 · 274 阅读 · 0 评论 -
CodeForces-887B 技巧DFS
标题最大不超过3个筛子 让我们从其中任选筛子组合成数据 问我们组不成的最小的数是多少分析要模拟把最大3个筛子 选出1,2,3个的情况去组合 我们可以枚举所要选的数的数量 用next_permutation得到这n个数的全排列 这样不论的选几个筛子 都会便利到所有情况 然后在把所有情况统计一下#include<bits/stdc++.h>using namespace std;bool bok[原创 2017-11-08 21:43:13 · 236 阅读 · 0 评论 -
HDU 4403 A very hard Aoshu problem DFS
problem statement这道题给我们一个不超过15位的整数 让我们在其中加等号或者加号 如果加完符号后符合计算结果 那么计数 最后输出所有的情况problem analysis这道题其实就是想办法遍历所有情况 把合法的记录下来 最终输出就得到解 如何枚举呢 我们可以枚举等号的位置 等号左边dfs一下 等号右边dfs一下 最后最后看两遍结果是否一样 一样就记录++ 最后左右两原创 2017-10-31 21:40:43 · 211 阅读 · 0 评论 -
codeforce 884C - Bertown Subway DFS+图论
分析题意说输入数据有两个规则: 1 每个i只有一个pi表示i站的目的地 i可以等于pi 2 每个pi都指向唯一的一个站i 那么也就是说i指向的目的只有一个且唯一 每个目的由唯一的始发站出来 所以也就是说 图中的每一个点只有一条单向边 那么当我们求最大的数量的可达对时 也就是尽可能构造大圈 所以每一个点 要么形成自回路 要么在一个多点圈中 而连接任意两个圈的花费就是修改两站的目的原创 2017-11-10 10:01:02 · 286 阅读 · 0 评论 -
1115. Counting Nodes in a BST (30) 数据结构
给出一颗BST树 求这个数最后两层的节点数量用c1+c2 = n 的形式给出建树深度搜索即可#include<iostream>#include<cstdio>#include<algorithm>#include<string>using namespace std;struct node{ int l,r,x;}n[2010];...原创 2018-03-14 21:53:59 · 154 阅读 · 0 评论 -
1107. Social Clusters (30) 搜索
#include<bits/stdc++.h>using namespace std;vector<int>rel[1010];vector<int>hob[1010];bool bok[1010];int cnt;void dfs(int s);void dfs2(int s){ for(int i=0;i<rel[s].size();...原创 2018-03-17 15:06:35 · 186 阅读 · 0 评论 -
HDU-1242 Rescue
RescueTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29242 Accepted Submission(s): 10332Problem DescriptionAngel was caught by t原创 2017-03-19 09:15:31 · 400 阅读 · 0 评论