2018.8.8 正睿暑期集训营 Day5

时间:3.5h(实际)

期望得分:60+20+20

实际得分:20+20+20

比赛链接

这里也有一些

总结

线段树!!!

[Update]好了现在我已经见什么都想写线段树了。

A 友谊巨轮(线段树 动态开点)

题目链接

开n棵线段树,维护最大值及答案,动态开点就完了啊。。

//4810ms	71524kb
#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
//#define gc() getchar()
#define MAXIN 300000
#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
typedef long long LL;
const int N=1e5+5; int n,K,m,root[N],Ans;
char IN[MAXIN],*SS=IN,*TT=IN;
struct Operation
{
int a,b,c;
}opt[N]; struct Segment_Tree
{
#define S N*50//每次最多4次Modify,但是有2次之前开过了,so N*17*2就够。
#define ls son[x][0]
#define rs son[x][1]
#define lson ls,l,m
#define rson rs,m+1,r
int tot,son[S][2];
struct Node
{
LL mxv; int tm,ans;
bool operator <(const Node &x)const{
return mxv==x.mxv?tm<x.tm:mxv<x.mxv;
}
}t[S]; #define Update(x) t[x]=std::max(t[ls],t[rs])
void Modify(int &x,int l,int r,int p,LL v,int tm)
{
if(!x) x=++tot, ls=rs=0, t[x]=(Node){0,0,0};//取max,tm也要清零啊
if(l==r) {t[x].mxv+=v, t[x].tm=std::max(t[x].tm,tm), t[x].ans=p; return;}
int m=l+r>>1;
if(p<=m) Modify(lson,p,v,tm);
else Modify(rson,p,v,tm);
Update(x);
}
}T; inline int read()
{
int now=0;register char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);now=now*10+c-'0',c=gc());
return now;
}
void Modify(int a,int b,int c,int tm)
{
int bef=T.t[root[a]].ans;
T.Modify(root[a],1,n,b,c,tm);
int now=T.t[root[a]].ans;
if(bef==now) return;
if(bef)
if(T.t[root[bef]].ans==a) ++Ans;
else --Ans;
if(now)
if(T.t[root[now]].ans==a) --Ans;
else ++Ans;
} int main()
{
// freopen("a.in","r",stdin);
// freopen("my.out","w",stdout); T.t[0].tm=1000000;
for(int Case=read(); Case--; )
{
memset(root,0,sizeof root);
n=read(), K=read(), m=read(), T.tot=Ans=0;
for(int i=1,a,b,c; i<=K; ++i)
{
opt[i]=(Operation){a=read(),b=read(),c=read()};
Modify(a,b,c,i), Modify(b,a,c,i);
if(i>m)
Modify(opt[i-m].a,opt[i-m].b,-opt[i-m].c,i-m), Modify(opt[i-m].b,opt[i-m].a,-opt[i-m].c,i-m);
printf("%d\n",Ans);
}
}
return 0;
}

B 璀璨光滑

题目链接


C 构解巨树

题目链接


考试代码

A

