#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. SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

    转自:https://blog.csdn.net/bieleyang/article/details/77862042 SSM框架是spring MVC ,spring和mybatis框架的整合,是标 ...

  2. correct ways to define variables in python

    http://stackoverflow.com/questions/9056957/correct-way-to-define-class-variables-in-python later say ...

  3. sql server Delete误操作后如何恢复数据

    声明:本文是根据别人的经验https://blog.csdn.net/dba_huangzj/article/details/8491327写的总结 说明:update和delete时没有加where ...

  4. sql server 数据库distinct的用法

    Distinct:用来过滤重复记录.往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直 ...

  5. html5+css3+javascript 自定义弹出窗口

    效果图: 源码: 1.demo.jsp <%@ page contentType="text/html;charset=UTF-8" language="java& ...

  6. kindEditor编写插件遇到的问题

    kindEditor是一个功能强大的在线文本编辑器,而且提供了插件扩展功能,更好的满足用户各方面的需求.在项目中,我们就有如此的需求:在kindEditor编辑器中,添加一条下划线,并且在下划线的中间 ...

  7. php计算两个日期相差的天数

    /** * 时间差计算 * * @param Timestamp $time * @return String Time Elapsed */ function time2Units ($time,$ ...

  8. img标签IE下有边距——2017/7/21

    设置css 在全局变量的是和给img标签设置 img{ border:0;} 1,img{float:left}2,img{display:block}

  9. [codevs3955]最长严格上升子序列(加强版)

    题目大意:给你一个序列,要你求该序列中最长严格上升子序列的长度. 解题思路:此题算是一道LIS模板题.普通的$O(n^2)$的LIS是会TLE的,因为$n\le 1000000$,所以此题要用单调队列 ...

  10. Linux创建用户和随机密码

    #!/bin/bash#批量创建10个系统帐号并设置密码rm -f user.logfor name in `seq 10`do #非交互式的输入随机密码 password=`echo $RANDOM ...