#include<bits/stdc++.h>
#define MAXN 100005
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,Q;
struct Node{
int l,r;
long long sum;
}tree[MAXN*];
long long lazy[MAXN*];
void pushdown(int k){
int mid=tree[k].l+tree[k].r>>;
tree[k<<].sum+=lazy[k]*(mid-tree[k].l+);
tree[k<<|].sum+=lazy[k]*(tree[k].r-mid);
lazy[k<<]+=lazy[k],lazy[k<<|]+=lazy[k],lazy[k]=;
}
void build_tree(int k,int l,int r){
tree[k].l=l,tree[k].r=r;
if(l==r){tree[k].sum=read();return ;}
int mid=l+r>>;
build_tree(k<<,l,mid);build_tree(k<<|,mid+,r);
tree[k].sum=tree[k<<].sum+tree[k<<|].sum;
}
void addall(int k,int l,int r,long long x){
if(tree[k].l>=l&&tree[k].r<=r){
tree[k].sum+=x*(tree[k].r-tree[k].l+);lazy[k]+=x;return ;}
if(tree[k].r<l||tree[k].l>r)return ;
pushdown(k);
addall(k<<,l,r,x);addall(k<<|,l,r,x);
tree[k].sum=tree[k<<].sum+tree[k<<|].sum;
}
long long query(int k,int l,int r){
if(tree[k].l>=l&&tree[k].r<=r)return tree[k].sum;
if(tree[k].r<l||tree[k].l>r)return ;
pushdown(k);
return query(k<<,l,r)+query(k<<|,l,r);
}
int main()
{
N=read(),Q=read();
build_tree(,,N);
while(Q--){
int opt=read(),L=read(),R=read();
if(opt==)addall(,L,R,read());
if(opt==)printf("%lld\n",query(,L,R));
}
return ;
}

线段树

#include<bits/stdc++.h>
#define MAXN 100005
#define INF 0x7f7f7f7f
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,M,S,T,last[MAXN],cnt=,ans,depth[MAXN];
struct Edge{
int other,pre,val;
}e[MAXN*];
void connect(int x,int y,int z){
e[++cnt]=(Edge){y,last[x],z};
last[x]=cnt;
}
bool BFS(){
memset(depth,,sizeof depth);
queue <int> q;
depth[S]=;q.push(S);
while(!q.empty()){
int x=q.front();q.pop();
for(int i=last[x];i;i=e[i].pre){
int to=e[i].other;
if(e[i].val&&!depth[to]){
depth[to]=depth[x]+;
if(to==T)return ;
q.push(to);
}
}
}
return ;
}
int dinic(int u,int flow){
if(u==T)return flow;
int rest=flow;
for(int i=last[u];i;i=e[i].pre){
int to=e[i].other;
if(depth[u]+==depth[to]&&e[i].val&&rest){
int tmp=dinic(to,min(rest,e[i].val));
e[i].val-=tmp;
e[i^].val+=tmp;
rest-=tmp;
if(tmp==)depth[to]=;
}
}
return flow-rest;
}
int main()
{
N=read(),M=read(),S=read(),T=read();
for(int i=;i<=M;i++){
int x=read(),y=read(),z=read();
connect(x,y,z);connect(y,x,);
}
while(BFS())ans+=dinic(S,INF);
cout<<ans<<endl;
return ;
}

网络流(dinic)

#include<bits/stdc++.h>
#define MAXN 1005
#define INF 0x7f7f7f7f
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,M,C,cnt,last[MAXN*],ans,vis[MAXN],link[MAXN];
struct Edge{
int other,pre;
}e[MAXN*MAXN];
void connect(int x,int y){
e[++cnt]=(Edge){y,last[x]};
last[x]=cnt;
}
bool DFS(int x){
for(int i=last[x];i;i=e[i].pre){
int to=e[i].other;
if(!vis[to]){
vis[to]=;
if(!link[to]||DFS(link[to])){
link[to]=x;
return ;
}
}
}
return ;
}
int main(){
N=read(),M=read(),C=read();
for(int i=;i<=M;i++){
int x=read(),y=read();
if(x>N||y>M)continue; //sb->
connect(x,y);
}
for(int i=;i<=N;i++){
memset(vis,,sizeof vis);
if(DFS(i))ans++;
}
cout<<ans<<endl;
return ;
}

