自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cmake总结

cmake总结

2022-08-10 11:31:12 160 1

原创 make和cmake命令

make和cmake命令。

2022-08-10 11:03:09 429

原创 深度学习资料

深度学习资料

2022-01-05 17:45:45 613

原创 git合并多个commit

git合并多个commit

2021-12-30 16:21:01 140

原创 git rebase origin/develop

1. 进行git rebase origin/develop之前需要进行<git add .> <git commit>操作先将修改给提交到暂存区2. 执行git rebase origin/develop时候有冲突的话需要自己针对代码去修改冲突(注意此时本地工作区处于另外一个分支),冲突处理完之后要执行git rebase --continue操作,...

2021-12-30 16:18:06 1407

原创 git fetch -a

1. git fetch -a是为了将远端最新的更新拉取到本地代码仓库,因为git是分布式的,我们做的git所有操作都是在自己本地,因此在rebase之前本地需要知道远端最新的一批更新2. 在本地某一个开发分支上进行git fetch -a操作时,本地的其他开发分支都会感受到远端主分支的最新更新,当切换分支的时候就不需要再进行git fetch -a操作,可以直接进行git rebase origin/develop...

2021-12-30 15:58:42 783

原创 时间局部性和空间局部性

1、时间局部性,一个具有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不远的将来再被多次引用2、空间局部性,一个具有良好空间局部性的程序中,如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置例如编程中,`循环中多次引用一个变量就是时间局部性体现;遍历一个顺序存放的数组就是空间局部性的体现。...

2021-11-02 10:46:45 726

原创 linux生成可执行文件的命令

linux生成带调试的可执行文件命令行:g++ -g main.cpp -o main(其中main文件是可执行文件(二进制文件)),该命令也可以写为:g++ main.cpp -g -o main

2021-07-09 11:27:59 895

原创 在 C/C++ 中static的作用

在 C/C++ 中static的作用

2021-03-25 21:20:32 71

原创 AC自动机模板

#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;int trie[maxn][27];int cntword[maxn],tot,cnt;int n;int fail[maxn];void Insert(string s){ int len=s.size(); int root=0; for(int i=0;i<len;i++){ int x=s[i]-

2021-03-10 13:13:28 39

原创 快排C++代码

#include <bits/stdc++.h>using namespace std;const int maxn=1e5+10;int a[maxn],n;void quicksort(int L,int R,int a[maxn]){ if(L>=R){ return; } int i=L,j=R,base,tmp;//选最左边的数作为基准数就从右边开始比较,反之亦然 base=a[L]; while(i<j){

2021-02-22 12:18:43 42

原创 TCP为什么采用三次握手而不是两次握手

希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请

2021-02-20 13:50:04 143 1

原创 数据库知识总结(一):数据库概念理论简介

(1)数据项,字段,属性一般指表中一列,记录指代表中一行(2)数据库:数据库就是相互之间有关联关系的table的集合(3)数据库系统:数据库+数据库管理系统+数据库应用+数据库管理员+计算机基本系统(4)SQL=DDL+DML+DCL(使用者通过数据库语言利用DBMS操作数据库)(5)数据库语言与高级语言:一条数据库语言语句相当于高级语言的一个或多个循环语句(6)数据库语言可以嵌入到高级语言中(嵌入式数据库语言)(7)数据库管理系统是系统软件(8)mysql就是DBMS(9)DBMS后台运行

2021-02-07 22:39:44 130

原创 操作系统内存管理总结

物理地址:总线地址逻辑地址:在CPU运行的进程看到的地址编译:将高级语言转换为汇编源代码(确定逻辑地址与物理地址的映射关系)汇编:将汇编源代码变成二进制代码(机器代码)链接:把多个模块和你用到的函数库搁在一起排成一个线性的序列重定位:让程序的存储位置正确MMU:进行逻辑地址和物理地址的转换连续内存分配:给进程分配一块不小于指定大小的连续的物理内存区域内存碎片:空闲内存不能被利用的碎片物理地址=装入基址+逻辑地址空闲区表:描述内存空闲区的位置和大小的数据结构覆盖技术目的:在较小的内存空间

2021-01-26 12:37:35 160

原创 牛客网 沙漠点列(点双联通分量)

点双题解:先去掉割边,然后再去掉环中的边,有多个环的情况下先去大环的边(贪心),同时注意,求点双联通分量的时候,可能有一个点属于两个环,所以在点出栈的时候最后一个,先别弹出去。#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=2e6+10;int n,m,k;vector<int> G[maxn],V[maxn];int dfn[maxn],low[maxn],

2020-12-11 10:06:02 74

原创 libreoj #10121(二分+ST表)

libreoj10121题解:首先我们定义一个数组f[i]表示以第i个元素为结尾的最大完美序列的长度的开始位置,这个数组可以dp出来,然后发现f数组是单调递增的,我们每次查询时先二分确定左端点,再预处理出来i-f[i]的st表即可A掉此题。#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=2e5+10;int a[maxn],f[maxn],pre[maxn],st[maxn]

2020-12-08 16:38:10 104

原创 libreoj10128(线段树维护区间开方)

libreoj10128题解:暴力修改,当递归到区间最大值<=1时,就return;#include<bits/stdc++.h>using namespace std;typedef long long LL;const LL maxn=1e5+10;LL a[maxn],tree[maxn<<2],mx[maxn<<2];LL n,m;void build(LL l,LL r,LL rt){ if(l==r){ //scanf("%lld

2020-12-08 11:02:53 68

原创 Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!

D题题解:一开始没有太理解题意,我们可以这样想,我们可以先从1开始染色,因为你从2开始然仍然不影响1来染色,我们考虑到当两个相邻的结点都要染相同的颜色的时候就输出-1,当一个节点的所有相邻的节点没有出现的颜色的最小值不等于该节点的值也输出-1#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=5e5+10;vector<vector<int> > G;i

2020-11-30 19:27:05 55

原创 2020ccpc河南省赛2695: 旅游胜地

#include <bits/stdc++.h>//gplt2020-haut-8522d9using namespace std;typedef long long LL;const LL maxn=4e5+10;const LL inf=1e17;LL n,m;LL a[maxn],b[maxn];vector<LL> G[maxn];struct node{ LL u,v;}p[maxn];LL vis[maxn];LL ko;LL dfn[ma

2020-11-30 18:58:49 369

原创 UVALive 4108(维护区间内以h为最高长度的左右区间范围长度)

UVALive 4108#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=1e5+10;struct node{ int mx,col;}tree[maxn<<2];int n;int ans=0;void pushdown(int rt){ if(tree[rt].col>=tree[rt<<1].col){ tree[rt&l

2020-08-16 21:26:08 112

原创 The Chocolate Spree CodeForces - 633F(树形dp求树中两条不相交路径上点权和最大值)

CF 633F#pragma GCC optimize(3, "Ofast", "inline")#include<bits/stdc++.h>using namespace std;typedef long long LL;const LL mod=998244353;const int maxn=1e5+10;LL w[maxn];vector<int> G[maxn];int n;LL f[maxn][2];LL g[maxn],h[maxn],down[

2020-08-12 22:20:15 362

原创 2020杭电多校七(Game)

hdu6850题解:从外层依次删去最远的点对,最后删到只剩余一个点的时候判断该点是否第一个点,是的话就必败,否则就必胜,因为如果先手一开始处于最远点对上的点的时候,那么每次先手均可在本层走走远点对距离,那么后手要想走就必须走更远的距离,那么后手就只能向上一层走,但是当后手向上走的时候他一定会位于最远的点对上的点,此时主动权又在先手的手里#include<bits/stdc++.h>using namespace std;typedef long long LL;const LL mod

2020-08-12 16:28:00 134

原创 Sum HDU - 4407(查询时用容斥)

hdu4407题解:如果我们暴力去针对每一次查询就会超时,又发现题目中的修改最多不过1000次,所以我们在查询一段区间的时候可以先求出x到y这一段连续区间的等差数列的和,然后减去该区间和p互素的数的和(该部分值我们可以用先把p的素因子找出来然后在x到y区间容斥一下)#include<bits/stdc++.h>using namespace std;typedef long long LL;const LL mod=1e9+7;const LL maxn=4e5+10;LL pri

2020-08-05 21:40:52 71

原创 Square-free integers SPOJ - SQFREE(求小于n的且没平方因子数的个数(n可到1e14))

Square-free integers SPOJ - SQFREE普通题解分块优化版(针对于n/(i*i)的分块)(i连续)#include<bits/stdc++.h>using namespace std;typedef long long LL;const LL mod=1e9+7;const LL maxn=1e7+10;LL prime[maxn],tot,vis[maxn];LL mu[maxn];LL n;void init(){ tot=0;

2020-08-05 16:59:17 148

原创 C - Mophues HDU - 4746(莫比乌斯反演+分块)

hdu4746题解#include <bits/stdc++.h>using namespace std;typedef long long LL;const LL maxn=5e5+10;LL c[maxn][20];LL prime[maxn],vis[maxn],tot,mu[maxn],sum[maxn];LL cnt[maxn];LL n,m,p;void init(){ tot=0; vis[1]=1; mu[1]=1; for(

2020-08-02 21:51:28 113

原创 C. Feast Coins(背包求方案数)

ICPC Arab Collegiate Programming Contest 2014 C题题解:转化为因子考虑,因为每一种选取相同的个数#include <bits/stdc++.h>using namespace std;typedef long long LL;const LL maxn=5005+10;const LL maxm=55;const LL mod=1e9+7;LL S,N;LL V[maxn],C[maxn];LL f[maxm][maxn];in

2020-08-02 16:30:22 139

原创 2366 砍树(树形dp)

51nod 2366题解:我们定义dp[i][0]表示以i为根节点的子树白色点比黑色点最多的个数(可能会出现负数,具体实现看代码,dp[i][1]同理)#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=1e5+10;vector<int> G[maxn];int c[maxn];int n;int dp[maxn][2];int res;void dfs(

2020-07-28 21:53:39 165

原创 KiKi‘s K-Number HDU - 2852(树状数组+二分在整个数组里查找比x大的第k个数)

hdu2852题解:我们的c[i]维护的是值为i的个数,每次我们查询值小于i的数的个数我们可以借用树状数组里查询前缀和的思想进行query(i)便可,之后我们就可以在树状数组上进行二分。#include<bits/stdc++.h>//emuB167202003070038using namespace std;typedef long long LL;const int maxn=1e5+10;int c[maxn];int sum;void init(){ for(

2020-07-22 23:51:59 143

原创 51nod (1398 等公交)求期望

51nod 1398题解:我们开一个数组dp[i]表示第i时刻有车出发的概率为多少,我们可以先将数组求到dp[s],然后我们用i小于s时刻的dp[i]去求下一次时间大于s时有车出发的概率即可,然后将其概率乘上一个时间差(i+t[j]-s),具体实现见代码#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=2e5+10;double dp[maxn];//dp[i]表示在第i时刻有

2020-07-21 10:13:36 94

原创 51nod (2534,dp)

51nod 2534题解:本题我们定义dp[i][0]表示两个人当前都走过前i个点并且最后一个点第一个人走两个i中的其中一个位置的总和最小值,dp[i][1]类似。具体实现看代码#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=2e5+10;const LL mod=998244353;const LL inf=0x3f3f3f3f;LL dp[maxn][2];int

2020-07-19 10:45:52 105

原创 51nod 3061 (最大生成树+树上倍增求树上任意两点路径的边权最小值)

51nod3061题解:本题我们会发现如果询问的两点能够相互到达的时候,答案一定诞生在最大生成树的边上,为何?因为如果我们的答案不在最大生成树的边上,我们一定就可以取最大生成树上的边来构造更优的解,接下来就是树上倍增求两点之间的边权最小值,(其实和求两点的LCA是一个套路)具体实现见代码#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=1e4+10;const int inf=

2020-07-12 23:41:53 534

原创 The 2019 ICPC China Nanchang National (G题)

G题题解:建图+tarjan(有向图)#include<bits/stdc++.h>#define LL long longusing namespace std;const LL maxn=2e5+10;vector<int> G[maxn];struct node{ int id; int x;}col[maxn][4];int n,q;int dfn[maxn],low[maxn],cnt;stack<int> st;int

2020-07-10 22:05:02 88

原创 CodeForces - 600E(树上启发式合并)

CF600E题解:维护两个map,见代码#include<bits/stdc++.h>using namespace std; typedef long long LL;const LL maxn=1e5+10;int n;LL c[maxn];map<int,int> cnt[maxn];//cnt[x][i]=ko表示x节点子树颜色为i出现ko次 map<int,LL> sum[maxn];//sum[x][i]=ko表示x节点子树颜色出现次数为i次

2020-07-08 23:40:27 149

原创 The 2019 ACM-ICPC China Shannxi Provincial Programming Contest( J. And And And)

J题题解:该题有好多种做法,我的比较low,因为正向的去推是不可行的,我们可以反向考虑每一条边权异或值为0的路径所产生的贡献,我们先把整棵树的根节点固定为1,然后我们可以考虑将满足条件的路径再细分为两类:一类是该条路径的LCA不是它们中的一个,另一类是该条路径的LCA是它们中的其中一个,(之所以这样分类,是因为便于我们进行dfs统计贡献),对于第一类路径我们可以在dfs所有子树之后再将mp[pre]+=siz[u],这样可以按照dfs的便利顺序做到不重不漏的统计所有情况,对于第二种情况我们可以枚举深度较深

2020-07-07 23:21:26 169

原创 poj3764(树上边权异或+转化为字典树上找两个值使其异或和最大)

poj3764题解:先预处理每个节点到根节点的边权异或和,然后将这些值丢进字典树里,最后转化为找两个数使其异或值最大。数组开到3e5,而且要链式存图,否则会有各种WA和TLE#include <iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<string>#include<vector&g

2020-07-07 12:25:01 320

原创 异或的路径(牛客网)

异或路径+位运算+考虑贡献题解:我们要求所有点对构成的所有路径的异或权值总和,肯定不能暴力,我们可以知道,先搞一个数组d[i]表示i节点到根节点1的路径上边权异或和,所以对于一个点对(u,v),我们知道u,v之间的边权异或和=d[u]^d[v]因为它们公共的部分为0了,就无影响,然后我们再考虑如何统计所有路径的总和,我们考虑枚举一个点v,我们可以对d[v]的每一位二进制位考虑,如果d[v]的某一位为0,我们就看有多少其它节点,其该对应位上为1,如果d[v]的某一位为1,也类似,因此我们还需要定义一个数组

2020-07-07 10:22:29 227 2

原创 hdu5416(求树上有多少对点对使其路径上的结点的异或值为查询值S)

HDU5416题解:我们先预处理每个节点i到根节点1的路径上异或值d[i],然后我们发现两个节点i,j的路径上边权的异或值为d[i]^d[j],因为他们俩距离根节点重复的部分可以异或成0#include <bits/stdc++.h>using namespace std;typedef long long LL;const LL mod=1e9+7;const LL maxn=1e6+10;LL n,q;struct node{ LL to; LL w;};

2020-07-07 00:12:22 149

原创 HDU - 1796(容斥原理+特殊情况0)

hdu1796题解:在dfs之前不要刻意删去一些数(这些数是其它数的倍数),注意0,在输入的时候就删去它.#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=2e5+10;LL n;int m;LL a[25],b[25];int cnt;LL ans=0;void dfs(int pos,LL flag,LL t,int f){ if(t>n)retu

2020-07-06 12:17:07 131

原创 P2567(容斥原理+递归写法(类似于背包的递归写法))

P2567题解:先把幸运数全部筛出来,然后再把有些数是其他数的倍数的那些数再筛出来,接下来我们就可以容斥了,递归的时候从大的数先搞,因为这样我们对于一些超过R的数就可以尽快的跳出来,递归写法类似于背包问题的写法,每次我们对于当前的数可以有两种选择(取或 不取)#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=3e3+10;LL L,R;LL a[maxn],b[maxn];

2020-07-05 17:38:23 227

原创 The 2019 ICPC Asia Shanghai Regional Contest(重现赛)H题

题解:二分+贪心+树形dp+vector<>回溯时排序(时间复杂度不会爆)#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=1e5+10;LL dp[maxn][2];LL n,k;vector<LL> G[maxn];LL w[maxn];struct node{ LL p1,p2;

2020-07-02 10:55:47 111

空空如也

空空如也

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

TA关注的人

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