#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. 21.boost Ford最短路径算法(效率低)

    到某个节点最近距离                  最短路径当前节点的父节点 完整代码 #include <iostream> #include <string> #incl ...

  2. Spark SQL - 对大规模的结构化数据进行批处理和流式处理

    Spark SQL - 对大规模的结构化数据进行批处理和流式处理 大体翻译自:https://jaceklaskowski.gitbooks.io/mastering-apache-spark/con ...

  3. 51nod 1096 距离之和最小 思维题,求中位数

    题目: 在一条直线上,与两个点距离之和最小的点,是怎样的点? 很容易想到,所求的点在这两个已知点的中间,因为两点之间距离最短. 在一条直线上,与三个点距离之和最小的点,是怎样的点? 由两个点的规律,我 ...

  4. HDU 2120 Ice_cream's world I【并查集】

    解题思路:给出n对点的关系,求构成多少个环,如果对于点x和点y,它们本身就有一堵墙,即为它们本身就相连,如果find(x)=find(y),说明它们的根节点相同,它们之间肯定有直接或间接的相连,即形成 ...

  5. php 扩展 suhosin 配置不当引发的报错及其解决方法

    1. /var/log/messages 频繁报错: Jul :: localhost suhosin[]: ALERT - script tried to increase memory_limit ...

  6. django框架-DRF视图中的request和response

    1.Request 相对于django框架,DRF工程的request类则是继承自HttpRequest类,Rest framework提供了parser解释器,用来解释请求中的content_typ ...

  7. HDU-1215 七夕节 数论 唯一分解定理 求约数之和

    题目链接:https://cn.vjudge.net/problem/HDU-1215 题意 中文题,自己去看吧,懒得写:) 思路 \[ Ans=\prod \sum p_i^j \] 唯一分解定理 ...

  8. red hat linux之Samba、DHCP、DNS、FTP、Web的安装与配置

    本教程是在red hat linux 6.0环境下简单测试!教程没有图片演示,需要具有一定Linux基础知识,很多地方的配置需要根据自己的情况修改,照打不一定可以配置成功.(其他不足后续修改添加) y ...

  9. python 中i++、逻辑表达式

    参考链接:https://www.cnblogs.com/yupeng/p/3345946.html i++运算符 python中没有类似i++之类实现+1的运算符,但是有++i,+-i.之类的,他们 ...

  10. 紫书 习题8-5 UVa 177 (找规律)

    参考了https://blog.csdn.net/weizhuwyzc000/article/details/47038989 我一开始看了很久, 拿纸折了很久, 还是折不出题目那样..一脸懵逼 后来 ...