自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vagrant-io_uring

一个基于io_uring的服务器,可供学习。https://github.com/fawkesLi-lhh/Vagrant-io_uring/(ps:这大概是全网第一个demo吧,哈哈哈哈哈哈)

2021-04-14 14:37:46 173

原创 io_uring polling + pread 真正的异步编程

io_uring是Linux 5.1中引入的一套异步非阻塞的io接口io_uring的系统调用只有三个io_uring_setup,io_uring_enter,io_uring_register。但实际使用起来非常复杂,所以io_uring作者基于上面三个系统调用封装了一个易于使用的库,liburing (https://github.com/axboe/liburing)实际使用流程大致就是先初始化一个ring,先取一个sqe,然后把要做的事放入sqe,然后提交(如果有多个sqe也只需要提交一次),

2021-03-05 23:23:43 590

原创 Long Permutation

题意:A permutation is a sequence of integers from 1 to n of length n containing each number exactly once. For example, [1], [4,3,5,1,2], [3,2,1] — are permutations, and [1,1], [4,3,1], [2,3,4] — no.Permutation a is lexicographically smaller than permutatio

2020-11-25 23:24:33 179

原创

思路:对于每一次询问x y,我们要求的是x到y之间的一条路径,这条路径满足路径的权值最小值在所有路径中最大,所以我们可以直接构造最大生成树,在这颗树上求解,之后直接用lca求解即可。#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <q.

2020-10-15 21:51:33 149

原创 2020-09-01

计算机组成原理预习概论计算机的基本概念冯·诺伊曼思想二进制表示程序和数据存储程序的工作方式五大部件组成信息的数字化表示采用二进制代码表示各种信息物理机制上用数字信号(脉冲、电平)存储程序工作方式事先编制程序事先存储程序自动、连续地执行程序计算机系统地硬件组成主要功能部件CPU运算器、寄存器组、控制器运算器算数运算和逻辑运算由通用寄存器组、选择器、ALU、移位器组成。ALU:全加器实现运算操作通用寄存器组:提供操作数、存放结果选择

2020-09-01 20:15:47 513

原创 2020-08-30

操作系统预习!!!求求你了 学快点吧概念和目标层次结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2UxuKLHa-1598797484401)(C:\Users\余伟\AppData\Roaming\Typora\typora-user-images\1597906019295.png)]操作系统作用:1.协调软硬件资源工作;2.为上层应用程序提供服务;3.是系统软件、不是硬件。操作系统需要实现的功能和目标进程:程序的执行过程,执行前需要将程序放入内

2020-08-30 22:25:01 262

原创 2020-08-11

时间复杂度:客观描述算法的好坏的量3n O(2*n) = O(n)O(2*x2 +x) = O(x2)O(2n+n2) = O(2n)1秒钟跑出答案。x<=1000O(x2)1e6 1e7 1e8(ab)%m = ((a%m)(b%m))%m(a+b)%m = ((a%m)+(b%m))%m(a-b)%m = ((a%m)-(b%m))%mb->-b顶点和边构成的集合INF 0x3f3f3f3f 表示无穷大快速幂对dp优化,dp优化: 1.基于可变决策集合的优化

2020-08-11 12:04:53 107

转载 poj 1818

#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include <algor

2020-07-28 17:17:53 126

原创 poj 3290

这个题做了三个多小时,前2个小时没用理解到这句话Given a collection of symbols resulting from throwing a set of dice,我以为是最优子序列问题,各种dp回溯都过不了,但是人家说a set of dice,就是输入的是一个集合,而不是一个序列。隐含的意思是没有顺序问题,可以乱序构造。后面一个小时是没用理解到这句话p, q, r, s, and t are WFFs我光看到p, q, r, s,没用看到and t,然后一直wa。读

2020-07-18 12:58:27 147

原创 poj 1160 dp?四边形不等式

看到ac人次我就隐隐感觉不对。。。四边形不等式的题没有四边形不等式?老婆饼没老婆???

2020-07-10 22:51:49 141

原创 bzoj 1911斜率优化

这个题为什么有个*???关于斜率优化又有了新的感悟对于次优解的排除:假设对于i来说l是次优解。即满足k(q[l],q[l+1])<=k(i)时,l+1比l更优k(q[l],q[l+1])表示这两个点连成一条线的斜率,k(i)表示在i处那根线的斜率,这个很容易就可以证明对于提前排除不可能的解:假设r是考虑排除的点,now是考虑放入的点,即满足k(q[r-1],q[r])>=k(q[r],now)时,应该提前排除r这个证明也特别简单,就是不等式换算一下为什么要这样呢?因为这样两个式子都要