//7.7K...(其实copy了两遍)
//暴力都可以O(n)得到答案,非得O(1)。。但是数组改map就可以60了啊
//巨难调。。
#include <map>
#include <queue>
#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
//#define gc() getchar()
#define MAXIN 300000
#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
typedef long long LL;
const int N=1e5+5; int n,K,m;
char IN[MAXIN],*SS=IN,*TT=IN;
struct Operation
{
int a,b,c;
}opt[N]; inline int read()
{
int now=0;register char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);now=now*10+c-'0',c=gc());
return now;
}
namespace Subtask1
{
const int S=1005;
int ship[S],tm[S][S];
LL mx[S],val[S][S];
bool alone[S];
// struct Node
// {
// int mxv,tm,id;
// bool operator <(const Node &x)const{
// return mxv==x.mxv?tm<x.tm:mxv<x.mxv;
// }
// };
// struct Heap
// {
// std::priority_queue<Node> q;
// inline void Clear() {while(!q.empty()) q.pop();}
// }hp[S]; void Main()
{
memset(mx,0,sizeof mx);
memset(tm,0,sizeof tm);
memset(val,0,sizeof val);
// memset(tag,0,sizeof tag);
memset(ship,0,sizeof ship);
memset(alone,0,sizeof alone);
// for(int i=1; i<=n; ++i) hp[i].Clear(); int ans=0; if(m>K) m=K;
for(int i=1; i<=n; ++i) tm[i][0]=1000000;
for(int i=1,a,b,c; i<=m; ++i)
{
a=read(), b=read(), c=read(), opt[i]=(Operation){a,b,c};
tm[a][b]=tm[b][a]=i; if((val[a][b]+=c)>=mx[a] && ship[a]!=b)
{
if(ship[ship[a]]==a) ++ans, alone[ship[a]]=1;
mx[a]=val[a][b], ship[a]=b;
}
if((val[b][a]+=c)>=mx[b] && ship[b]!=a)
{
if(ship[ship[b]]==b) ++ans, alone[ship[b]]=1;
mx[b]=val[b][a], ship[b]=a;
}
if(!alone[a]&&ship[a]==b&&ship[b]!=a) ++ans, alone[a]=1;
else if(alone[a]&&ship[ship[a]]==a) --ans, alone[a]=0;
if(!alone[b]&&ship[b]==a&&ship[a]!=b) ++ans, alone[b]=1;
else if(alone[b]&&ship[ship[b]]==b) --ans, alone[b]=0;
printf("%d\n",ans);
}
for(int i=m+1,a,b,c; i<=K; ++i)
{
a=opt[i-m].a, b=opt[i-m].b, c=opt[i-m].c;
val[a][b]-=c, val[b][a]-=c;
// printf("Now:%d bef:%d a:%d b:%d\n",i,i-m,a,b);
if(ship[a]==b)
{
int p=0;
for(int j=1; j<=n; ++j) if(val[a][j]>val[a][p]||(val[a][j]==val[a][p]&&tm[a][j]>tm[a][p])) p=j;
// printf("a: ship[%d]=%d p:%d\n",a,b,p);
if(!p)
{
if(alone[a]) --ans, alone[a]=0;
ship[a]=mx[a]=0;
}
else if(p!=b)
{
if(ship[b]==a) ++ans, alone[b]=1;
ship[a]=p, mx[a]=val[a][p];
if(ship[p]==a)
{
--ans, alone[p]=0;
if(alone[a]) --ans, alone[a]=0;
}
else if(!alone[a]) ++ans, alone[a]=1;
}
else mx[a]-=c;
}
// printf("aa: %d\n",ans);
if(ship[b]==a)
{
int p=0;
for(int j=1; j<=n; ++j) if(val[b][j]>val[b][p]||(val[b][j]==val[b][p]&&tm[b][j]>tm[b][p])) p=j;
// printf("b: ship[%d]=%d p:%d\n",b,a,p);
if(!p)
{
if(alone[b]) --ans, alone[b]=0;
ship[b]=mx[b]=0;
}
else if(p!=a)
{
if(ship[a]==b) ++ans, alone[a]=1;
ship[b]=p, mx[b]=val[b][p];
if(ship[p]==b)
{
--ans, alone[p]=0;
if(alone[b]) --ans, alone[b]=0;
}
else if(!alone[b]) ++ans, alone[b]=1;
}
else mx[b]-=c;
}
// printf("bb: %d\n",ans); a=read(), b=read(), c=read(), opt[i]=(Operation){a,b,c};
tm[a][b]=tm[b][a]=i; if((val[a][b]+=c)>=mx[a] && ship[a]!=b)
{
if(ship[ship[a]]==a) ++ans, alone[ship[a]]=1;
mx[a]=val[a][b], ship[a]=b;
}
if((val[b][a]+=c)>=mx[b] && ship[b]!=a)
{
if(ship[ship[b]]==b) ++ans, alone[ship[b]]=1;
mx[b]=val[b][a], ship[b]=a;
}
if(!alone[a]&&ship[a]==b&&ship[b]!=a) ++ans, alone[a]=1;
else if(alone[a]&&ship[ship[a]]==a) --ans, alone[a]=0;
if(!alone[b]&&ship[b]==a&&ship[a]!=b) ++ans, alone[b]=1;
else if(alone[b]&&ship[ship[b]]==b) --ans, alone[b]=0;
printf("%d\n",ans);
}
}
}
namespace Subtask2
{//m=k
int ship[N];
LL mx[N];
bool alone[N];
std::map<int,LL> val[N]; void Main()
{
for(int i=1; i<=n; ++i) val[i].clear();
memset(mx,0,sizeof mx);
memset(ship,0,sizeof ship);
memset(alone,0,sizeof alone); int ans=0;
for(int i=1,a,b,c; i<=m; ++i)
{
a=read(), b=read(), c=read();
if((val[a][b]+=c)>=mx[a] && ship[a]!=b)
{
if(ship[ship[a]]==a) ++ans, alone[ship[a]]=1;
mx[a]=val[a][b], ship[a]=b;
}
if((val[b][a]+=c)>=mx[b] && ship[b]!=a)
{
if(ship[ship[b]]==b) ++ans, alone[ship[b]]=1;
mx[b]=val[b][a], ship[b]=a;
}
if(!alone[a]&&ship[a]==b&&ship[b]!=a) ++ans, alone[a]=1;
else if(alone[a]&&ship[ship[a]]==a) --ans, alone[a]=0;
if(!alone[b]&&ship[b]==a&&ship[a]!=b) ++ans, alone[b]=1;
else if(alone[b]&&ship[ship[b]]==b) --ans, alone[b]=0;
printf("%d\n",ans);
}
}
}
namespace Subtask3
{
int ship[N];
LL mx[N];
std::map<int,int> tm[N];
std::map<int,LL> val[N];
bool alone[N]; void Main()
{
memset(mx,0,sizeof mx);
memset(ship,0,sizeof ship);
memset(alone,0,sizeof alone);
for(int i=1; i<=n; ++i) tm[i].clear(), val[i].clear(); int ans=0; if(m>K) m=K;
for(int i=1; i<=n; ++i) tm[i][0]=1000000;
for(int i=1,a,b,c; i<=m; ++i)
{
a=read(), b=read(), c=read(), opt[i]=(Operation){a,b,c};
tm[a][b]=tm[b][a]=i; if((val[a][b]+=c)>=mx[a] && ship[a]!=b)
{
if(ship[ship[a]]==a) ++ans, alone[ship[a]]=1;
mx[a]=val[a][b], ship[a]=b;
}
if((val[b][a]+=c)>=mx[b] && ship[b]!=a)
{
if(ship[ship[b]]==b) ++ans, alone[ship[b]]=1;
mx[b]=val[b][a], ship[b]=a;
}
if(!alone[a]&&ship[a]==b&&ship[b]!=a) ++ans, alone[a]=1;
else if(alone[a]&&ship[ship[a]]==a) --ans, alone[a]=0;
if(!alone[b]&&ship[b]==a&&ship[a]!=b) ++ans, alone[b]=1;
else if(alone[b]&&ship[ship[b]]==b) --ans, alone[b]=0;
printf("%d\n",ans);
}
for(int i=m+1,a,b,c; i<=K; ++i)
{
a=opt[i-m].a, b=opt[i-m].b, c=opt[i-m].c;
val[a][b]-=c, val[b][a]-=c;
if(ship[a]==b)
{
int p=0;
for(int j=1; j<=n; ++j) if(val[a][j]>val[a][p]||(val[a][j]==val[a][p]&&tm[a][j]>tm[a][p])) p=j;
if(!p)
{
if(alone[a]) --ans, alone[a]=0;
ship[a]=mx[a]=0;
}
else if(p!=b)
{
if(ship[b]==a) ++ans, alone[b]=1;
ship[a]=p, mx[a]=val[a][p];
if(ship[p]==a)
{
--ans, alone[p]=0;
if(alone[a]) --ans, alone[a]=0;
}
else if(!alone[a]) ++ans, alone[a]=1;
}
else mx[a]-=c;
}
if(ship[b]==a)
{
int p=0;
for(int j=1; j<=n; ++j) if(val[b][j]>val[b][p]||(val[b][j]==val[b][p]&&tm[b][j]>tm[b][p])) p=j;
if(!p)
{
if(alone[b]) --ans, alone[b]=0;
ship[b]=mx[b]=0;
}
else if(p!=a)
{
if(ship[a]==b) ++ans, alone[a]=1;
ship[b]=p, mx[b]=val[b][p];
if(ship[p]==b)
{
--ans, alone[p]=0;
if(alone[b]) --ans, alone[b]=0;
}
else if(!alone[b]) ++ans, alone[b]=1;
}
else mx[b]-=c;
} a=read(), b=read(), c=read(), opt[i]=(Operation){a,b,c};
tm[a][b]=tm[b][a]=i; if((val[a][b]+=c)>=mx[a] && ship[a]!=b)
{
if(ship[ship[a]]==a) ++ans, alone[ship[a]]=1;
mx[a]=val[a][b], ship[a]=b;
}
if((val[b][a]+=c)>=mx[b] && ship[b]!=a)
{
if(ship[ship[b]]==b) ++ans, alone[ship[b]]=1;
mx[b]=val[b][a], ship[b]=a;
}
if(!alone[a]&&ship[a]==b&&ship[b]!=a) ++ans, alone[a]=1;
else if(alone[a]&&ship[ship[a]]==a) --ans, alone[a]=0;
if(!alone[b]&&ship[b]==a&&ship[a]!=b) ++ans, alone[b]=1;
else if(alone[b]&&ship[ship[b]]==b) --ans, alone[b]=0;
printf("%d\n",ans);
}
}
} int main()
{
// freopen("a2.in","r",stdin);
// freopen("my.out","w",stdout); for(int Case=read(); Case--; )
{
n=read(), K=read(), m=read();
if(m==K) {Subtask2::Main(); continue;}
if(n<=1000) {Subtask1::Main(); continue;}
Subtask3::Main();
// for(int i=1; i<=K; ++i) opt[i]=(Operation){read(),read(),read()}; }
return 0;
}

B

#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
//#define gc() getchar()
#define MAXIN 400000
#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
#define mod (1000000007)
typedef long long LL;
const int N=5e5+5,M=4e5+5; int n,m,lim,pw2[N],pw10[N],Enum,H[N],nxt[M],to[M],p[N];
bool vic,use[N];
char IN[MAXIN],*SS=IN,*TT=IN; inline int read()
{
int now=0;register char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);now=now*10+c-'0',c=gc());
return now;
}
inline void AddEdge(int u,int v)
{
if(u<v) std::swap(u,v);
to[++Enum]=v, nxt[Enum]=H[u], H[u]=Enum;//big->small
}
inline bool Check(int v1,int v2)
{
for(int i=0,f=1; i<=n; ++i)
if((v1>>i&1)^(v2>>i&1))
if(f) f=0;
else return 0;
return 1;
}
inline bool OK(int x,int val)
{
for(int i=H[x]; i; i=nxt[i])
if(!Check(p[to[i]],val)) return 0;
return 1;
}
void DFS(int now,LL ans)
{
if(vic) return;
if(now==lim) {vic=1, printf("%lld\n",ans%mod); return;}
for(int x=0; x<lim; ++x)
if(!use[x] && OK(now,x))
{
use[x]=1, p[now]=x;
DFS(now+1,ans+1ll*x*pw10[now]%mod);
if(vic) return;
use[x]=0;
}
} int main()
{
// freopen("b1.in","r",stdin);
// freopen(".out","w",stdout); pw10[0]=1;
for(int i=0; i<=18; ++i) pw2[i]=1<<i;
for(int i=1; i<=pw2[12]/*pw2[18]*/; ++i) pw10[i]=1ll*pw10[i-1]*10%mod;
for(int Case=read(); Case--; )
{
n=read(), m=read(), Enum=vic=0, lim=pw2[n];
for(int i=1; i<=lim; ++i) H[i]=0;
for(int i=1; i<=m; ++i) AddEdge(read()-1,read()-1);
DFS(0,0);
for(int i=0; i<lim; ++i) use[i]=0;
}
return 0;
}

