自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 图论总结 最短路、最小生成树、二分图算法如何选择

2020-12-13 23:48:47 304

原创 scanf读入一行字符

scanf("%[^\n]", s);

2020-11-15 11:47:14 1194

原创 eclipse 修改项目的jdk版本

右键点击项目,然后点击【Properties】,到图中界面后从左到右依次点击方框内容选择自己已安装的jdk版本,点击Apply切换jdk版本点击Finish点击左侧的Java Compiler,右侧的【Compiler compliance level】进行选择点击左侧的【Project Facets】,修改右侧的【Java】,然后点击【Apply and Close】即可完成...

2020-11-09 15:29:54 1234

原创 python 导入一个文件夹下的所有文件

import ospath="" #填写自己想要读取的文件夹路径files=os.listdir(path)text=''for file in files: position=path+file# print(position) with open(position ,'r',encoding='utf-8') as f: for line in f.readlines(): text+=line print(t

2020-11-08 21:14:19 1843

原创 anaconda 安装 genism

点击图中位置,启动anaconda prompt输入pip install gensim安装成功

2020-11-06 09:37:10 416

原创 == 和 equals()的比较

运算符 ==当比较基本数据类型时,比较二者的大小是否相等比较引用数据类型时,比较二者的地址值是否相等equals()方法所有类都继承了 Object 也就获得了 equals() 方法,如果没有重写该方法,则比较的仍然是地址值,此时和 == 的作用相同如果重写了equals()方法,则按照具体方法执行。...

2020-10-30 17:32:18 123

原创 耍杂技的牛(贪心)