2020-07-10 22:34:35 160

原创 poj 3709 斜率优化

状态定义很简单,然后经过一堆花里胡哨的运算,就可以算出方程f[j]-sum[j]+a[j+1]*j = a[j+1]*i-sum[i]+f[i]设 y(j) = f[j]-sum[j]+a[j+1]*j然后经过一堆花里胡哨的证明就可以发现y(j), i, sum[i]都是单增的,然后就可以找出斜率优化的两个条件之一,更优解比较(y(q[l + 1]) - y(q[l])) <=i * (a[q[l + 1] + 1] - a[q[l] + 1]) (通过解方程:f[i] (从q[l+1]

2020-07-10 21:58:21 177

原创 ch 5e09 区间dp

区间dp模板#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include &l

2020-07-09 19:55:24 139

原创 ch 5e07多重背包

严重感觉二进制和单调队列的耗时差别不大(自我安慰)#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <

2020-07-09 17:12:36 164

原创 poj 1187 表示范围的线性dp

#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include <algor

2020-07-09 16:47:36 125

原创 ch 5e02 线性dp

偷奸耍滑之偷工减料#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include

2020-07-08 21:50:50 118

原创 ch 5e01 线性dp

把ka[tt]++写成ka[tt++],找半天没找到错误#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include &

2020-07-08 21:18:57 121

原创 poj 2104 主席树

自己敲一个模板以后用#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#includ

2020-07-06 11:29:40 99

原创 ch4901 带权并查集

#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include <algor

2020-07-02 23:30:42 168

原创 poj 3233 矩阵快速幂

构造一个左上角是A+A2+A3 …的矩阵,然后去算就可以了#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include

2020-06-28 15:17:28 112

原创 bzoj 2818 欧拉函数

第一种思路,就是对于某个数q,跟他互质的数p,kp和kq的最大公约数是k,那么这个数能组成的答案的数量就是phi[i]乘以某个质数,且乘积小于n基于这种思路写下这个代码#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue&gt

2020-06-25 13:30:33 173

原创 ch 2907宽搜

#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include <algor

2020-06-21 22:04:34 114

原创 ch 2906 宽搜

#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include <algor

2020-06-21 21:41:44 148

原创 poj 3700 二分套dfs

先看第一个tle的思路,就是直接暴力的搜索,但是如果搜索的深度非常大,就会tleint n, a[55], ans;int nn[2][55][55], l[2][55], vis[55];//0为降序,1为升序void dfs(int x, int dir, int now, int sum) { if (now == n) { ans = min(ans, sum); return; } if (sum + 1 >= ans)return; if (l[dir][x] ==

2020-06-21 21:03:50 185

转载 poj 1167 dfs

为什么启发式搜索的题书上说是迭代加深???思路跟大多数题一样,都是先把原问题进行处理,把处理过的数据再抽象成算法问题,因为原问题不好直接深搜,所以要先处理注意启发式剪枝的>=ans就剪枝,而不是>才剪枝注意题目上说了可以有多条线路的时间是一样的(两条线路间隔都是5)#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <c

2020-06-21 13:24:12 118

转载 ch 2901

#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include <algor

2020-06-20 15:22:24 183

转载 ch 1812 链表加优先队列

思路:先把数据分成最长的连续小块,满足每个小块里面要么只有负数,要么只有整数,那么最大的ans就是每个正数小块的和。但是题目上规定了小块的数量,所以你需要将某些小块合成成一个小块,怎么合成呢?就是每次把负数小块里面值最大的找到,然后把它和它左右两个正数小块合成,这样两个整数小块就变成了一个小块(中间有一个负数)。这个我没做出来,抄的书上的代码代码#include <cstdio>#include <iostream>#include <iomanip>#i

2020-06-17 14:45:13 159

原创 poj 1442 优先队列

求长度为ui的区间的第i小的数,区间长度是递增的为啥是priority_queue <int, vector, greater>呢,因为priority_queue<Type, Container, Functional>,要想指定仿函数,必须先指定容器,所以就这样写了#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include

2020-06-17 12:38:24 134

原创 ch 1809 kmp中f数组的应用

思路:搞了一天了,好累啊。就是kmp里面f[i]数组表示的是 :a串以i为结尾的字串,与b串的前缀的最大匹配长度。所以对于题上说的某些前缀,你不用管是那个前缀,你只需要知道前缀的匹配长度就行了啊,所以for (int i = 1; i <= n; i++) cnt[f[i]]++;不过有可能f[i]既可以匹配5位字符,又可以匹配3位字符,那么你就应该都算上去啊,所以cnt[i]数组应该保存的是匹配长度大于等于i的有多少种情况,但是你刚刚少算了一些情况的嘛,所以for (int i = n; i.

2020-06-16 23:27:39 355

原创 ch 1807 最小表示法模板题

没啥好说的#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include <map>#include &lt

2020-06-16 22:06:21 169

原创 poj 1635 树的同构

思路:因为题目要求的是O(n2)的算法,而且是树不是图,所以思路比较随意,先找每个节点的爸爸,然后记录每个节点有多少个子孙(包括儿子的儿子),然后只有排序之后每个都一样,那树就同构,如果题目要求O(n)的话,就不能找爸爸,直接找儿子,然后深搜。你还是看代码吧,我感觉我说的不清楚#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cs

2020-06-16 21:35:54 102

原创 关于第二章的习题

应该直接看答案的题:双栈排序内存分配其他都是可以自己做的,书上基本上都能找到参考还有一件事,写单调栈个单调队列的时候最好自己写,别背模板,我觉得多想一想是能写出来的

2020-06-16 19:16:25 388

原创 poj 2823

题意:你去看图就明白了,单调队列模板题思路:代码:#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include &

2020-06-16 18:42:58 97

原创 ch 1813

Tom最近在研究一个有趣的排序问题。如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序。[IMG]http://www.tyvj.cn:8080/ProblemImg/1121-1.gif[/IMG]操作a如果输入序列不为空,将第一个元素压入栈S1操作b如果栈S1不为空,将S1栈顶元素弹出至输出序列操作c如果输入序列不为空,将第一个元素压入栈S2操作d如果栈S2不为空,将S2栈顶元素弹出至输出序列[IMG]http://www.tyvj.cn:8080/Pr

2020-06-16 18:00:49 116

原创 poj 1964

读数据2小时,解题五分钟思路:把每一排都当成一个柱状图最大面积的问题,柱体的高度就是它头上最近的R的位置。(用h[i]表示高度的话赢应该这样写if (mp[i][j] == ‘F’) h[j]++;else h[j] = 0;我相信你看懂了吧)如果你想通了上一句话,那么你就用柱状图最大面积的问题的单调栈思路去求解,很简单的。我感觉我做题做多了,表达能力都不行了,说不出来,直接看代码把(读数据的时候一定要用while读,不然会出问题)#include <cstdio>#incl

2020-06-16 16:55:54 144

原创 CH1801

括号画家Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号()、中括号[]和大括号{},总长度为N。这排随意绘制的括号序列显得杂乱无章,于是Candela定义了什么样的括号序列是美观的:(1) 空的括号序列是美观的;(2) 若括号序列A是美观的,则括号序列(A)、[A]、{A}也是美观的;(3) 若括号序列A、B都是美观的,则括号序列AB也是美观的;例如 (){} 是美观的括号序列,而 )({)[}]( 则不是。现在

2020-06-16 11:28:36 461

原创 题做完了就是爽,练一下字

2020-06-13 19:57:07 112

原创 poj 1038 三进制状态压缩dp

跟1185思路一样,不过内存限制比较严格,需要用滚动数组#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#include <set>#include <vector>#include &

2020-06-12 13:14:17 172

原创 cf edu 89 d 求一个数的因子和与自己互质

题意:输入n(1≤n≤5*105) ,在输入n个数,问你对于ai(2≤ai≤107) ,是否存在ai的两个因数d1>1 and d2>1,且gcd(d1+d2,ai)=1。有就输出d1,d2,没有就输出-1.input102 3 4 5 6 7 8 9 10 24output-1 -1 -1 -1 3 -1 -1 -1 2 2-1 -1 -1 -1 2 -1 -1 -1 5 3(输出数据的每一列表示一个ai的答案,比如第5列,表示a5–即6的答案)思路:对于每一个ai,先保存

2020-06-12 12:06:12 351

原创 poj 1185 较难的状压dp

```cpp#include #include #include #include #include #include #include #include #include #include #include #include #include #define INF 0x3f3f3f3f#define IMAX 2147483646#define LINF 0x3f3f3f3f3f3f3f3f#define ll long long#define ull unsigne

2020-06-11 17:55:30 187

空空如也

空空如也

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

TA关注的人

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