自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FFmpeg命令行音频录音

# 查看dshow支持的设备ffmpeg -f dshow -list_devices true -i dummy# 使用麦克风进行录音,最后生成一个wav文件ffmpeg -f dshow -i audio="麦克风阵列 (Realtek(R) Audio)" out.wav#查看设备支持哪些参数ffmpeg -f dshow -list_options true -i audio="麦克风阵列 (Realtek(R) Audio)"#指定参数录音ffmpeg -f ds..

2021-06-08 22:30:33 2117

原创 C语言高级宏定义

带参宏定义带参宏定义本质还是个宏定义,编译预处理时任然要进行简单文本替换#define MAX(x, y) ((x) > (y) ? (x) : (y))int main(){ cout << MAX(2, 3) << endl; //输出:3 return 0;}编译器在预处理时只会机械地将宏在文本中替换,为了避免替换之后产生二义性,所以将宏的参数用 “()” 括起来# 和 ###和## 是两个预处理运算符,在带参宏定义中,#后跟一个参数预处理器会把这

2021-06-08 16:55:35 341

原创 函数指针做参数、返回值

函数指针顾名思义,函数指针首先是个指针,其次指向一个函数dingyi

2021-06-04 09:34:27 448

原创 C C++ Java 跨平台原理

C、C++跨平台原理:由此可见C、C++跨平台原理是:使用平台相关的编译器生成对应平台的可执行文件Java跨平台原理:由此可见,Java跨平台原理是:编译生成相同的字节码文件,由平台上的JVM(Java虚拟机)解析字节码文件,实现一次编译到处运行...

2021-04-28 22:16:05 280

原创 图论 : 最短路径实现(通用) - Dijkstra 、Bellman-Ford 、Floyd- Java

最短路径文章目录最短路径Dijkstra算法实现算法实现过程代码实现最短路径是指两点之间权值之和最小的路径之和,广泛应用于路径规划问题,有向图、无向图均适用,但不能有负权环:上图C - D - F之间构成了负权环,A 到 F之间的最短路径A -> C -> D -> F -> C -> D -> F…可以无限缩短,即不存在最短路径。单源最短路径最经典的实现有Dijkstra、Bellman-Ford两种算法。Dijkstra算法实现使用前提:不能有负权边以

2021-04-27 00:08:46 308

原创 Bellman-Ford算法代码实现

原文链接代码:package edu.stu.tptang;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.

2021-04-26 16:11:36 189

原创 Dijkstra算法代码实现

原文链接代码:package edu.stu.tptang;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.

2021-04-25 21:32:10 244

原创 2020第十一届蓝桥杯 4.分配口罩(Java语言)

4. 分配口罩(10分)问题描述某市市长获得了若干批口罩,每一批口罩的数目如下:(如果你把以下文字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 mask.txt,内容与下面的文本相同)9090400849940059268008547000495820044226005751200417560063096005865200660440046350001066340080872004554000现在市长要把口罩分配给市内的 2 所医院

2021-04-17 11:17:22 1412 8

原创 动态规划 -- 0-1背包问题(Java语言)

题目描述:有n件物品和一个最大承重为w的背包,每件物品唯一,每件物品的重量是w1,重量是v1,在保证总重量不超过w的前提下,背包的总价值最大是多少?定义状态:定义dp[ i ] [ j ]为:在最大承重为j的情况下,有前i件物品可选。定义边界:dp[0][ j ] = 0 : 没有物品可选dp[ i ] [0] = 0 : 背包已经达到最大承重dp[0][0] = 0 : 没有物品可选且背包已经达到最大承重定义状态转移方程:问题的关键在于:面对当前一件物品选或不选如果 j >= 当

2021-04-16 23:33:22 743 2

原创 动态规划 -- 零钱兑换(Java语言)