题目描述农民约翰的N头奶牛(编号为1…N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这N头奶牛中的每一头都有着自己的重量Wi以及自己的强壮程度Si。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,风险值越大,这只牛撑不住的可能性越高。您的任务是确定奶牛的排序,使得所有

2020-10-29 16:12:10 461

原创 货仓选址(贪心)

题目描述在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1~AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000输入样例:46 2 9 1输出样例:12#include<bits/stdc++.h>using namespace std;c

2020-10-29 11:54:58 1460 1

原创 排队打水

题目描述有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?输入格式第一行包含整数 n。第二行包含 n 个整数,其中第 i 个整数表示第 i 个人装满水桶所花费的时间 ti。输出格式输出一个整数,表示最小的等待时间之和。数据范围1≤n≤105,1≤ti≤104输入样例:73 6 1 4 2 5 7输出样例:56#include<bits/stdc++.h>using namesp

2020-10-29 11:09:28 147

原创 合并果子

题目描述在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使达达耗费的体力最少,

2020-10-28 17:59:40 309

原创 滑雪

题目描述给定一个R行C列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9在给定矩阵中,一条可行的滑行轨迹为24-17

2020-10-26 15:02:34 360

原创 没有上司的舞会

题目描述Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i 号职员的快乐指数Hi。接下来N-1行,每行输入一对整数L, K,表示K是L的直接上司。输出格式

2020-10-25 21:54:00 889 1

原创 LeetCode 力扣 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。来源:力扣(Le

2020-10-23 15:38:43 132

原创 LeetCode 力扣 2. 两数相加

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next)

2020-10-23 15:05:30 117

原创 LeetCode 1. 两数之和

解题思路用unordered_map来做,扫描一遍数据即可,时间复杂度O(n)class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> heap; for(int i = 0; i < nums.size(); i ++) { if(

2020-10-22 20:43:19 110

原创 LeetCode 1627. 带阈值的图连通性

class Solution {public: vector<int> p; int find(int x) { if(x != p[x]) p[x] = find(p[x]); return p[x]; } vector<bool> areConnected(int n, int threshold, vector<vector<int>&gt

2020-10-22 17:53:42 330

原创 leetcode 1626. 无矛盾的最佳球队

class Solution {public: int bestTeamScore(vector<int>& scores, vector<int>& ages) { int n = scores.size(); vector<pair<int, int>> q(n); for(int i = 0; i < n; i ++) q[i] = {ages[i], scores[i]};

2020-10-22 17:03:18 212

原创 leetcode 1624. 两个相同字符之间的最长子字符串

class Solution {public: int maxLengthBetweenEqualCharacters(string s) { int res = -1; for(int i = 0; i < size(s); i ++){ for(int j = i + 1; j < size(s); j ++){ if(s[i] == s[j]) res

2020-10-22 14:55:09 184

原创 Java四种访问权限修饰符(public、protected、default、private)

修饰符类内部同一个包不同包的子类同一个工程private√default√√protected√√√public√√√√对于class 的权限修饰只可以用 public 和 defaultpublic 类可以在任意地方被访问。default 类只可以被同一个包内部的类访问。ps:default就是默认值即什么都不写...

2020-10-21 20:09:31 239

原创 Java 成员变量(属性)和局部变量的区别

成员变量局部变量声明位置直接声明在类中形参、方法内部、代码块内、构造器内等修饰符private、protected、public 、static 、final不能用权限修饰符修饰,可以用final 修饰初始化值有没有,必须先赋值再使用内存加载位置堆空间或静态域内栈空间...

2020-10-21 20:02:18 200

原创 Java标识符规则及命名规范

规则必须遵守(不遵守代码无法编译)由 26 个英文字母大小写, 0~9,_ 或 $ 组成不可以以数字开头不可以使用关键字和保留字标识符不能包含空格Tips:Java标识符严格区分大小写, 长度无限制命名规范强烈建议遵守(增强可读性)包名 :多单词组成时所有字母都小写 xxxyyyzzz类名、接口名 :多单词组成时,所有单词的首字母大写 XxxYyyZzz变量名、方法名 :多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz常量名 :所有字母都大

2020-10-20 16:16:49 298

原创 编辑距离

给定n个长度不超过10的字符串以及m次询问,每次询问给出一个字符串和一个操作次数上限。对于每次询问,请你求出给定的n个字符串中有多少个字符串可以在上限操作次数内经过操作变成询问给出的字符串。每个对字符串进行的单个字符的插入、删除或替换算作一次操作。输入格式第一行包含两个整数n和m。接下来n行,每行包含一个字符串,表示给定的字符串。再接下来m行,每行包含一个字符串和一个整数,表示一次询问。字符串中只包含小写字母,且长度均不超过10。输出格式输出共m行,每行输出一个整数作为结果,表示一次询问中

2020-10-20 15:58:25 105

原创 最短编辑距离

给定两个字符串A和B,现在要将A经过若干操作变为B,可进行的操作有:删除–将字符串A中的某个字符删除。插入–在字符串A的某个位置插入某个字符。替换–将字符串A中的某个字符替换为另一个字符。现在请你求出,将A变为B至少需要进行多少次操作。输入格式第一行包含整数n,表示字符串A的长度。第二行包含一个长度为n的字符串A。第三行包含整数m,表示字符串B的长度。第四行包含一个长度为m的字符串B。字符串中均只包含大写字母。输出格式输出一个整数,表示最少操作次数。数据范围1≤n,m≤1000

2020-10-19 21:01:56 292

原创 SyntaxError: encoding problem: utf8

在打开文件的时候加上encoding='utf-8’类似于下面这样open(corpusPath, encoding='utf-8')

2020-10-15 09:52:53 4921

原创 石子合并

设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合并 1,2堆,代价为9,得到9 2 ,再合并得到11,总代价为4+9+11=24;如果第二步是先合并2,3堆,则代价为7,得到4 7,

2020-10-13 17:44:14 250

原创 最长公共子序列

给定两个长度分别为N和M的字符串A和B,求既是A的子序列又是B的子序列的字符串长度最长是多少。输入格式第一行包含两个整数N和M。第二行包含一个长度为N的字符串,表示字符串A。第三行包含一个长度为M的字符串,表示字符串B。字符串均由小写字母构成。输出格式输出一个整数,表示最大长度。数据范围1≤N,M≤1000输入样例:4 5acbdabedc输出样例:3#include<bits/stdc++.h>using namespace std;const int N

2020-10-13 16:41:06 486

原创 数字三角形

#include<bits/stdc++.h>using namespace std;const int N = 510, INF = 1e9;int n;int a[N][N];int f[N][N];int main(){ cin >> n; for(int i = 1; i <= n; i ++) for(int j = 1; j <= i; j ++) cin >> a[i][

2020-10-11 17:03:22 107

原创 背包问题总结

01背包问题特点:每件物品最多只能被选一次,即每件物品只有两种情况,选一次和不选,这也是该问题的名称由来。例题有 N 件物品和一个容量是 $V$ 的背包。每件物品只能使用一次。第 $i$ 件物品的体积是 $v_i$,价值是 $w_i$。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,$N,V$,用空格隔开,分别表示物品数量和背包容积。接下来有 $N$ 行,每行两个整数 $v_i, w_i$,用空格隔开,分别表示第 $i$ 件物

2020-10-10 20:08:17 228

原创 快速幂

#include<bits/stdc++.h>using namespace std;int qmi(int a, int k, int p){ int res = 1; while(k) { if(k & 1) res = (long long)res * a % p; k >>= 1; a = (long long)a * a % p; } return res;}int

2020-10-07 21:50:33 115

原创 leetcode 1577. 数的平方等于两数乘积的方法数

//注意数据范围,两个数相乘时会爆int,所以使用long longclass Solution {public: int work(vector<int>& a, vector<int>& b){ int res = 0; unordered_map<long long, int> hash; for(int i = 0; i < a.size(); i ++) hash[(long l

2020-10-04 21:14:21 326

原创 leetcode 1576. 替换所有的问号

题目链接class Solution {public: string modifyString(string s) { for(int i = 0; i < s.size(); i ++){ //从前往后遍历每个字符 if(s[i] != '?') continue; //如果该字符不是问号则不处理 char c = 'a'; //否则从a开始匹配方案 while(i && c == s

2020-10-04 20:22:00 225

原创 leetcode error: control reaches end of non-void function [-Werror,-Wreturn-type]

出现这个错误说明函数没有正常返回值,就是return有问题,检查一下吧

2020-10-04 20:15:59 350

原创 欧拉函数

#include<bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; while(n --) { int a; cin >> a; int res = a; for(int i = 2; i <= a / i; i ++) if(a % i == 0

2020-10-04 18:09:23 104 1

原创 欧几里得算法(辗转相除法、gcd)

#include<bits/stdc++.h>using namespace std;int gcd(int a, int b){ return b ? gcd(b, a % b) : a;}int main(){ int n; cin >> n; while(n --) { int a, b; cin >> a >> b; cout << gc

2020-10-04 16:40:01 101

原创 求约数(试除法)

#include<bits/stdc++.h>using namespace std;vector<int> get_divisors(int x){ vector<int> res; for(int i = 1; i <= x / i; i ++) if(x % i == 0) { res.push_back(i); if(i != x / i) res.pus

2020-10-03 23:07:52 109

原创 质数(筛法)

朴素筛法 O(n ln(n))#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int primes[N], cnt;bool st[N];void get_primes(int n){ for(int i = 2; i <= n; i ++) { if(st[i]) continue; primes[cnt ++] = i;

2020-10-03 20:40:00 70

原创 分解质因数

#include<bits/stdc++.h>using namespace std;void divide(int x){ for(int i = 2; i <= x / i; i ++) if(x % i == 0) { int s = 0; while(x % i == 0) x /= i, s ++; cout << i << ' ' &l

2020-10-03 19:40:50 67

原创 判定质数(试除法)

#include<bits/stdc++.h>using namespace std;bool is_prime(int x){ if(x < 2) return false; for(int i = 2; i <= x / i; i ++) { if(x % i == 0) return false; } return true;}int main(){ int n; cin >>

2020-09-28 14:56:35 353

原创 染色法判定二分图

#include<bits/stdc++.h>using namespace std;const int N = 2e5 + 10;int n, m;int h[N], e[N], ne[N], idx;int color[N];void add(int a, int b){ e[idx] = b, ne[idx] = h[a], h[a] = idx ++;}bool dfs(int u, int c){ color[u] = c;

2020-09-28 14:07:02 117

原创 二分图的最大匹配 (匈牙利算法)

时间复杂度(nm)#include<bits/stdc++.h>using namespace std;const int N = 510, M = 1e5 + 10;int n1, n2, m;int h[N], e[M], ne[M], idx;int match[N];bool st[N];void add(int a, int b){ e[idx] = b, ne[idx] = h[a], h[a] = idx ++;}bool find(int x

2020-09-28 11:40:28 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除