QT复习
Qt复习重点总结
第一章:
信号槽
第二章:
第三章:
第四章:
第五章:
第六章:
11.x(),y(),pos()在整个窗体左上角的坐标位置
第七章:
填空题
简答题:
12本实例共用到四个布局管理器,分别是 LeftLayout, RightLayout, BottomLayout,MainLayout
12345678`Qt5`的模型/视图结构主要包括三个部分:模型(Model)、视图(View)和代理(Delegate)。它们之间的关系如下:1. 模型(Model):与数据源通信,并为其他部件提供接口。2. 视图(View):从模型中获得用来引用数据条目的模型索引3. 代理(Delegate):在视图中,代理负责绘制数据条目,当编辑条目时,代理和模型直接进行通信在`Qt5`的模型/视图结构中,模型是核心,它存储了所有的数据,视图用于展示数据和与用户的交互,代理则负责对数据的显示进行自定义控制。视图通过模型中的数据进行展示和交互,代理则通过重写其成员函数来实现自定义的显示效果。模型、视图和代理之间通过信号和 ...
c/c++双链表,循环链表
双链表的初始化(带头结点)
初始化代码
12345678910111213141516171819202122232425262728293031323334#include <stdio.h>#include <stdlib.h>typedef struct DNode{ int data; struct DNode *prior, *next;}DNode, *DLinklist;// 初始化双链表bool InitDLinkList(DLinklist &L){ // 分配头节点 L = (DNode *) malloc (sizeof(DNode)); if (L == NULL)return false; L->prior = NULL; //前头结点指向NULL L->next = NULL; return true;}void testDLinklist(){ DLinklist L; InitDLinkList(L) ...
C/C++数据结构->单链表,顺序表
时间复杂度:
空间复杂度
线性表的基本操作
顺序表
顺序表的实现
1234567891011121314151617181920212223242526272829#include <cstdio>#define MaxSize 10typedef struct { int data[MaxSize]; //静态数组存放数据元素 int length; //顺序表的长度}SqList; //顺序表的类型定义// 基本操作--初始化一个顺序表void InitList(SqList &L){ for (int i =0; i < MaxSize; i++) L.data[i] = 0; //设置默认初始值为0 L.length = 0; //初始长度为 0}int main(){ SqList L; //定义一个顺序表 InitList(L); //初始化顺序表 L.length = 10; for (int i = 0; i< L.length; i++) { printf(&quo ...
动态规划(01背包问题)
类型
01背包:每件物品最多只用一次
完全背包:每件物品有无限个
多重背包:每个物品的个数不同
01背包:
方法
题目1:https://www.acwing.com/problem/content/description/2/
有 N 件物品和一个容量为 V 的背包,每件物品有各自的价值且只能被选择一次,要求在有限的背包容量下,装入的物品总价值最大。
思路:
枚举第iii个物品,枚举jjj背包的体积
不选择第iii个物品或容量大于jjj,则当前最大价值为dp[i−1][j]dp[i-1][j]dp[i−1][j]
选择第iii个物品,那么找到去除当前物品iii所占体积,也就是j−w[i]j-w[i]j−w[i], 再找二维数组所存的最大价值,最后加上v[i]v[i]v[i],得到dp[i−1][j−w[i]]+v[i]dp[i-1][j-w[i]] + v[i]dp[i−1][j−w[i]]+v[i]
二维:
12345678910111213141516171819202122232425262728#include <iostream>#include &l ...
博弈论(一)
结论:
a1⊕a2⊕...an=0a_1\oplus a_2 \oplus ...a_n = 0a1⊕a2⊕...an=0 先手必败
a1⊕a2⊕...an=x≠0a_1\oplus a_2 \oplus ...a_n = x \ne 0a1⊕a2⊕...an=x=0 先手必胜
证明:
操作到最后, 每堆石子数都是000 , 0⊕0⊕...0=00\oplus 0 \oplus ...0 = 00⊕0⊕...0=0
假设:
不妨设x的二进制表示中最高一位1在第kkk位,那么在a1,a2,…,ana_1,a_2,…,a_na1,a2,…,an中,必然有一个数aia_iai,它的第kkk为时1,且ai⊕x<aia_i⊕x<a_iai⊕x<ai,那么从第i堆石子中拿走(ai−ai⊕x)(a_i−a_i⊕x)(ai−ai⊕x)个石子,第iii堆石子还剩ai−(ai−ai⊕x)=ai⊕xa_i−(a_i−a_i⊕x)=a_i⊕xai−(ai−ai⊕x)=ai⊕x,此时a1⊕a2⊕…⊕ai⊕x⊕…⊕an=x⊕x=0a_1⊕a_2⊕…⊕a_i ...
容斥原理
容斥原理的证明过程:
如果一个元素在k个集合中出现了2次,那么在计算的过程中会被重复的加2次,所以需要减去。
如果出现了三次,那么在计算的过程中会被重复的减去,则需要加上
题目:// httpss://www.acwing.com/problem/content/892/
123456789101112131415161718192021222324252627282930313233343536373839404142// httpss://www.acwing.com/problem/content/892/#include <iostream>#include <algorithm>using namespace std;const int N = 20;int p[N];int n, m;typedef long long LL;int main(){ cin >> n>> m; for (int i = 0; i < m; i ++) cin >> p[i]; int res = 0; // 枚举1 ...