二分图匹配(匈牙利)

#include<bits/stdc++.h>
#define MAXN 10005
#define MAXM 500005
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,M,S,cnt,last[MAXN],dis[MAXN];
struct Edge{
int other,pre,val;
}e[MAXM*];
void connect(int x,int y,int z){
e[++cnt]=(Edge){y,last[x],z};
last[x]=cnt;
}
struct Node{
int f,id;
bool operator <(const Node x)const{
return f>x.f;
}
};
void Dijkstra(){
priority_queue <Node> q;
memset(dis,0x3f,sizeof dis);
dis[S]=;
q.push((Node){,S});
while(!q.empty()){
Node x=q.top();
q.pop();
for(int i=last[x.id];i;i=e[i].pre){
int to=e[i].other;
if(dis[to]>dis[x.id]+e[i].val){
dis[to]=dis[x.id]+e[i].val;
q.push((Node){dis[to],to});
}
}
} }
int main(){
N=read(),M=read(),S=read();
for(int i=;i<=M;i++){
int x=read(),y=read(),z=read();
connect(x,y,z);
//connect(y,x,z);
}
Dijkstra();
for(int i=;i<=N;i++)printf("%d ",dis[i]);
return ;
}

最短路(dijkstra)

#include<bits/stdc++.h>
#define MAXN 100005
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,Q,st[MAXN][],Log[MAXN];
int main()
{
N=read(),Q=read();
Log[]=-;
for(int i=;i<=N;i++)st[i][]=read(),Log[i]=Log[i>>]+;
for(int j=;j<=;j++)
for(int i=;i+(<<j)-<=N;i++)
st[i][j]=max(st[i][j-],st[i+(<<j-)][j-]);
while(Q--){
int l=read(),r=read(),k=Log[r-l+];
printf("%d\n",max(st[l][k],st[r-(<<k)+][k]));
}
return ;
}

ST表

#include<bits/stdc++.h>
#define MAXN 5005
#define MAXM 200005
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,M,last[MAXN],cnt,tmp,ans;
bool vis[MAXN];
priority_queue <pair<int,int> > q;
struct Edge{
int other,pre,val;
}e[MAXM*];
void connect(int x,int y,int z){
e[++cnt]=(Edge){y,last[x],z};
last[x]=cnt;
}
int main()
{
N=read(),M=read();
for(int i=;i<=M;i++){
int x=read(),y=read(),z=read();
connect(x,y,z);
connect(y,x,z);
}
q.push(make_pair(,));
while(tmp<N&&!q.empty()){
while(vis[q.top().second])q.pop();
int x=q.top().first,y=q.top().second;
q.pop();
vis[y]=,tmp++,ans-=x;
for(int i=last[y];i;i=e[i].pre)
if(!vis[e[i].other])q.push(make_pair(-e[i].val,e[i].other));
}
if(tmp<N)printf("orz\n");
else printf("%d\n",ans);
return ;
}

生成树(Prim)

#include<bits/stdc++.h>
#define MAXN 5005
#define MAXM 200005
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,M,cnt,ans,father[MAXN],tmp;
struct Edge{
int from,to,val;
bool operator <(const Edge x)const{
return val<x.val;
}
}e[MAXM];
int find(int x){return father[x]==x?x:father[x]=find(father[x]);}
int main(){
N=read(),M=read();
for(int i=;i<=M;i++)e[i]=(Edge){read(),read(),read()};
for(int i=;i<=N;i++)father[i]=i;
sort(e+,e+M+);
for(int i=;i<=M;i++){
int fx=find(e[i].from),fy=find(e[i].to);
if(fx!=fy){
father[fx]=fy;
ans+=e[i].val;
tmp++;
}
if(tmp==N-){
printf("%d\n",ans);
return ;
}
}
printf("orz\n");
return ;
}

生成树(Kruscal)

