![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
那页
这个作者很懒,什么都没留下…
展开
-
HTTP各版本
Http2.0 与 Http1.1的区别1,http2.0 使用io多路复用,解决了http1.1TCP连接数达到上限的问题,http2.0 凭借io多路复用允许多个请求-相应在一个同域名下的TCP链接中进行。同时,单链接也减少了慢启动带来的低速。2,http2.0 在应用层与传输层之间加了一个二进制分帧层。将一个http1.1的包转化成更小的二进制格式的帧。header frame & data frame。3,首部压缩:HPACK算法。4,服务端推送(server push):服务器可以原创 2022-01-24 14:39:52 · 1503 阅读 · 0 评论 -
TCP实现方案
TCPreceiver这个部分建立在stream reassembler之上,为stream reassembler提供起始地址,字符串与结束标志。从TCPsender接受TCPsegment。这里我们只关注TCPsegment中的几个字段。TCPreceiver:我们主要关注seqno,syn,fin,payload。(定位,标记,数据)TCPsender: ackno,win_size(用于控制发送方的发送范围)具体实现segment_received(const TCPSegmen.原创 2022-01-12 19:35:21 · 1211 阅读 · 0 评论 -
os 学习摘记
关于隔离性进程:cpu的抽象,强制应用的时分复用,用户/内核模式。页表:内存隔离,进程提交自己的页表,由虚拟地址指向物理内存地址。文件:磁盘隔离。原创 2021-11-25 20:52:37 · 299 阅读 · 0 评论 -
系统调用与中断(个人思考与整理)
以下在单核CPU的情况为标准目态与管态计算机cpu运行状态有两种:管态与目态(用户态)。用户态只能运行用户程序,管态能够运行系统程序。管态是与目态不同的cpu运行状态,在单核cpu的情况下,cpu需要不断的切换状态。系统调用操作系统为我们提供了一种方便用户程序访问内核的途径,即系统调用,即从目态转向管态。系统调用的一般情况一般来说,我们需要使用系统调用的情况基本与操作系统硬件有关,比如系统i/o等。这些操作在系统认为是危险操作,即用户无权进行直接与硬件的控制,只允许请求操作系统调用指令。用户原创 2021-09-28 19:55:04 · 1495 阅读 · 2 评论 -
2021牛客暑期多校训练营8-D-OR
为什么人均都会只有我卡一下午????????这道题应该先处理出两个序列,一个是a[j],ap[j-1]的与序列,一个是或序列,然后枚举每一位是否可以为0或1,累乘入答案即可。注意当与和或都为1时,确定这意味必须是1,与和或都为0时,必为0。#include <bits/stdc++.h>using namespace std;#define int long longconst int N = 1e6 + 10;const int mod = 1e9+7;int a[N];int原创 2021-08-09 19:09:22 · 90 阅读 · 0 评论 -
cf1504-Balance the Bits
cf的构造题果然不会让人失望虽然我写不出来,但是这道题仍然很有意思。题意构造两个合法的括号序列,使得这两个括号序列第 ii 个字符相同当且仅当 ai=1a_i =1ai=1。看到题意之后果断进行一个模拟,发现了若a1=0∣∣an=0∣∣n&1∣∣zero&1a_1=0 || a_n= 0 || n \&1||zero\&1a1=0∣∣an=0∣∣n&1∣∣zero&1,那么必定无解。然后就开始瞎写了我们仍然需要一个合理且有条理的思路。比较容易原创 2021-08-06 16:40:29 · 83 阅读 · 0 评论 -
Rise in Price - hdu6981
首先容易想到的是每一格都是由上或左转移而来,并且经过格子必将钻石取完。dp的话空间不够,所以思考其他方法。由于每格转移到本格都是增加本格的数量和价值,所以我们只需要考虑到本格之前的最佳状态即可。因为状态由两部分组成-价值和数量,价值乘数量大的肯定优。所以我们存下所有可能的状态,从其中挑选最优的一些解转移。所有的状态有C2nnC_{2n}^nC2nn个,经过优化只有几千个状态有可能~~(出题人说的,我还是没法严谨的推出来结果)~~ 。#include "bits/stdc++.h"#define i原创 2021-07-28 17:58:24 · 193 阅读 · 0 评论 -
B. Plus and Multiply 构造分析
说实话,如果不靠猜,这题需要想很久,但是因为复杂度关系,总是会忘a的幂次上想,就能蒙对。下面看一下我怎么理清这题关系的。首先,题目告诉我们一个数是由1而来的。同时有一个乘数mul,一个加数add。我们首先瞎写一个式子。比如((mul*(1+add)+add)*mul +add)*mul看起来很复杂,我们对其进行化简。mul*mul*mul + mul*mul*mul*add + add*mul*mul + add*mul答案就在上面这个式子里。我们可以看到无论是怎样复杂的式子,由于任何数都是来自原创 2021-07-14 20:39:59 · 458 阅读 · 1 评论 -
1543C Need for Pink Slips
题目详情: 传送门看懂题意之后很明显可以暴搜,模拟一下行为即可,每次记录下选中当前操作组合的概率和步数,每次累加即可。而这题就有意思在精度上,第一次算出来不对我改用了long double (不知道有没有必要) ,发现第三组样例答案还差那么点。看了半天改了一下浮点判0的表达就过了。就是大家上c语言课或者学习c语言时学的判断两个浮点数是否相同,应该使用abs(a-b)< eps的形式。这题我们的误差值eps在1e-6以上应该均可。#include "bits/stdc++.h"using原创 2021-07-08 08:38:18 · 239 阅读 · 2 评论 -
珂朵莉的数列 - 逆序对
题目描述珂朵莉给了你一个序列,有(n*(n+1))/2个子区间,求出她们各自的逆序对个数,然后加起来输出。对于每个区间,其贡献为(n-i+1)*SUM.SUM = 前面插入arr[k]值大于当前值的下标k的和因为对一个区间来说其贡献为(n-i+1)*l,一个是右界,一个是左界,而左界的和即为上面的SUM。//// Created by SANZONG on 2021/7/7.//#include "bits/stdc++.h"using namespace std;const int原创 2021-07-07 09:35:33 · 78 阅读 · 0 评论 -
P3901 数列找不同 - 莫队入门
初学莫队,个人总结出以下要点:1,首先莫队凭借移动左右标记来优化,我们要使这个移动次数尽量少。2,分块,凭借分块或其他优化方法来排序,使得的到一个区间顺序使得标记移动次数尽量少。#include "bits/stdc++.h"using namespace std;const int maxn = 1e5 + 10;int a[maxn];int h[maxn];struct node { int l, r,id;} line[maxn];int sqn;bool cmp(原创 2021-07-05 18:55:05 · 123 阅读 · 0 评论 -
Junit - Parameterized的最基本使用
使用junit运行批量测试的模板@RunWith(Parameterized.class)public class RegisterTest { @Parameterized.Parameters public static Collection<Object[]> data() { return Arrays.asList( (Object[][]) CsvReaders.readRegister() ); } private S原创 2021-06-30 18:46:05 · 300 阅读 · 0 评论 -
软件建模与设计(复习资料仅针对个人复习)
一,类建模1,多重性2,关联端名3,自关联类与自身关联,关联两端不同角色public class Person{ public Person[] parent; public Person[] child;}4,关联类关联关系之间衍生出的类。多对多必须使用。5,限定关联加一个限定符降低多重性。bank+accountnumber ----- account6,泛化(is-a-kind-of)和继承任何父类都可以被子类直接替换(正方形与矩形)二,类建模高级1,原创 2021-06-20 14:59:42 · 721 阅读 · 1 评论 -
小白月赛第四场题解 (除大模拟)
因为这场比较简单,所以水一波博客,解题思路也一笔带过吧。A 三角形因为如果全部不满足组成三角形的话序列肯定不长,因为每次都是除以2的递减才能满足,所以找周长复杂度差不多logn#include<bits/stdc++.h>using namespace std;#define int long longconst int maxn = 1e5 + 10;struct node{ int id; int val;}num[maxn];;bool cmp(no原创 2021-05-09 17:04:53 · 88 阅读 · 0 评论 -
标枪游戏
又是脑子短路的一天,用各种平衡树冲了半天结果发生蜜汁段错误。传送门正解其实是树状数组,速度还是比较快的。但是翻到别人的题解发现有一种解法很有意思二分+stl。解释一下二分,我们每次找的其实不过就是当前数再取过得数里排第几,那么很容易想到二分,但是二分要满足有序,然而要维护在线的有序,如果用sort那么要1e5遍必然是不行的,然后就有了vector的insert操作:在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器。配合二分logn完美实现在线的有序。这个解法令我大受震撼。#incl原创 2021-05-03 22:31:05 · 204 阅读 · 0 评论 -
Codeforces Global Round 14 - Phoenix and Towers
打的稀碎的一场比赛。c题硬是把解法的复杂度算错成了1e51e5log1e5,到最后也没写正解,结果掉了100分。这题的正解就是一个贪心,因为题目有限制每一块加入的高度必定小于最大差异,所以很明显就是在m个位置上找最小的加上去。至于实现方法应该是优先队列,复杂度是1e5log1e5。#include <bits/stdc++.h>using namespace std;#define int long longint tow[110000];typedef struct node{原创 2021-05-03 11:20:09 · 113 阅读 · 0 评论 -
Good Article Good sentence
只能说又学到了一个道理。。一个状态的本质不同子串数目等于len[k] - len[fa[k]],同理len[k] - mxlen就能得出除去lcs后的数量,至于剩下的,求一下lcs然后就是SAM基操了。(不过这里要注意,与求lcs有点不同的是,我们需要每个串匹配得到的最大子串而不是所有串的公共串)。//// Created by acer on 2021/2/16.////判断子串,不同子串个数,所有子串字典序第i大,最长公共子串#pragma GCC optimize(2)#include原创 2021-02-17 21:33:42 · 87 阅读 · 0 评论 -
2020ICPC济南站打铁回忆录
这次的打铁是继省赛一来最痛苦的一次,这中间的比赛(除了ccpc威海)我们离铜都几乎是一题之差包括这次。总的来说以总结和反思为主:1, 不够自信,队友没有屡清思路而自己已经有完整的想法时完全可以自己上,因为队友有时候会听不懂或者理解偏差。而且自己在写题时队友还可以思考别的题目。2, 像j题这样的,提供思路应该点到为止,因为我连自己都不清楚自己的思路到哪里为止是完全对的,应该给队友更多思考的空间。否则肯定会浪费时间。3, 说到底逃不过一个菜字。这次给队里立了个目标,寒假结束回校要看到每一个人cf1600原创 2020-12-27 22:45:20 · 413 阅读 · 1 评论