C

#include <cstdio>
#include <cctype>
#include <assert.h>
#include <algorithm>
//#define gc() getchar()
#define MAXIN 400000
#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
#define mod (1000000007)
typedef long long LL;
const int N=1e5+5,M=4e5+5; int n,m,Enum,H[N],nxt[M],to[M],sz[N],sum[N],sz2[N],sum2[N],sz3[N],sum3[N];
LL Ans;
char IN[MAXIN],*SS=IN,*TT=IN; inline int read()
{
int now=0;register char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);now=now*10+c-'0',c=gc());
return now;
}
inline void AddEdge(int u,int v)
{
to[++Enum]=v, nxt[Enum]=H[u], H[u]=Enum;
to[++Enum]=u, nxt[Enum]=H[v], H[v]=Enum;
}
namespace Subtask1
{
const int N=4e6+5,M=N<<1;
int Enum,H[N],nxt[M],to[M],sz[N],sum[N];
LL Ans; inline void AddEdge(int u,int v)
{
// printf("%d->%d\n",u,v);
to[++Enum]=v, nxt[Enum]=H[u], H[u]=Enum;
to[++Enum]=u, nxt[Enum]=H[v], H[v]=Enum;
}
void DFS(int x,int f)
{
sz[x]=1; LL tmp=0;
for(int v,i=H[x]; i; i=nxt[i])
if((v=to[i])!=f) DFS(v,x), sz[x]+=sz[v], tmp+=sum[v];
sum[x]=(int)((tmp+sz[x])%mod);
tmp=0;
for(int v,i=H[x]; i; i=nxt[i])
if((v=to[i])!=f) tmp+=1ll*(sz[x]-sz[v])*sum[v]%mod;
Ans+=tmp%mod;
}
void Main()
{
for(int i=1; i<n; ++i)
for(int u=read(),v=read(),j=0; j<m; ++j) AddEdge(j*n+u,j*n+v);
for(int i=1,a,b; i<m; ++i) a=read()-1,b=read()-1,AddEdge(b*n+read(),a*n+read());//mmp忘了
DFS(1,1);
printf("%lld\n",Ans%mod);
}
}
void DFS(int x,int f)
{
sum[x]=0, sz[x]=1; LL tmp=0;
for(int v,i=H[x]; i; i=nxt[i])
if((v=to[i])!=f) DFS(v,x), sz[x]+=sz[v], tmp+=sum[v];
sum[x]=(int)((tmp+sz[x])%mod);
tmp=0;
for(int v,i=H[x]; i; i=nxt[i])
if((v=to[i])!=f) tmp+=1ll*(sz[x]-sz[v])*sum[v]%mod;
Ans+=tmp%mod;
}
void DFS2(int x,int f)
{
LL tmp=0,size=sz3[x]+1;
for(int v,i=H[x]; i; i=nxt[i])
if((v=to[i])!=f) DFS(v,x), size+=sz[v], tmp+=sum[v];
sz[x]=(int)(size%mod);
sum[x]=(int)((tmp+sz[x]+sum3[x])%mod);
tmp=0;
for(int v,i=H[x]; i; i=nxt[i])
if((v=to[i])!=f) tmp+=1ll*(sz[x]-sz[v])*sum[v]%mod;
Ans+=tmp%mod;
} int main()
{
freopen("c3.in","r",stdin);
// freopen(".out","w",stdout); n=read(), m=read();
if(1ll*n*m<=4e6) {Subtask1::Main(); return 0;}
for(int i=1; i<n; ++i) AddEdge(read(),read());
DFS(1,1), Ans=Ans*(m-1)%mod;
sum2[1]=sum[1], sz2[1]=sz[1];
for(int i=1,a,b,u,v; i<m; ++i)
{
a=read(), b=read(), u=read(), v=read();
if(!sz2[v]) DFS(v,v);
sz3[u]+=sz2[v], sz3[u]>=mod&&(sz3[u]-=mod);
sum3[u]+=(sum2[v]+sz2[v])%mod, sum3[u]>=mod&&(sum3[u]-=mod);
}
DFS2(1,1);
printf("%lld\n",Ans%mod); return 0;
}