#include<bits/stdc++.h>
#define MAXN 500005
using namespace std;
int read(){
int x=;char c=getchar();
while(c<''||c>'')c=getchar();
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x;
}
int N,Q,root,last[MAXN],cnt,f[MAXN][],depth[MAXN];
struct Edge{
int other,pre;
}e[MAXN*];
void connect(int x,int y){
e[++cnt]=(Edge){y,last[x]};
last[x]=cnt;
}
void DFS(int x){
for(int i=last[x];i;i=e[i].pre){
int to=e[i].other;
if(f[x][]==to)continue;
depth[to]=depth[x]+;
f[to][]=x;
DFS(to);
}
}
int LCA(int x,int y){
if(depth[x]<depth[y])swap(x,y);
int d=depth[x]-depth[y];
for(int i=;i>=;i--)
if(d&(<<i))x=f[x][i];
if(x==y)return x;
for(int i=;i>=;i--)
if(f[x][i]!=f[y][i]){
x=f[x][i];
y=f[y][i];
}
return f[x][];
}
int main()
{
N=read(),Q=read(),root=read();
for(int i=;i<=N-;i++){
int x=read(),y=read();
connect(x,y);
connect(y,x);
}
DFS(root);
for(int j=;j<=;j++)
for(int i=;i<=N;i++)
f[i][j]=f[f[i][j-]][j-];
for(int i=;i<=Q;i++)
printf("%d\n",LCA(read(),read()));
return ;
}

LCA(倍增)

#include<cstdio>
#include<iostream>
#define MAXN 500001
using namespace std;
struct edge{int pre,other;}b[MAXN*];
struct node{int last,p,depth,h,child,top;}a[MAXN];
int cnt,N,M,x,y,l,root;
void connect(int x1,int x2)
{
b[++cnt]=(edge){a[x1].last,x2};
a[x1].last=cnt;
}
void dfs1(int x1)
{
a[x1].depth=a[a[x1].p].depth+;
a[x1].h=;
for(int i=a[x1].last;i;i=b[i].pre)
{
int x2=b[i].other;
if(!a[x2].p&&a[x1].p!=x2)
{
a[x2].p=x1;
dfs1(x2);
a[x1].h+=a[x2].h;
if(a[a[x1].child].h<a[x2].h)a[x1].child=x2;
}
}
}
void dfs2(int x1)
{
if(x1==a[a[x1].p].child)a[x1].top=a[a[x1].p].top;
else a[x1].top=x1;
for(int i=a[x1].last;i;i=b[i].pre)if(a[b[i].other].p==x1)dfs2(b[i].other);
}
int LCA(int x1,int x2)
{
while(a[x1].top!=a[x2].top)
{
if(a[a[x1].top].depth>a[a[x2].top].depth)x1=a[a[x1].top].p;
else x2=a[a[x2].top].p;
}
return a[x1].depth<a[x2].depth?x1:x2;
}
int main()
{
scanf("%d%d%d",&N,&M,&root);
for(int i=;i<=N-;i++)
{
scanf("%d%d",&x,&y);
connect(x,y);
connect(y,x);
}
dfs1(root);
dfs2(root);
// for(int i=1;i<=N;i++)printf("%d ",a[i].top);
while(M--)
{
scanf("%d%d",&x,&y);
printf("%d\n",LCA(x,y));
}
return ;
}

