CF568E Longest Increasing Subsequence
先留个坑,输出方案的地方还得再想想 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<stack>
#include<queue>
using namespace std;
typedef long long ll;
const int maxn = 100010;
const int INF = 1e9+7;
int n,m,len,cnt;
[98]验证二叉搜索树&[105]从前序与中序遍历序列构造二叉树
扯闲话时间。。。很长一段时间没有刷题了,因为工作做得一团糟,惨遭领导怒批,心理压力大得一批导致工作时间特别长又没产出,所以刷题就搁置了。。。 (小声BB)其实感觉领导有点刀子嘴豆腐心,一面说着“公司没义务从零培养新人,我自己也很久不带新人了”,一面又给我讲了好多基础知识。。。 好了,言归正传,今天分享两道题,同类型的,力扣(leetcode中国)给的标签都是深度优先搜索,但是我都没想出来怎么用深度优先,所以都采用了递归。 这里提一句,曾经有位前辈和我说实际工作中递归并不常用,因为递归长度过长的
php多进程pcntl学习-僵尸进程 php多进程pcntl学习(一)
上个月写的文章,php多进程pcntl学习(一)现在发现并不完整,因为虽然提到了关闭子进程,但是并没有回收子进程,简单的说就是当子进程比父进程先退出,而父进程没对其做任何处理的时候,子进程将会变成僵尸进程。 <?php $ppid = getmygid(); $pid = pcntl_fork(); if ($pid == -1){ die('fork failed'); }else if($pid == 0){ $mypid = getmygid(); echo 'I am child p
Contest1692 - 2019寒假集训第三十一场 UPC 11075 Problem D 小P的国际象棋
非常简单的单点修改+区间加+区间查询。我用的是最近刚学的区间修改版本树状数组。 直接维护即可,注意修改后的单点值已经不是a[i],或者b[i],要通过区间查询求单点。不然是错的。 区间修改版本树状数组: #include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
#define LL long long
using namespace std;
LL c_p[400005];
LL sum
笔试面试目前遇到常见的问题:tip/ip的建立过程
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTAB
Git学习笔记2,GitHub常用命令
廖雪峰Git教程 莫烦Git教程 莫烦Git视频教程 文件三个状态,add之后从工作区(原始状态)到暂存区,commit之后从暂存区到版本库 工作区 暂存区 版本库 unstage stage master 删除文件 > git rm test.txt
> git commit -m "remove test.txt" 修改或添加文件 > git add test.txt
> git commit -m "add test.txt" reset 所有文件 恢复到指定版本 > git reflo
SCUT - 290 - PARCO的因数游戏 - 博弈论
https://scut.online/p/290 一个 N 个数的取数游戏,Kaildls 和 Parco 轮流操作,每次操作从 N 个数中取一个数 y 并把他变成 y-x(满足 x | y 且x < y),无法操作的人输。 假设 Kaildls 先手且两人都是用最优策略,请问最后谁会赢? 第一次学SG函数,要找的是每次能从石子堆中取走的数目,记录下来。 最后的Nim和为0是后手赢? #include<bits/stdc++.h>
using namespace std;
#define l
P2597 [ZJOI2012]灾难 拓扑排序
这个题有点意思,正常写法肯定会T,然后需要优化。先用拓扑排序重构一遍树,然后进行一个非常神奇的操作:把每个点放在他的食物的lca上,然后计算的时候直接dfs全加上就行了。为什么呢,因为假如你的食物的lca死了,你就很自然的死了。这个题还要加一个超级源点,一开始我没加只拿了20分。但是不知道为什么,后来想到有可能一个兄弟能吃两个生产者,在查询lca的时候会跪。。。剩下就没啥了,顺便练一下倍增求lca。 题干: 题目描述
阿米巴是小强的好朋友。
阿米巴和小强在草原上捉蚂蚱。小强突然想,
线段树区间修改版本模板
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int sum1[1000];
int sum2[1000];
int a[1000];
int n,m;
int lowbit(int x){
return x&(-x);
}
void update(int x,int w){//更新效果:把x位置后面所有的数的值+w
[HNOI2015]开店 树链剖分,主席树
[HNOI2015]开店 LG传送门 蒟蒻表示不会动态淀粉质。 先把点按年龄排序, 设\(dis[i]\)表示\(i\)到根的距离。 把我们要算的东西稍微变下形:\(ans\) \[ = \sum \limits _{i = l} ^r (dis[i] + dis[u] - 2 * dis[lca(i, u)]\] \[ = \sum \limits _{i = l} ^r dis[i] + (r - l + 1) * dis[u] - 2 * \sum \limits _{i = l} ^r
Codeforces 715B. Complete The Graph 最短路,Dijkstra,构造
原文链接https://www.cnblogs.com/zhouzhendong/p/CF715B.html 题解 接下来说的“边”都指代“边权未知的边”。 将所有边都设为 L+1,如果dis(S,T) < L ,那么必然无解。 将所有边都设为 1 ,如果 dis(S,T) > L ,那么必然无解。 考虑将任意一条边的权值+1,则 dis(S,T) 会 +0 或者 +1 。 如果将所有边按照某一个顺序不断+1,直到所有边的权值都是L+1了,那么在这个过程中,dis(S,T) 是递增的,而且一定
爬虫----初级概念的架构
每次遇到爬虫,总会听到python,php等等词,其实什么语言无所谓,只要会用就行了。当然,有些人听到爬虫,就会觉得很高级,还在写网站的时候就在想反扒技术什么的,搞得爬虫变成了一个神秘莫测的东西。然而,我想告诉你的是爬虫真的很简单,几分钟搞定它的基本架构,下面请跟我来。 首先,爬虫要做的事情是将获取网页信息,并且将信息保存在一个地方等待被调用。因此爬虫的架构宏观上就有三部分: 网页---》爬虫处理---》保存; 只要将这三个部分处理好了,爬虫也就会了。(基于python语言) 然而,从网页上获
周排行