摘要:
//题意:就是你需要派最少的士兵来巡查每一条边。相当于求最少点覆盖,用最少的点将所有边都覆盖掉//题解://因为这是一棵树,所以对于每一条边的两个端点,肯定要至少有一个点需要放入士兵,那么对于x->y这一条边//dp[x][0]=0 表示在x这一点上不放人士兵//dp[x][1]=1 表示在x这一个 阅读全文
摘要:
题目:传送门 题意:给你一个无向图,你需要找出里面的桥,并把所有桥按字典序输出 这一道题就是用无向图求桥的模板就可以了。 我一直错就是因为我在输入路径的时候少考虑一点 错误代码+原因: 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostr 阅读全文
摘要:
算法用途: 一个首位相连的字符串,我们要寻找一个位置,以这个位置为起点的新字符串,我们需要使这个字符串字典序最小。 比如abcde,以c为开头的话就是cdeab 字典序: 两个串的字典序大小比较,是从第一个字母往最后一个比较,如果同一个位置字符相同就可以比较下一位,否则两个字符中哪个字符ascall 阅读全文
摘要:
大数加法: 1 #include <stdio.h> 2 3 #include <string.h> 4 5 #define M 100 //定义了数量M是100作为数组初始化的数量 6 7 8 9 int main() 10 11 { 12 13 int i, j, len_s1, len_s2; 阅读全文
摘要:
题目:传送门 首先输入一个n,之后输入n个数a(1<=a<=1e7),对这n个数排序后,你需要找到所有的它们连续的长度。把这些连续的长度排序后输出 输入 输入: 8 1 5 2 7 4 5 7 1 输出 输出: 1 2 2 样例解析: 将上面数排序得: 1 1 2 4 5 5 7 7 去重后 : 1 阅读全文
摘要:
KMP算法: kmp示例代码: void cal_next(char *str, int *next, int len) { next[0] = -1;//next[0]初始化为-1,-1表示不存在相同的最大前缀和最大后缀 int k = -1;//k初始化为-1 for (int q = 1; q 阅读全文
摘要:
Floyd算法: 复杂度O(n^3) 首先这个算法使用暴力dp来写的,很容易就会TLE。但是这是一个多源最短路算法,可以求出来任意两点之间的最短距离 示例代码: 1 #include <cstdio> 2 #include <iostream> 3 #define INF 0x3f3f3f3f 4 阅读全文
摘要:
01背包例题: 题目:传送门 /*给你n种不同的物品,每个物品有自己的体积w[i]和价值v[i],如果每个物品只能拿一次,给你容量为m的背包,怎样才能获取最大价值;主线:使容量为m的背包装入的物品价值最大;dp[j] 记录当容量为j时的可行取法的最大价值状态转移方程:dp[j]=max( dp[j] 阅读全文
摘要:
参考链接:传送门 题解: 我们读完题目之后发现题目求最优解,那么这个最优解肯定要在众多可能中找最优的。我们从题目上发现某些密室在进去之前必须已经进入了其他密室。所以这里我们就可以用dfs来限制这一点。 首先先建树,之后就先求这个树的叶节点的各个最优解,然后再一步一步靠近树的根的节点。因为根节点的最优 阅读全文
摘要:
先言:我的问题只是出在之前我的java_jdk原来安装在F:\Temp这里,但是我之后在整理文件的时候把这个文件夹改成了F:\java_jdk。所以导致了错误的出现 解决方法1: 因为我的只是目录名称改了改导致找不到文件路径,所以最简单的方法就是把文件路径再改回去(把我吓得以后都不敢再乱改文件名称了 阅读全文