- 博客(107)
- 资源 (1)
- 收藏
- 关注

原创 位运算小技巧总结(更新中 2020/4/24)
想到哪写到哪交换两个数字void swap(int & a, int & b){ a ^= b; b ^= a; a ^= b;}判断奇偶if(1 == (n & 1)) // 奇数if(0 == (n & 1)) // 偶数取余数n % x 相当于 n & (x - 1)乘以二和除以...
2020-03-03 01:07:35
273
原创 C++实现智能指针部分功能(UniquePtr, SmartPtr, WeakPtr), head only(更新中)
先放代码#pragma once#include <memory> /* For std::move, std::forward, std::unique_ptr */#include <utility> /* For std::exchange */#include <type_traits> /* For template check */#include <atomic> /* For std::atomic *//* Deleter
2021-05-10 20:48:50
361
原创 模板小练习
使用模板创建和删除单向链表struct ListNode { int val; ListNode* next; ListNode(const int& _val = int(), ListNode* _next = nullptr) : val(_val), next(_next) {}};template<typename ...Args>ListNode* CreateList(const int& val, Args&&... args)
2021-03-26 17:18:30
192
原创 Cordova出现“Uncaught Error: module require not found“如何解决
将 require() 改成 cordova.require() 即可
2020-12-09 20:47:14
609
原创 Android ListView使CheckBox失效(变混乱)的解决办法
@Overridepublic View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder; if (null == convertView) { // init your view holder convertView.setTag(viewHolder); } else { viewHolde.
2020-11-01 23:57:21
439
原创 Android 显示弹窗 PopWindow
final PopupWindow popupWindow = new PopupWindow(弹窗的 View, 弹窗的宽度, 弹窗的高度);popupWindow.setOutsideTouchable(true); // 设置在弹窗外点击时弹窗消失final Button button = findViewById(button 的 id);button.setOnClickListener(new View.OnClickListener() { @Override p.
2020-10-30 20:52:20
336
原创 c++ 实现递归/非递归二叉树遍历
TreeNode数据结构struct TreeNode { int val; TreeNode * left; TreeNode * right; TreeNode(const int & _val = int(), TreeNode * _left = nullptr, TreeNode * _right = nullptr) : val(_val), left(_le...
2020-04-23 15:22:47
220
原创 洛谷 P1678 烦恼的高考志愿
P1678 烦恼的高考志愿二分法(200+ms)#include <cstdio>#include <algorithm>#define MAXN 100010#define RE registerusing namespace std;int a[MAXN];int b[MAXN];inline int read() { int x = 0;...
2020-04-20 18:57:14
426
原创 洛谷 P1873 砍树
P1873 砍树二分答案(300+ms)#include <cstdio>#include <algorithm>#define MAXN 1000100#define LL long long#define RE registerusing namespace std;LL a[MAXN];inline LL read() { LL x = ...
2020-04-20 16:56:32
584
原创 洛谷 P1102 A-B 数对
P1102 A-B 数对二分查找解法(100+ms)#include <cstdio>#include <algorithm>#define MAXN 200020using namespace std;int a[MAXN];inline int read() { int x = 0, sign = 0; char c = getchar();...
2020-04-20 11:50:46
435
原创 洛谷 P2249 【深基13.例1】查找
P2249 【深基13.例1】查找常规版本(400+ms)#include <iostream>#define MAXN 1000010using namespace std;int a[MAXN];int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n ...
2020-04-20 11:14:25
647
1
原创 c++ AVL树 插入 删除
AVL树的插入很简单,根据BST树的特性插入之后在回溯的过程中调整即可AVL树的删除也不是很难,一共有三种情况第一种是左子树为空(右子树为不为空无所谓)第二种是右子树为空(此时左子树不为空)这两种直接用另一半子树覆盖当前节点然后删除再回溯调整树即可第三种是左右子数都不为空这个情况首先找到要删除的节点,然后找到比该节点大的节点中最小的一个节点(右子树中最左边的节点),或者比该...
2020-04-14 21:41:59
1235
1
原创 c++ 随机生成数独(不保证唯一解)
给出一个最简单的生成数独初盘的程序,不保证有唯一解,终盘的正确性通过填充的过程来确定,可以用舞蹈链算法求解该数独得到其中一个解随机生成的方法就算交换行和列然后随机挖洞这里有一点要注意的就是交换的行和列必须处于同一宫中,要不然交换之后保证不了正确性然后就是随机挖洞,可以直接随机一个坐标,或者用洗牌算法(类似于扫雷初盘的生成)vector<vector<int> &...
2020-04-08 20:44:04
1301
原创 c++ 舞蹈链算法求解数独问题 控制台版本 带注释
#include <iostream>#include <vector>#include <algorithm>#include <unordered_map>#define DELPOINTER(p) if(nullptr!=(p)){delete[] (p),(p)=nullptr;}#define DO(sth) for (DLXN...
2020-04-08 09:15:30
912
原创 QT实现可编辑的QLabel(QEditLabel)
可编辑的QLabel主要是用于某些填字游戏,例如数独,具体的实现是通过在QStackedWidget切换QLabel和QLineEdit来实现的,代码也非常的简单,具体怎么用还需要自己添加新的内容QEditLabel.h#pragma once#include <QStackedWidget>#include <QLabel>#include <QLi...
2020-04-07 15:10:25
3224
1
原创 c++ spfa 链式前向星版本加上SLF优化版本的实现
普通版本#include <iostream>#include <queue>#include <cstring>#include <algorithm>#include <cstdio>#include <limits.h>const int INF = 0x3f3f3f3f;const int MAXN...
2020-04-03 19:07:55
282
原创 c++ Bullman-Ford算法前向星版本实现
#include <iostream>#include <queue>#include <cstring>#include <algorithm>#include <cstdio>#include <limits.h>using namespace std;const int INF = 0x3f3f3f3f;...
2020-04-03 19:06:25
205
原创 c++ Dijsktra算法邻接表版本和链式前向星版本的实现(堆优化版本)
邻接表版本#include <iostream>#include <queue>#include <cstring>#include <algorithm>#include <cstdio>#include <limits.h>const int INF = 0x3f3f3f3f;const int MAX...
2020-04-03 18:45:57
278
原创 c++ 二维凸包 Graham 扫描线算法模板
该算法是在gift-warping算法的基础上通过排序来预处理数据然后降低时间复杂度的#include <iostream>#include <memory>#include <cstdlib>#include <cstdio>#include <cstring>#include <string>#inclu...
2020-03-31 11:09:16
588
原创 c++ Java 二维凸包 Andrew 算法模板
模板题链接 P2742 [USACO5.1]圈奶牛Fencing the Cows /【模板】二维凸包先排序(先按 y 再按 x ),然后计算凸包,一共两次扫描,第一次计算下凸包,第二次计算上凸包(计算上凸包的时候可以不用判断top,如果要判断可以加一个top大于下凸包的元素个数)附上c++模板#include <iostream>#include <memory...
2020-03-31 01:19:34
325
原创 c++ 实现变进制数
#include <iostream>#include <memory>#include <cstdlib>#include <cstdio>#include <cstring>#include <string>#include <algorithm>using namespace std;#de...
2020-03-07 15:01:40
262
原创 四平方数和定理 leetcode 279 完全平方数
记录一下四平方数和定理的解法int numSquares(int n) { while (0 == (n & 0x3)) { n >>= 2; } if (7 == (n & 0x7)) { return 4; } for (int i = sqrt(n); i > 0; --i) { int j = sqrt(n - i * i);...
2020-03-02 23:22:03
241
原创 洛谷 P3368 树状数组(区间修改 单点查询)
就是区间修改和单点查询,这个题目可以用来检查自己写的对不对#include <iostream>#define lowbit(x) (x)&(-(x))using namespace std;int n;int c[5000005];int a[5000005];void update(int x, const int & val) { while ...
2020-03-01 22:35:20
209
原创 洛谷 P1428 小鱼比可爱 树状数组解法
题目描述人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮...
2020-03-01 21:28:09
401
原创 线段树和树状数组(记录一下模板)
线段树(单点修改,区间查询)vector<int> seg; // 线段树数组void segUpdate(const int & k) { seg[k] = seg[k << 1] + seg[k << 1 | 1];}void build(const int & k, const int & l, const int &...
2020-03-01 14:00:59
226
原创 c++实现最坏时间为线性时间的快速选择算法
上图是算法导论第三版第九章9.3所给出的步骤,根据这个步骤可以得到下面的代码/* 找中位数,只有五个数,直接排序取中间那个即可 */int findMedian(vector<int> & nums, const int & left, const int & right) { sort(nums.begin() + left, nums.begi...
2020-02-28 00:09:51
539
原创 蓝桥杯_算法训练_最大最小公倍数
试题 算法训练 最大最小公倍数提交此题 资源限制时间限制:1.0s 内存限制:256.0MB问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1 <= N <= 106。...
2020-02-04 20:29:11
200
原创 蓝桥杯_算法训练_区间k大数查询
试题 算法训练 区间k大数查询提交此题 资源限制时间限制:1.0s 内存限制:256.0MB问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个...
2020-02-04 19:50:57
199
1
原创 TopK算法
需要先在 "testData.txt" 文件里面输入M和N比如2000 10通过最小堆实现TopK最小堆通过数组模拟二叉树来实现#pragma warning(disable:4996)#pragma once#include <fstream>#include <ctime>const char* FILEIN = "testData.txt...
2019-09-25 20:01:11
1478
1
原创 车厢调度问题(队列和栈的实现)
根据队列和栈的性质队列找尾部最大的车厢号栈找尾部最小的车厢号栈、队列、数组可用STL或者自己实现#pragma once#include "vector.h"#include "queue.h"#include "stack.h"#include <fstream>const char* INPUTVECTORFILENAME = "carriagesRe...
2019-09-25 19:59:03
2941
原创 c++顺序表实现栈
通过capacity控制最大容量,超过就扩容,可以避免多次插入时的扩充操作template<class T>class Stack {public: Stack(); Stack(const size_t & length); Stack(const Stack<T> & s); ~Stack(); void push(const T ...
2019-09-23 19:36:12
263
原创 c++单链表实现队列
通过两个链表节点指针实现队列,一个当作队头,一个当作队尾,入队就是往尾节点后插入,退队就是删除头节点template<class T>struct ListNode { T data; ListNode<T> *next; ListNode(const T & data) { this->data = data; this->ne...
2019-09-23 19:07:57
836
原创 双队列模拟栈
两个队列模拟栈只要保证一个栈为空就行入栈直接往不为空的那个队列入队即可出栈时将不为空的队列留下一个,剩下全部入队到另一个队列中,然后弹出剩下的那个元素#include <queue>template<class T>class Stack {public: void push(const T & elem); void pop();...
2019-09-23 13:30:16
352
原创 双栈模拟队列
简单的双栈模拟队列输入栈模拟入队输出栈模拟退队如果退队时输出栈输出栈都为空则说明队列为空,如果输出栈不为空则直接弹栈,如果输入栈不为空输出栈为空就将输入栈内元素全部弹出并压入输出栈,然后输出栈弹栈#include <stack>template<class T>class Queue {public: void enQueue(const T ...
2019-09-23 13:03:15
297
原创 单链表的输出,逆序,排序
ListNode节点的定义template<class T>struct ListNode { T val; ListNode* next; ListNode(T val) { this->val = val; this->next = nullptr; }};链表的几个简单的题目/*从文件中读取链表数据*/template<cl...
2019-09-22 21:59:39
608
1
原创 vs集成qt实现简单的计算器
可能没有考虑到所有情况,但基本的计算可以做到!Calculator.h#pragma once#include <QtWidgets/QDialog>#include "ui_Calculator.h"#include "calculation.h"#include <QPushButton>#include <QLineEdit>#in...
2019-09-22 21:43:16
1033
原创 自己实现栈和数组和vector
stack.h#pragma oncetemplate<class T>class Stack {public: Stack(); Stack(const Stack<T> &s); ~Stack(); void push(const T& elem); void pop(); const T & top(); size_...
2019-09-22 21:39:47
137
原创 单链表实现法雷序列
法雷序列节点的定义struct FareyListNode { int numerator; // 分子 int denominator; // 分母 FareyListNode *next; FareyListNode(int numerator, int denominator) { this->numerator = numerator; this->de...
2019-09-22 21:19:21
1695
2
原创 生成黑白相间的网格(位运算)
import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class MyFrame { private sta...
2019-08-12 20:34:22
644
原创 java实现2048
修改row和col可以改变大小,如果棋盘太小可以更改frame的长和宽按 a 可以让电脑按上左下右的规则一直运行到游戏结束 // 暂时不知道怎么变成动态的,并且row和col大于6时就会运行很久上下左右都是通过 先合并,再移动 的方式实现的 // 可能比较复杂这是类的代码,要运行直接再main函数里面实例化对象就行了package com.game.frame;import ...
2019-07-26 22:14:57
1639
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人