8.8 正睿暑期集训营 Day5的更多相关文章

  1. 8.10 正睿暑期集训营 Day7

    目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...

  2. 8.6 正睿暑期集训营 Day3

    目录 2018.8.6 正睿暑期集训营 Day3 A 亵渎(DP) B 绕口令(KMP) C 最远点(LCT) 考试代码 A B C 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期 ...

  3. 8.9 正睿暑期集训营 Day6

    目录 2018.8.9 正睿暑期集训营 Day6 A 萌新拆塔(状压DP) B 奇迹暖暖 C 风花雪月(DP) 考试代码 A B C 2018.8.9 正睿暑期集训营 Day6 时间:2.5h(实际) ...

  4. 8.7 正睿暑期集训营 Day4

    目录 2018.8.7 正睿暑期集训营 Day4 A 世界杯(贪心) B 数组(线段树) C 淘汰赛 考试代码 A B C 2018.8.7 正睿暑期集训营 Day4 时间:5h(实际) 期望得分:. ...

  5. 8.5 正睿暑期集训营 Day2

    目录 2018.8.5 正睿暑期集训营 Day2 总结 A.占领地区(前缀和) B.配对(组合) C 导数卷积(NTT) 考试代码 T1 T2 T3 2018.8.5 正睿暑期集训营 Day2 时间: ...

  6. 8.4 正睿暑期集训营 Day1

    目录 2018.8.4 正睿暑期集训营 Day1 A 数对子 B 逆序对 C 盖房子 考试代码 A B C 2018.8.4 正睿暑期集训营 Day1 时间:4.5h(实际) 期望得分:30+50+3 ...

  7. 7.30 正睿暑期集训营 A班训练赛

    目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...

  8. 8.9 正睿暑期集训营 Day6 C 风花雪月(DP)

    题目链接 完整比赛在这儿. 杜老师tql . 求期望要抽卡的次数,也就是求期望经历了多少不满足状态.而每个不满足的状态对答案的贡献为\(1\),所以可以直接算概率.即\(Ans=\sum_{不满足状态 ...

  9. 正睿OI集训游记

    什么嘛....就是去被虐的... 反正就是难受就是了.各种神仙知识点,神仙题目,各式各样的仙人掌..... 但是还是学会了不少东西...... 应该是OI生涯最后一次集训了吧.... 这次的感言还是好 ...

随机推荐

  1. docker 时区设置

    今天查问题的时候发现 在对时间 格式化为 时间戳的时候,time.mktime(time.strptime('20170609-15:00:00','%Y%m%d-%H:%M:%S')) 发现测试环境 ...

  2. 一个ssm综合小案例-商品订单管理-第一天

    项目需求分析: 功能需求:登录,商品列表查询,修改 项目环境及技术栈: 项目构成及环境: 本项目采用 maven 构建 环境要求: IDEA Version: 2017.2.5 Tomcat Vers ...

  3. css框架,一把锋利的剑

    CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版.网格布局.表单样式.通用规则等代码块,用于简化web前端开发的工作,提高工作效率. 产生原因 互联网行业已经发展了多年,浏览 ...

  4. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  5. Miller_Rabin 素数测试

    费马定理的逆定理几乎可以用来判断一个数是否为素数,但是有一些数是判断不出来的,因此,Miller_Rabin测试方法对费马的测试过程做了改进,克服其存在的问题. 推理过程如下(摘自维基百科): 摘自另 ...

  6. TensorFlow 从零到helloWorld

    目录 1.git安装与使用 1.1 git安装 1.2 修改git bash默认路径 1.3 git常用操作 2.环境搭建   2.1 tensorflow安装   2.2 CUDA安装   2.3 ...

  7. Jenkins 安装及使用

    jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 可以用它做网站代码提交,更新. 1,安装 首先确保目标机器上装有 java jdk 版本最好在 1.6 以上,小编使用的是 ...

  8. JVM 垃圾回收算法及案例分析

    一. 在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”. 1.引用计数器算法: 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器- ...

  9. jquery-easyui:格式化列

    主框架页面: 在主界面区会加载西区菜单点击的URL内容. <!DOCTYPE html> <html> <head> <meta charset=" ...

  10. GET和POST两种基本请求方法的区别(转载)

    get与post请求的区别: 通常回答: GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET请求会被浏览器主动cache ...