LCA(树剖)

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define MAXN 1000007
using namespace std;
int N,root,tree_size,v;
struct Node{
int key,l,r,p;
}a[MAXN];
void print();
int Search(int,int); //查找值
void InsertNode(int,int); //插入结点
void Treeplant(int,int,int); //树替代
void DeleteNode(int,int); //删除节点
void Inorder(int); //中序遍历
void Leftorder(int); //左序遍历
int getmin(int); //查找最小值
int getmax(int); //查找最大值
int main()
{
scanf("%d",&N);
for(int i=;i<=N;i++)
{
scanf("%d",&v);
InsertNode(,v);
}
Leftorder(root);
system("pause");
return ;
}
int Search(int k,int x)
{
if(x<a[k].key && a[k].l) Search(a[k].l,x);
else if(x>a[k].key && a[k].r) Search(a[k].r,x);
else return k;
}
void InsertNode(int k,int x)
{
if(tree_size==)root=++tree_size,a[root].key=x;
else if(x<=a[k].key){
if(a[k].l)InsertNode(a[k].l,x);
else{
tree_size++;
a[tree_size].key=x;
a[tree_size].p=k;
a[k].l=tree_size;
}
}
else if(x>a[k].key){
if(a[k].r)InsertNode(a[k].r,x);
else{
tree_size++;
a[tree_size].key=x;
a[tree_size].p=k;
a[k].r=tree_size;
}
}
}
void Inorder(int k)
{
printf("%d ",a[k].key);
if(a[k].l)Inorder(a[k].l);
if(a[k].r)Inorder(a[k].r);
}
void Leftorder(int k)
{
if(a[k].l)Leftorder(a[k].l);
printf("%d ",a[k].key);
if(a[k].r)Leftorder(a[k].r);
}
int getmin(int k)
{
if(!a[k].l)return k;
return getmin(a[k].l);
}
int getmax(int k)
{
if(!a[k].r)return k;
return getmax(a[k].r);
}
void Treeplant(int k,int x,int y)
{
if(x==root)root=y;
else if(x==a[a[x].p].l)a[a[x].p].l=y;
else a[a[x].p].r=y;
if(a[y].key)a[y].p=a[x].p;
}
void DeleteNode(int k,int x)
{
if(!a[x].l)Treeplant(k,x,a[x].r);
else if(!a[x].r)Treeplant(k,x,a[x].l);
else{
int y=getmin(a[x].r);
if(a[y].p!=x)
{
Treeplant(,y,a[y].r);
a[y].r=a[x].r,a[a[y].r].p=y;
}
Treeplant(,x,y);
a[y].l=a[x].l,a[a[y].l].p=y;
}
}
void print()
{
printf("这棵树她长这样↓↓\n");
printf("KEY:");for(int i=;i<=N;i++)printf("%d ",a[i].key);printf("\n");
printf(" P :");for(int i=;i<=N;i++)printf("%d ",a[i].p);printf("\n");
printf(" L :");for(int i=;i<=N;i++)printf("%d ",a[i].l);printf("\n");
printf(" R :");for(int i=;i<=N;i++)printf("%d ",a[i].r);printf("\n");
}
// 8 4 2 6 1 8 4 7 3

二叉查找树BST

#include<bits/stdc++.h>
using namespace std;
int a[],N,b[],ans; //ans是逆序对个数
void merge(int,int);
void msort(int,int);
void msort(int l,int r)
{
if(l==r)return;
int mid=l+r>>;
msort(l,mid);msort(mid+,r);
merge(l,r);
}
void merge(int l,int r)
{
if(l==r)return;
int mid=l+r>>;
int i=l,j=mid+,t=;
while(t<r-l+){
if((i<=mid&&a[i]<=a[j])||j>r)b[++t]=a[i++];
else if(a[i]>a[j]||i>mid){b[++t]=a[j++];if(i<=mid)ans+=(mid-i+);}
}
for(int i=;i<=t;i++)a[l+i-]=b[i];
}

归并排序

#include<bits/stdc++.h>
using namespace std;
char s1[],s2[];
int len1,len2,next[];
int main(){
scanf("%s%s",s1+,s2+);
int len1=strlen(s1+),len2=strlen(s2+);
for(int i=,j=;i<=len2;i++){
while(s2[i]!=s2[j+]&&j>)j=next[j];
if(s2[i]==s2[j+])next[i]=++j;
}
for(int i=,j=;i<=len1;i++){
while(s1[i]!=s2[j+]&&j>)j=next[j];
if(s1[i]==s2[j+])j++;
if(j==len2){
printf("%d\n",i-len2+);
j=next[j];
}
}
for(int i=;i<=len2;i++)printf("%d ",next[i]);
return ;
}

字符串匹配KMP

#include<bits/stdc++.h>
#define MAXN 10000005
int prime[MAXN],mark[MAXN],cnt,N,M;
int main()
{
scanf("%d%d",&N,&M);
for(int i=;i<=N;i++){
if(!mark[i])prime[++cnt]=i;
for(int j=;prime[j]*i<=N&&j<=cnt;j++){
mark[prime[j]*i]=;
if(i%prime[j]==)break;
}
}mark[]=;
for(int i=;i<=M;i++){
int x;scanf("%d",&x);
mark[x]?puts("No"):puts("Yes");
}
return ;
}

线性筛素数