题目:零钱兑换动态规划:dfs是自顶而下的递归,dp是自底而上的递推。** 动态规划步骤:**1.定义状态:如dp[i]的含义2.设置初始状态(边界):如dp[ 0 ]的值3.确定状态转移方程:如dp[ i ]和dp[ i-1 ]的关系题目描述:假设有25分,20分,5分,1分的硬币,硬币数量不限,现要找给客户41分的零钱,如何办到使用硬币数量最少?解析:定义dp[n]为找给客户n分零钱需要的硬币最少。假设第一次选择25分的,那么dp[n] = dp[n-25] + 1;假设第一次选择

2021-04-16 14:03:43 1212

原创 2020年第十一届蓝桥杯 8.数字三角形(Java语言)

8. 数字三角形【问题描述】上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最 大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。【输入格式】输入的第一行包含一个整数 N (1 < N ≤ 100),表示三角形的行数。下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。【输出格式】输出

2021-04-15 23:17:20 1542 5

原创 2020第十一届蓝桥杯 7.单词分析(Java语言)

7. 单词分析【问题描述】小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不 住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得 最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。【输入格式】输入一行包含一个单词,单词只由小写英文字母组成。【输出格式】输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数

2021-04-15 21:55:28 383

原创 Java Map集合遍历

1. 单独遍历keys、values: Map<Character, Integer> map = new HashMap<>(); //遍历keys Set<Character> set = map.keySet(); for(Character key : set) { System.out.println(key); } set.forEach((Character key)->{ System.out.println(ke

2021-04-15 21:19:22 165

原创 2018年第九届蓝桥杯省赛 9.全球变暖(Java语言)

9. 全球变暖你有一张某海域NxN像素的照片,".“表示海洋、”#"表示陆地,如下所示:其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。【输入格式】第一行包含一个整数N。 (1 <= N &l

2021-04-15 16:15:22 385

原创 2013年第四届蓝桥杯 9.带分数(Java语言)

9.带分数100 可以表示为带分数的形式:100 = 3 + 69258 / 714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。题目要求:从标准输入读入一个正整数N (N<1000*1000)程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输出每个表示,只统计有多少表示法!例如:用户输入:100程序输出:11再例如

2021-04-13 16:15:17 149 1

原创 2013年第四届蓝桥杯 4.黄金分割数(Java语言)

4. 黄金连分数黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。比较简单的一种是用连分数: 1黄金数 = -----------------

2021-04-12 17:45:14 173

原创 通用并查集 - 基于QuickUnion实现(Java语言)

基于基本数据类型的并查集实现请参考QuickUnion。自定义对象并查集的底层实现:链表+Map映射 [这里的链表表现为树]逻辑上:自下而上的多棵树。数组已经满足不了自定义对象并查集,可以定义内部类Node形成Node节点来封装每个自定义对象。这里提供树高rank属性,通过rank控制树相对平衡以提高并查集使用效率。private static class Node<V>{ V value; Node<V> parent = this; //初始化时自己的父节点就是

2021-04-11 14:45:08 108

原创 并查集 -- QuickUnion(Java语言)

需求分析假设场景: 有n个村庄,有些村庄之间有连接的路,有些村庄并没有连接的路。设计一个数据结构,能快速实现以下两个操作:(1)查询任意两个村庄之间是否有连接的路。(2)连接任意两个村庄。平衡二叉树、集合、数组、链表也能实现上述需求,但这些工具能实现的功能更多,与专注于实现上述特定需求的并查集来说效率并不理想。并查集的实现有QuickFind、QuickUnion两种方式,本文采取后者实现。QuickUnion - 底层是数组,逻辑层面是树。首先初始化每个节点的父节点为自己 --初始化每个“

2021-04-10 22:29:40 427

原创 2020年4月蓝桥杯第二次模拟赛(软件类)09通电—最小生成树+并查集(Java语言)

2020年4月蓝桥杯第二次模拟赛(软件类)09通电—最小生成树+并查集(Java语言)9 通电【问题描述】2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接的与发电站相通。小明测量了所有村庄的位置(坐标)和高度,如果要连接两个村庄,小明需要花费两个村庄之间的

2021-04-09 22:00:20 142

空空如也

空空如也

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

TA关注的人

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