#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. css文字换行问题white-space:pre-line或者white-space:pre-wrap,解决word-wrap:break-word解决不了的

    想让文字换行必须要写的那几个css样式就略过了.当一行文字是数字或字母时或者数字字母组合时会出现不换行局面,这时候加个word-wrap:break-word:就基本可以解决但是有种情况是它解决不了的 ...

  2. 分库分表中间件Sharding-JDBC

    数据库分库分表从互联网时代开启至今,一直是热门话题.在NoSQL横行的今天,关系型数据库凭借其稳定.查询灵活.兼容等特性,仍被大多数公司作为首选数据库.因此,合理采用分库分表技术应对海量数据和高并发对 ...

  3. Python3.x和Python2.x的区别(转存参考)

    http://www.360doc.com/content/14/0619/23/16740871_388198818.shtml 这个星期开始学习Python了,因为看的书都是基于Python2.x ...

  4. QT笔记 -- (3) 为QLabel添加鼠标响应方法1

    参考 http://qt-project.org/wiki/Make-a-QLabel-Clickable 1.首先重载QLabel的mousePressEvent,这样点击QLabel时就能发出cl ...

  5. HOJ 1867 经理的烦恼 【 树状数组 】

    题意:给出一个区间,求这个区间里面素数的个数 这道题wa了好多次---是因为add操作没有写对 每次更新的时候,应该先判断没有加上y是不是质数,加上了y是不是质数 如果从质数变成不是质数,那么add( ...

  6. Java中各种修饰符与访问修饰符

    Java中各种修饰符与访问修饰符 类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备 ...

  7. C语言数组和指针是不同的

    有一个这样的错误: 在一个文件中定义:int mango[100];  在另一个文件中声明:extern int *mango;  将会产生错误 定义和声明的区别: 在C中,任何对象都有且只有一个定义 ...

  8. 紫书 习题 8-17 UVa 11536 (滑动窗口)

    这道题说连续子序列, 马上就想到滑动窗口. 注意窗口里面的元素中小于等于k的才是有效元素.记录窗口里面有效元素的个数, 满足了之后开始 缩短窗口, 如果左端点不是有效元素或者即使窗口中存在这个元素的个 ...

  9. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计

    [转] C#学习笔记14——Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空 ...

  10. Qt之QSS(语法高亮)

    简述 语法高亮是文本编辑器用来显示文本的,特别是源代码,根据不同的类别来用不同的颜色和字体显示.这个功能有助于编写结构化的语言,例如:编程语言.标记语言,这些语言的语法错误显示是有区别的. 简述 详细 ...