#include<bits/stdc++.h>
#define ull unsigned long long
#define lowbit(a) (a&-a)
#define MAXN 200005
using namespace std;
int N,M,a[MAXN];
ull c1[MAXN],c2[MAXN];
void add(int pos,ull x)
{
for(int i=pos;i<=N;i+=lowbit(i))
c1[i]+=x,c2[i]+=x*pos;
}
ull sum(int pos) //[1,pos]区间和
{
ull s=;
for(int i=pos;i;i-=lowbit(i))
s+=c1[i]*(pos+)-c2[i];
return s;
}
int main()
{
ios::sync_with_stdio(false);
cin>>N;cin>>M;
for(int i=;i<=N;i++)
{
cin>>a[i];
add(i,a[i]-a[i-]);
}
// cin>>M;
while(M--)
{
int P,X,Y;
ull Z;
cin>>P;
if(P==)
{
cin>>X>>Y>>Z;
add(Y+,-Z);
add(X,Z);
}
else if(P==)
{
cin>>X>>Y;
cout<<sum(Y)-sum(X-)<<endl;
}
}
return ;
}

树状数组区间版

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std; int pow_mod(int a,int n,int m)
{
if(n==)return ;
int x=pow_mod(a,n/,m);
long long ans=(long long)x*x%m;
if(n%==)ans=ans*a%m;
return (int)ans;
} int main()
{
int a,n,m;
a=;n=;m=;
int ans=pow_mod(a,n,m);
printf("%d",ans);
return ;
}

