#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. UISrcoll控件简单介绍

    UISrcoll控件,简单的说就是让界面滑动 当使用uiimageview的时候,给控件设置图片素材时,图片的大小会根据控件的大小,自动做缩放 当使用uibutton的时候,如果是设置背景图,name ...

  2. C# 实现ADSL自动断网和拨号(适用于拨号用户)

    using System;using System.Runtime.InteropServices; public struct RASCONN{    public int dwSize;    p ...

  3. POJ 1990 MooFest【 树状数组 】

    题意:给出n头牛,每头牛有一个听力v,坐标x,两头牛之间的能量为max(v1,v2)*dist(v1,v2),求总的能量值 先将每头牛按照v排序,排完顺序之后,会发现有坐标比当前的x小的,会有坐标比当 ...

  4. 1,http协议的细节部分学习

    http协议(80端口)https(443端口) 主要是一直对三次握手模模糊糊,并且抓包的时候不知道那些Accept.User-Agent什么意思,就仔细找课程学了一下. 学习简介: 1,涉及工具(w ...

  5. ubuntu 装tensorflow出现 conda install ERROR missing write permission错误

    通过搜索tensorflow然后运行,例如:$ conda install --channel https://conda.anaconda.org/jjh_cio_testing tensorflo ...

  6. 【转载】spring-boot 项目跳转到JSP页面

    原路径:https://blog.csdn.net/qq_36820717/article/details/80008225 1.新建spring-boot项目  目录结构如下 2.新建TestCon ...

  7. 纯净版linux (debian)挂载VirtualBox共享文件夹

    使用的虚拟机版本是:VirtualBox-5.2.8-121009 使用的linux版本是:Linux debian 4.9.0-7-amd64 tty 1. 开始配置 1.1:打开虚拟机设置,打开你 ...

  8. Object-C学习比较费劲的3点原因

    作为一名有8年编程经验的资历不浅的程序员,学习Object-C和iOS,感觉效率有点低,至少和学习Android比起来,慢的不是一点点. 主要有以下3个原因: 1.Object-C,和C系列的语言(C ...

  9. 中国象棋程序的设计与实现(六)--N皇后问题的算法设计与实现(源码+注释+截图)

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题. 该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列 ...

  10. 【codeforces 367C】Sereja and the Arrangement of Numbers

    [题目链接]:http://codeforces.com/problemset/problem/367/C [题意] 我们称一个数列a[N]美丽; 当且仅当,数列中出现的每一对数字都有相邻的. 给你n ...