- 博客(126)
- 资源 (6)
- 收藏
- 关注
原创 03 - Qt 多线程网络通信——套接字
03 - Qt 多线程网络通信——套接字关于Qt中如何进行网络通信的API等介绍, 以及TCP UDP的通信流程, 最后还有一个实例代码
2022-09-29 17:16:18
6347
7
原创 04 - 使用Intent在Activity之间穿梭
在Intent中提供了一系列putExtra()方法的重载, 可以把我们想要传递的数据暂存在Intent中, 启动另一个活动后, 只需要在另外一个活动中把这些数据再从Intent中取出来就可以了;目标:在MainActivity中有一个字符串, 现在要讲这个字符串传递到SecondActivity中, 代码实现如下:(这里利用显示Intent的方法)putExtra()方法, 这里接收两个参数, key键和value值, 可以用于后面从Intent中取值, value则是要传递的值;用方法获取到。
2022-09-18 20:14:41
655
原创 03 - Android——Activity活动(基本用法)
重写方法, 代码如下:在方法中, 通过调用item.getItemId()来判断点击的是哪一个菜单项, 然后给每一个菜单项加入逻辑代码处理, 比如Toast消息提醒;菜单里面的菜单项默认是不会显示出来的, 当点击菜单按钮(三个点)的时候才会弹出里面具体的内容, 因此它不会占用任何活动(Activity)的空间;
2022-09-14 17:32:26
101256
1
原创 02 - QT 自定义控件封装
widget头文件中大致没有什么修改的内容, 所以这里跳过到widget.cpp提升之后, widget.ui中的控件smallwidget(对象名也改过了)就可以直接使用自定义控件类中封装好的两个方法// 获取控件当前的值 connect(ui -> btn_get , & QPushButton :: clicked , this , [ = ]() {});
2022-09-12 14:44:31
606
2
原创 02 - 分析一个Android程序以及日志工具的使用
Log.d():需要两个参数, 第一个参数是tag,一般传入当前的类名就可以, 自己定义也可以, 这个tag主要是用于对打印信息进行过滤的;第二个参数是msg, 想要打印的具体的内容;例如:(这里选的是,show only selected application 即只显示选定的应用程序)节选《第一行代码(第二版)》中的片段进行分析。
2022-09-11 22:50:10
1011
原创 01 - SQL概述与SQL分类
SQL (Structured Query Language, 结构化查询语言)是使用关系模型的数据库应用语言, 与数据直接打交道, 由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手定制SQL标准, 先后有SQL-86, SQL-89, SQL-92, SQL-99等标准。DDL DML DCL
2022-09-11 17:42:25
405
原创 sockaddr地址结构——socket
sockaddr地址结构bind(sock, (struct sockaddr *)&server_addr, sizeof(server_addr));// 像bind这些函数API在很早的时候就有了// 而struct sockaddr_in 是后面出现的, 针对IPV4// IPv4即4个字节(32位)来表示IP,那么也就4亿多IP// 所以后面出现了IPv6, 用128个位来表示IP地址一、sockaddr数据结构struct sockaddr: 很多网络编程函数诞生早于IP
2022-05-20 22:36:37
950
原创 数组倒转+求平均数——Java
数组倒转思路:以length/2为界限,左右对应位置上的数字交换package mulArray;import java.util.Arrays;public class arrayReverse { public static void main(String[] args) { int[] arr = new int[7]; int len = arr.length; for (int i = 0; i < len; +
2022-05-18 16:49:45
184
原创 多维数组——Java
二维数组可以认为二维数组是元素为一维数组的数组1. 声明二维数组type[][] arrayName;2. 初始化二维数组(1)静态初始化arrayName = new type[][]{{...}, {...}, ...};- 若在声明时直接进行初始化,则可以省略new type[][]- type[][] arrayName = {{...}, {...}, ...};(2)动态初始化arrayName = new type[outerLength][innerLength]
2022-05-18 15:56:55
193
原创 Arrays工具类——Java
一、Arrays工具类1. 常用方法(1)Arrays.toString(array)- 功能: 打印- 返回: 字符串- 传入数组,返回拼接数组值后的字符串(2)Arrays.equals(array1, array2)- 功能: 比较两个数组会不会相等- 返回: 布尔值(3)Arrays.sort(array)- 功能: 排序(4)Arrays.copyOf(array, newLength)- 功能: 复制- 返回: 新数组- 传入原始数组array和长度newLen
2022-05-16 11:27:59
294
原创 Java中的数组——入门
一、什么是数组?1. 数组的概念 - 数组是一种最常见的数据结构,用于存储多个数据; - 在Java中,数组中的元素具有相同的数据类型,数组本身是一种引用数据类型2. 数组的特点数组中的元素按线性方式排列,可以通过下标来访问数组中的每一个元素;一旦初始化完成,数组在内存中所占的空间就固定下来了,即数组的长度不可以改变;...
2022-05-16 10:40:50
105
原创 dia和威严(dfs)
(1)代码 + 思路(注释)// 边 权值 树 DFS// 边权,点权 // 因为只会往下,所以不开标记数组(不会回溯) #include <bits/stdc++.h>using namespace std;const int N = 200010;#define ll long long vector<pair<int, int>> resu[N]; // 存储上级x到下级y传递信息的时间kint n; // 学生会的总人数,包括会长dia(ro.
2022-04-12 18:49:51
469
原创 常用的递归算法:dfs(深度优先搜索),记忆化搜索,分治
递归值函数调用自身;一、DFS的介绍概念很简单,但是还是得了解一下,下面介绍的内容是重点1. 图的DFS(1)先看一下vector是怎么建图的?vector<int> vecMap[100010];// n条边(这个结点所连接的结点) 邻接表建图for (int i = 0; i < n; ++i) { int x, y; vecMap[x].push_back(y); vecMap[y].push_back(x); //若是无向图就加上这一句}(2.
2022-04-12 14:54:52
1471
原创 ranko的手表(枚举)
(1)思路:枚举所有t1,t2可能的分钟数(转换成分钟好算),再遍历这些枚举的可能结果,不断维护更新最大时间间距和最小时间间距,主要就是这个过程该如何枚举:见代码有注释(时有十位和个位,分有十位和个位)(2)测试数据18:0?2?:1?(3)代码:// 贪心可以,但是考虑的情况很多且复杂 // 24 *60 枚举可以过// 将时分统一转换为分钟,到时候好算// 枚举t1和t2可能的分钟数,合理的先加入到vector容器中 #include <bits/stdc++.h&.
2022-04-10 17:05:14
1068
原创 数位染色(状压枚举/dfs)
(1)思路:x的范围不超过1e18,所以x最多只有19位数字。O(n2^n)状压枚举每位选或不选即可通过。(每个位置上两种状态0或1,多少位置,2的多少次方)还需要遍历n;代码中有注释,可以先看一遍代码,方便理解(2)测试数据1234567(3)代码(状压—状态压缩)// 状压基本模板 #include <bits/stdc++.h>using namespace std;#define ll long long int zt[22]; //代表每一位上的数字,等下..
2022-04-10 15:33:48
751
原创 you和帆船(枚举)
(1)测试数据21 00 1(2)代码(思路在注释中)// 直接枚举 //2 ≤n ≤2000 可以枚举 #include <bits/stdc++.h>using namespace std;int n;const int N = 2005;int a[N][2]; double minDis = 1e9; //最小路径和 int main () { double tmp; cin >> n; // 输入宝藏的地点 for (int i =.
2022-04-10 14:31:36
206
原创 chika和蜜柑(贪心/优先队列)
chika和蜜柑(1)思路:贪心按照甜度最大的来取(从大到小排序),遇到相同甜度的去酸度最小(从小到大排序),可以用sort也可以用优先队列来写;(2)测试数据3 21 3 42 2 5(3)代码(贪心思想 + sort)#include <bits/stdc++.h>using namespace std;#define ll long longint n;// 在C++的语法里面,可以直接用 结构体名字来定义变量,而无需用typedef重命名 struct
2022-04-09 21:55:04
559
原创 疯狂的自我检索者(贪心)
疯狂的自我检索者(1)关键思路贪心的思想:未知的人都打5分,就是最大的了,未知的人都打1分,就是最小的了;(2)测试数据5 11 2 3 4(3)代码// 贪心 #include <bits/stdc++.h>using namespace std;#define ll long long ll n, m;double avMax;double avMin;int main () { ll x; cin >> n >> m;
2022-04-09 20:48:01
442
原创 贪心算法的介绍+枚举算法的介绍(brute force):包含练手题目
一、什么是贪心算法贪心值每一步都做出当前最优的选择。一般解决的问题有如下特点:局部最优能导致全局最优。1. 举个例子:问题如下:纸币面额有1元、2元、10元、100元。问凑出正好x元最少要多少张纸币?关键思路:我们就可以用贪心,每一次都尽量取面额大的,不断凑出x;为什么这样贪心不会有问题?因为 1 2 10 100, 这些数字之间,他们有整除关系,这意味着,多张小面额的纸币,一定可以被面额大的数字所代替;如果现在的纸币面额为1 15 17 21,那么还可以用贪心吗?思考一下;现在已
2022-04-09 19:56:57
611
原创 kotori和n皇后
kotori和n皇后(1)测试数据51 22 53 16 74 8224(2)关键思路开4个set,分别存x、y、x + y、x - y;遍历时,不断查询每个点是否在某个set里面存在,若不存在则分别加入4个set。否则证明和之前的皇后会攻击(把这个i皇后保留下来);现在来说一下,为什么要保留这四个;x, or y集合中如果有已经相等的,说明是在同一行或者同一列(同行和同列会互相攻击);x - y存进集合中如果有已经相等的,说明在同45斜角(x1 - y1 == x2
2022-04-08 22:38:45
377
原创 算术教室(两种方法,一种set,一种利用二分)
算术教室关键思路:方法一:将a数组排好序后,然后遍历b数组,利用二分查找的方法(logn),在a数组中查找x-b[i];(这个方法先略过,以后有时间补上,这里主要是熟悉STL操作);方法二:利用set集合,将a数组输入到set集合中,然后在集合中查找x - b[i](1)测试数据5 4 121 3 4 5 93 4 6 10(2)代码(set)#include <bits/stdc++.h>using namespace std;#define ll long l
2022-04-08 20:56:42
540
原创 计划清单(模拟)
思路:双端队列+结构体模拟#include <bits/stdc++.h>using namespace std;struct Task { string name; long long lel;};deque<Task> dq;// 双端队列long long n;int main() { cin >> n; for (int i = 0; i < n; ++i) { Task tmp; cin >> tmp....
2022-04-08 19:16:03
170
原创 小红练心算
思路:把握三个数字,构造一个函数,返回值是下一个平方的数字(m),然后更新a(k:全局变量)与a+2*x(t:全局变量,!!!但是但是,为了最后的输出方便,t就接收较大的值,也就是说t可等于更新后的a,例如:48 ,k = 46,,t = 50,看代码吧,这里说的不好),这里我们用括号里面的数字简略代替,什么意思呢?我们用939来举例经过一次函数调用之后,k = 900,t = 978,m = 39(待平方的数字);所有的乘积小的数一定写在大的数前面这题用long long,数据挺大的;可以算...
2022-04-08 17:03:09
171
原创 小红和R (模拟)
思路:找规律第一行,输出n+2个R;接下来n行,先输出一个R,然后输出n个空格,接着再输出一个R来结尾;接下来,输出n+2个R;接下来的n+1行,每行都是输出两个R,注意,两个R之间有空格,空格的个数从0开始递增,知道最后一行有时候这样的题,单个看,不好看,就得一块一块的分区看,来找规律;#include <bits/stdc++.h>using namespace std;int n;int main() { cin >> n; for (int i ...
2022-04-08 14:09:22
124
原创 小红填符号
小红填符号思路:模拟(16个if),这是暴力的方法#include <bits/stdc++.h>using namespace std;double a, b, c, x; // !!!// 注意要特判除0的情况 int main (){ cin >> a >> b >> c >> x; if (a + b + c == x) cout << "+ +" << endl; else if (
2022-04-08 13:49:38
119
原创 小红划数字
小红划数字关键思路:这个数的个位数字是偶数,那它就是偶数;所以我们可以优先划掉后面的数字,直到遇到偶数为止;不要想的太复杂了;#include <bits/stdc++.h>using namespace std;string nums;int main() { cin >> nums; bool flag = false; int lenN = nums.size(); int ans = 0; for (int i = lenN - 1; i
2022-04-07 21:57:08
194
原创 STL 相关知识点粗略浅过一下(包括迭代器)
一、vector(1)代码// vector// vector 大多数情况下可以代替普通数组(vector 可变长度)#include <bits/stdc++.h>using namespace std;//模拟图的邻接表int main () { vector<int> a[10010]; //建议vector数组开大点 int n, m; // n 个结点,m条边 cin >> n >>m; for (int i = 0; i
2022-04-07 17:37:45
355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人