快速幂

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
//#include<bits/stdc++.h>
using namespace std;
void read(int& x)
{
int z=;x=;char c;c=getchar();
while(c<''||c>''){if(c=='-')z=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
x*=z;
}
struct edge{
int other,pre,c;
}a[];
int last[],cnt,dis[],in[];
bool vis[];
void connect(int x,int y,int z)
{
a[++cnt]=(edge){y,last[x],z};
last[x]=cnt;
}
int SPFA(int x,int y)
{
queue<int> q;
memset(dis,,sizeof(dis));
memset(vis,,sizeof(vis));
memset(in,,sizeof(in));
dis[x]=;
q.push(x);vis[x]=true;in[x]++;
while(!q.empty())
{
int tmp=q.front();
q.pop();vis[tmp]=false;
for(int i=last[tmp];i;i=a[i].pre)
{
int to=a[i].other;
if(dis[tmp]+a[i].c<dis[to])
{
dis[to]=dis[tmp]+a[i].c;
if(!vis[to])
{
vis[to]=true;
in[to]++;
q.push(to);
// if(in[y]>N)exit(0);
}
}
}
}
return dis[y];
}
int main()
{
int x,y;
read(x);read(y);
connect(,,x);
connect(,,y);
printf("%d\n",SPFA(,));
return ;
}

A+B(SPFA)

#include<bits/stdc++.h>
using namespace std;
double M[][];
int N;
inline bool Gauss()
{
for(int k=;k<=N;k++){
double maxm=-;int maxi;
for(int i=k;i<=N;i++)
if(maxm<fabs(M[i][k]))
maxm=fabs(M[i][k]),maxi=i;
if(fabs(maxm)<1e-)
return false;
if(maxi-k)
for(int j=;j<=N+;j++)
swap(M[maxi][j],M[k][j]);
double tmp=M[k][k];
for(int j=;j<=N+;j++)
M[k][j]/=tmp;
for(int i=k-?:;i<=N;i++){
if(i==k)continue;
double tmp=M[i][k];
for(int j=;j<=N+;j++)
M[i][j]-=tmp*M[k][j];
}
}
return true;
}
int main()
{
scanf("%d",&N);
for(int i=;i<=N;i++)
for(int j=;j<=N+;j++)
scanf("%lf",&M[i][j]);
if(Gauss())
for(int i=;i<=N;i++)
printf("%.2lf\n",M[i][N+]);
else printf("No Solution");
return ;
}

高斯消元

NOIP2017 Day-1 模板荟萃的更多相关文章

  1. 准备NOIP2017 编辑距离问题 模板

    输入 第1行:字符串a(a的长度 <= 1000). 第2行:字符串b(b的长度 <= 1000). 输出   输出a和b的编辑距离   输入示例 kitten sitting 输出示例 ...

  2. [SinGuLaRiTy] NOIP2017 提高组

    [SinGuLaRiTy-1048] Copyright (c) SinGuLaRiTy 2018. All Rights Reserved. NOIP2017过了这么久,现在2018了才找到寒假这么 ...

  3. NOIP2017滚粗记

    NOIP2017滚粗记 扯淡 考完联赛后一直在搞文化... 联赛过去了不知道多少天了才来写这东西.... Day0 早自习知道了要期中考试. 感觉心态炸裂了. 上午在乱敲板子.... 打了一堆莫名其妙 ...

  4. NOIp2017 滚粗记

    NOIp2017 滚粗记 Day0 早上 早自习的时候,班主任忽然告诉我们, 我们要参加期中考试... 这对于我们真是一个沉重的打击... 但是,管不着了 明天就死去考试了 上午 \(8:10\)到了 ...

  5. [noip2017] 前三周总结

    [noip2017] 前三周总结 10.20 Fri. Day -21 距离noip复赛还有3周了,进行最后的冲刺! 首先要说今天过得并不好,和我早上比赛打挂了有关系. 不过每一次比赛都能暴露出我的漏 ...

  6. noip2017普及 兔纸游玩记

    初中的最后一场比赛...就这样结束了吧...QAQ时间...真够快的qwq 应该是初中的最后一篇游记了吧,尽量写多点... 这是一篇,初三 老年菜兔的 noip2017 普及游玩记吧! DAY 0  ...

  7. NOIP2017 【游记】

    一年过去,想起去年还是个傻b[今年也是],心里总是无限的感慨. 脑海里是日日夜夜在机房的身影,一题一题AC的激情 我等今年等了许久,虽然我是个蒟蒻,但我有梦想的憧憬 鲲鹏展翅翼向天,扶摇直上九万里. ...

  8. NOIP2017

    NOIP2017游记 记得开始学OI是今年的6月,那时候纯粹是抱着好玩的心态来学的,但是渐渐地,我发现我好像喜欢上了OI,喜欢敲键盘时的声音,喜欢手指触碰键盘时的手感,喜欢这个奥赛班与其他科目学习气氛 ...

  9. 极客Web前端开发资源大荟萃#001

    每周极客都将总结本周最精彩的素材提供给大家,希望可以带给你更多地灵感和帮助!极客#GB课程库#现已上线,无论你是初级.中级.还是正在进修的高级前端工程师.这里都将帮助你得到更多更高效的学习.原文:极客 ...

随机推荐

  1. 9.variant move function change_cast

    包含的头文件 #include <iostream> #include <string> #include <boost/array.hpp> //异构的容器 #i ...

  2. xBIM 基础07 创建WebBIM文件

    系列目录    [已更新最新开发文章,点击查看详细]  xBIM项目提供了一个IFC文件的Web查看器.当你想把IFC转换成紧凑的WexBIM时,需要 xBIM Essentials 和 xBIM G ...

  3. Ubuntu16.04+OpenCV3.2.0+Opencv_Contrib3.2.0安装

    为了学习slam,在ubuntu16.04系统上安装opencv3.2.0以及对应的opencv_contrib3.2.0 安装过程 下载 Github上下载有的时候比较慢,我这里分享了OpenCV3 ...

  4. 访问Storm ui界面,出现org.apache.thrift7.transport.TTransportException: java.net.ConnectException: Connection refused的问题解决(图文详解)

    不多说,直接上干货! 前期博客 apache-storm-0.9.6.tar.gz的集群搭建(3节点)(图文详解) 问题详情 org.apache.thrift7.transport.TTranspo ...

  5. 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别

    报错信息: Type Status Report Message HTTP method GET is not supported by this URL Description The method ...

  6. 机器学习(十一) 支持向量机 SVM(上)

    一.什么是支撑向量机SVM (Support Vector Machine) SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法.在机器学习领域,是一个有监督 ...

  7. cmd 与 网卡(netsh 命令)

    1. 通过命令提示符(cmd)命令连接 Wi-Fi 1.1 连接曾经连接过的 Wi-Fi :: 查看配置的列表(::表示注释) netsh wlan show profile :: 连接 netsh ...

  8. Intellij IDEA 2018.3激活破解方法(解决key is invalid)

    1.程序安装包: https://download.jetbrains.8686c.com/idea/ideaIU-2018.3.exe 2.破解补丁:http://idea.lanyus.com/j ...

  9. c/s结构的自动化——pyautogui

    环境:Python 3.5.3 pip install pyautogui -i http://pypi.douban.com/simple --trusted-host pypi.douban.co ...

  10. 51nod 1526 分配笔名(Trie树+贪心)

    建出Trie树然后求出一个点子树中有多少笔名和真名.然后贪心匹配即可. #include<iostream> #include<cstring> #include<cst ...