传送门

\(div2\)那几道题不来做了太水了……

\(DPAIRS\)

一个显然合法的方案:\(A\)最小的和\(B\)所有连,\(A\)剩下的和\(B\)最大的连

算了咕上瘾了,咕咕咕

const int N=2e5+5;
int A[N],B[N],id[N],mxb,mxa,n,m;
int main(){
// freopen("testdata.in","r",stdin);
n=read(),m=read(),A[0]=inf,B[0]=-inf;
fp(i,1,n){
A[i]=read();
if(A[i]<A[mxa])mxa=i;
}
fp(i,1,m){
B[i]=read();
if(B[i]>B[mxb])mxb=i;
}
fp(i,1,m)print(mxa-1),print(i-1),sr[C]='\n';
fp(i,1,n)if(i!=mxa)print(i-1),print(mxb-1),sr[C]='\n';
return Ot(),0;
}

\(DIFNEIGH\)

还能咋样分类讨论吧……

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define inline __inline__ __attribute__((always_inline))
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
using namespace std;
int n,m;
int main(){
// freopen("testdata.in","r",stdin);
int T;scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
if(n==1){
switch(m){
case 1:printf("%d\n%d\n",1,1);break;
case 2:printf("%d\n%d %d\n",1,1,1);break;
default:{
printf("%d\n",2);
fp(i,1,m)printf("%d%c",(i&3)<=1?1:2," \n"[i==m]);
break;
}
}
}else if(n==2){
switch(m){
case 1:printf("%d\n%d\n%d\n",1,1,1);break;
case 2:printf("%d\n%d %d\n%d %d\n",2,1,1,2,2);break;
default:{
printf("%d\n",3);
fp(i,1,m)printf("%d%c",i%3+1," \n"[i==m]);
fp(i,1,m)printf("%d%c",i%3+1," \n"[i==m]);
break;
}
}
}else if(m==1){
switch(n){
case 1:printf("%d\n%d\n",1,1);break;
case 2:printf("%d\n%d\n%d\n",1,1,1);break;
default:{
printf("%d\n",2);
fp(i,1,n)printf("%d%c",(i&3)<=1?1:2," \n"[i==n]);
break;
}
}
}else if(m==2){
switch(n){
case 1:printf("%d\n%d %d\n",1,1,1);break;
case 2:printf("%d\n%d %d\n%d %d\n",2,1,1,2,2);break;
default:{
printf("%d\n",3);
fp(i,1,n)printf("%d %d\n",i%3+1,i%3+1);
break;
}
}
}else{
printf("%d\n",4);
fp(i,1,n){
switch(i&3){
case 0:fp(j,1,m)printf("%d%c",(j&3)<=1?1:2," \n"[j==m]);break;
case 2:fp(j,1,m)printf("%d%c",(j&3)<=1?2:1," \n"[j==m]);break;
case 1:fp(j,1,m)printf("%d%c",(j&3)<=1?3:4," \n"[j==m]);break;
case 3:fp(j,1,m)printf("%d%c",(j&3)<=1?4:3," \n"[j==m]);break;
}
}
}
}
return 0;
}

\(EARTSEQ\)

我们去选它们两两之间的\(\gcd\),那么等价于选\(n\)个元素,两两之间互质,且\(a_i\)和\(a_{i+2}\)也要互质

那么我们让区间\(\gcd\)以\(2,3,5,2,3,5...\)循环下去就好了,有可能\(n\)不一定是\(3\)的倍数,所以后面可以加几个特殊的\(\gcd\)进去

还要满足相邻两个数的\(\gcd\)只有\(2,3,5,...\)之类的,也就是说另外一个因子也要互质,可以令另外一个因子为一个质数,那么直接取前\(50000\)个质数可以保证这一部分绝对互质

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define inline __inline__ __attribute__((always_inline))
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
const int N=1e6+5;
bitset<N>vis;int p[N],m;
void init(int n=N-5){
fp(i,2,n){
if(!vis[i])p[++m]=i;
for(R int j=1;j<=m&&1ll*i*p[j]<=n;++j){
vis[i*p[j]]=1;
if(i%p[j]==0)break;
}
}
}
int main(){
// freopen("testdata.in","r",stdin);
init();
int T,n;scanf("%d",&T);
while(T--){
scanf("%d",&n);
switch(n%3){
case 0:{
for(R int i=1;i<=n;i+=3)printf("%d %d %d ",6*p[i+10],15*p[i+11],10*p[i+12]);
puts("");
break;
}
case 1:{
for(R int i=1;i<=n-4;i+=3)printf("%d %d %d ",6*p[i+10],15*p[i+11],10*p[i+12]);
printf("%d %d %d %d\n",2*7*p[n+10-3],7*11*p[n+10-2],11*13*p[n+10-1],13*2*p[n+10]);
break;
}
case 2:{
for(R int i=1;i<=n-5;i+=3)printf("%d %d %d ",6*p[i+10],15*p[i+11],10*p[i+12]);
printf("%d %d %d %d %d\n",2*7*p[n+10-4],7*11*p[n+10-3],
11*13*p[n+10-2],13*17*p[n+10-1],17*2*p[n+10]);
break;
}
}
}
return 0;
}

\(XYPIZQ\)

这好像是初中数学题……

话说中文版题面为啥不把\(x,y,z\)的限制条件写完整啊……

其实\(3\)和\(1\)差不多,\(2\)和\(4\)差不多,剩下的画画图就出来了

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define inline __inline__ __attribute__((always_inline))
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){
R int res,f=1;R char ch;
while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
return res*f;
}
int n,t,x,y,z,tmp;
void print(int a){
int g=__gcd(a,tmp);
printf("%d %d\n",a/g,tmp/g);
}
int main(){
// freopen("testdata.in","r",stdin);
for(int T=read();T;--T){
n=read(),t=read(),x=read(),y=read(),z=read(),tmp=2*n+1;
if(t==3)swap(x,z),t=1;else if(t==4)t=2;
if(t==1){
if(!y)print(1);
else if(x==z)print(x);
else print(tmp-z);
}else print(tmp-2*y);
}
return 0;
}

\(GRAPART\)

\(k=1\)的情况,就是奇数和偶数层数的节点个数相同

\(k\)最大等于\(2\)就够了,因为这样已经可以奇偶分层了。然后把所有叶子的颜色改一下就可以了

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define inline __inline__ __attribute__((always_inline))
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){
R int res,f=1;R char ch;
while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
return res*f;
}
char sr[1<<21],z[20];int K=-1,Z=0;
inline void Ot(){fwrite(sr,1,K+1,stdout),K=-1;}
void print(R int x){
if(K>1<<20)Ot();if(x<0)sr[++K]='-',x=-x;
while(z[++Z]=x%10+48,x/=10);
while(sr[++K]=z[Z],--Z);sr[++K]=' ';
}
const int N=10005;
struct eg{int v,nx;}e[N<<1];int head[N],tot;
inline void add(R int u,R int v){e[++tot]={v,head[u]},head[u]=tot;}
bool ans[N],lf[N];int n,res;
void dfs(int u,int fa){
lf[u]=1,ans[u]?++res:--res;
go(u)if(v!=fa)ans[v]=ans[u]^1,dfs(v,u),lf[u]=0;
}
int main(){
// freopen("testdata.in","r",stdin);
for(int T=read();T;--T){
n=read(),tot=0,res=0;
memset(head,0,(n+1)<<2);
for(R int i=1,u,v;i<n;++i)u=read(),v=read(),add(u,v),add(v,u);
dfs(1,0);
print(res?2:1),sr[K]='\n';
fp(i,1,n)if(lf[i]){
if(!ans[i]&&res<0)ans[i]=1,res+=2;
else if(ans[i]&&res>0)ans[i]=0,res-=2;
}
fp(i,1,n)if(ans[i])print(i);sr[K]='\n';
fp(i,1,n)if(!ans[i])print(i);sr[K]='\n';
}
return Ot(),0;
}

\(PARRTY\)

首先这题有两种暴力

一个是每次询问\(O(n+m)\)的,即枚举区间中的每一个位置,每次把所有和它有边相连的点打上标记,一旦查询到一个有标记的点说明就\(gg\)了

一个是每次询问\(O(k^2\log n)\)的,即我们建主席树,然后枚举询问,看看前面的其它询问区间里是否有元素

所以我们只要把这两种暴力结合起来就可以\(A\)了。法老说这叫设阈值,我觉得就是骗分啊……

我们设一个阈值\(S\),当\(k>S\)时使用第一种方法,当\(k<S\)时使用第二种方法,这样的话时间复杂度就是\(O({n^2\over S}+nS\log n)\),亲测取\(S=100\)的时候跑得飞快

据说还有大佬用莫队写的然而我不会就是了

//minamoto
#include<bits/stdc++.h>
#define R register
#define fi first
#define se second
#define inline __inline__ __attribute__((always_inline))
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=E[i].v;i;i=E[i].nx,v=E[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){
R int res,f=1;R char ch;
while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
return res*f;
}
const int N=2e5+5,M=(N<<7)+5;
inline void swap(R int &x,R int &y){R int t=x;x=y,y=t;}
struct node;typedef node* ptr;
struct node{
ptr lc,rc;int sz;
inline node();
}e[M],*rt[N];int cnt;
inline node::node(){lc=rc=e;}
void update(ptr &p,int l,int r,int x){
(e+(++cnt))->lc=p->lc,(e+cnt)->rc=p->rc,(e+cnt)->sz=p->sz+1,p=e+cnt;
if(l==r)return;int mid=(l+r)>>1;
x<=mid?update(p->lc,l,mid,x):update(p->rc,mid+1,r,x);
}
bool query(ptr p,ptr q,int l,int r,int ql,int qr){
if(p->sz-q->sz==0||ql<=l&&qr>=r)return p->sz-q->sz>0;
int mid=(l+r)>>1;
if(ql<=mid&&query(p->lc,q->lc,l,mid,ql,qr))return true;
if(qr>mid&&query(p->rc,q->rc,mid+1,r,ql,qr))return true;
return false;
}
struct eg{int v,nx;}E[N];int head[N],tot;
inline void add(R int u,R int v){E[++tot]={v,head[u]},head[u]=tot;}
bool vis[N];int n,m,q,S,k;pair<int,int>p[N];
int main(){
// freopen("testdata.in","r",stdin);
for(int T=read();T;--T){
n=read(),m=read(),S=100;
for(R int i=1,u,v;i<=m;++i){
u=read(),v=read();if(u<v)swap(u,v);
add(u,v);
}
rt[0]=e;
fp(u,1,n){
rt[u]=rt[u-1];
go(u)update(rt[u],1,n,v);
}
q=read();
while(q--){
k=read();bool flag=1;
fp(i,1,k)p[i].fi=read(),p[i].se=read();
sort(p+1,p+1+k);
if(k>S){
memset(vis,0,n+1);
for(R int i=k;i&&flag;--i)
for(R int j=p[i].se;j>=p[i].fi;--j){
if(vis[j]){flag=0;break;}
go(j)vis[v]=1;
}
}else{
for(R int i=1;i<=k&&flag;++i)
for(R int j=1;j<=i;++j){
if(query(rt[p[i].se],rt[p[i].fi-1],1,n,p[j].fi,p[j].se))
{flag=0;break;}
}
}
puts(flag?"YES":"NO");
}
memset(head,0,(n+1)<<2),tot=cnt=0;
}
return 0;
}

\(MXDIST\)

我很想知道为什么原题题面\(n\leq 200000\)而中文版题面里\(n\leq 50000\)……\(RE\)了一个上午去看了看原题题面才发现挂在哪里……

易知最远欧几里得距离肯定在凸包上,而且这个东西是用旋转卡壳做的。所以我们可以分块,设块的大小为\(S\),再对每块内部做一次凸包。关于两个凸包的合并,如果我们分别记录上凸壳和下凸壳,那么就可以做到合并\(O(n)\),其中\(n\)是两个凸包的大小总和。然后我们再开一个\(ST\)表,对于每个询问,先把零散的部分的凸包暴力求出来,然后再和整块的凸包合并,在上面跑旋转卡壳就可以知道答案了

然后我有几个问题不太明白……首先是为啥要分块之后再开\(ST\)表而不能直接开\(ST\)表,后来想了想是时间要炸,因为它\(ST\)表合并的时候一层的复杂度是\(2^i(n-2^i)\),如果分块之后可以把\(n\)降到\({n\over S}\)级别,也就是说通过增大后面询问的复杂度来把前期预处理的复杂度降下来

还有就是……这旋转卡壳的复杂度是\(O(凸包大小)\)的吧……那这玩意儿的复杂度是\(O(nq)\)的吧……我是不是只能理解为因为全是整数点很难构造出凸包上点数很多的数据啊……

//minamoto
#include<bits/stdc++.h>
#define R register
#define fi first
#define se second
#define ll long long
#define pb push_back
#define IT vector<pair<node,int> >::iterator
#define inline __inline__ __attribute__((always_inline))
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){
R int res,f=1;R char ch;
while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
return res*f;
}
char sr[1<<21],z[20];int C=-1,Z=0;
inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;}
void print(R ll x){
if(C>1<<20)Ot();if(x<0)sr[++C]='-',x=-x;
while(z[++Z]=x%10+48,x/=10);
while(sr[++C]=z[Z],--Z);sr[++C]='\n';
}
const int N=200005,S=15,L=15005;
struct node{
int x,y;
inline node(){}
inline node(R int xx,R int yy):x(xx),y(yy){}
inline node operator +(const node &b)const{return node(x+b.x,y+b.y);}
inline node operator -(const node &b)const{return node(x-b.x,y-b.y);}
inline ll operator *(const node &b)const{return 1ll*x*b.y-1ll*y*b.x;}
inline bool operator <(const node &b)const{return x<b.x||x==b.x&&y<b.y;}
inline ll norm(){return 1ll*x*x+1ll*y*y;}
}p[N];
struct Convex{
vector<node>up,dw;
inline Convex(){}
inline Convex(const vector<node> &b){up=b,dw=b,build();}
Convex operator +(const Convex &b)const{
Convex c;
c.up.resize(up.size()+b.up.size());
merge(up.begin(),up.end(),b.up.begin(),b.up.end(),c.up.begin());
c.dw.resize(dw.size()+b.dw.size());
merge(dw.begin(),dw.end(),b.dw.begin(),b.dw.end(),c.dw.begin());
c.build();
return c;
}
void build(){
int n=up.size(),m=0;
fp(i,0,n-1){
while(m>1&&(up[i]-up[m-2])*(up[m-1]-up[m-2])<=0)--m;
up[m++]=up[i];
}
up.resize(m);
n=dw.size(),m=0;
fp(i,0,n-1){
while(m>1&&(dw[i]-dw[m-2])*(dw[m-1]-dw[m-2])>=0)--m;
dw[m++]=dw[i];
}
dw.resize(m);
}
ll solve(){
vector<node>st=dw;
fd(i,up.size()-2,0)st.pb(up[i]);
int n=st.size()-1;ll res=0;
for(R int i=0,j=1;i<n;++i){
while((st[j+1]-st[i]).norm()>(st[j]-st[i]).norm())j=(j+1)%n;
cmax(res,(st[j]-st[i]).norm()),cmax(res,(st[j+1]-st[i+1]).norm());
}
return res;
}
}st[L][17];
int n,m,Log[L],rt[N];vector<pair<node,int> >c[L];
Convex rmq(int l,int r){
if(l>r)return Convex();
int k=Log[r-l+1];
return st[l][k]+st[r-(1<<k)+1][k];
}
int main(){
// freopen("testdata.in","r",stdin);
// freopen("testdata.out","w",stdout);
n=read(),m=(n-1)/S+1;
fp(i,1,n)p[i].x=read(),p[i].y=read(),rt[i]=(i-1)/S+1;
fp(i,1,m){
int l=(i-1)*S+1,r=min(n,i*S);
fp(j,l,r)c[i].pb(make_pair(p[j],j));
sort(c[i].begin(),c[i].end());
vector<node>point;
for(IT it=c[i].begin();it!=c[i].end();++it)point.pb(it->fi);
st[i][0]=Convex(point);
}
fp(i,2,m)Log[i]=Log[i>>1]+1;
fp(j,1,Log[m])fp(i,1,m-(1<<j)+1)st[i][j]=st[i][j-1]+st[i+(1<<(j-1))][j-1];
int q=read(),l,r;
while(q--){
l=read(),r=read();
if(rt[l]==rt[r]){
vector<node>point;
for(IT it=c[rt[l]].begin();it!=c[rt[l]].end();++it)
if(it->se>=l&&it->se<=r)point.pb(it->fi);
Convex res(point);
print(res.solve());
}else{
vector<node>pointl,pointr;
for(IT it=c[rt[l]].begin();it!=c[rt[l]].end();++it)
if(it->se>=l&&it->se<=r)pointl.pb(it->fi);
for(IT it=c[rt[r]].begin();it!=c[rt[r]].end();++it)
if(it->se>=l&&it->se<=r)pointr.pb(it->fi);
Convex res=rmq(rt[l]+1,rt[r]-1)+Convex(pointl)+Convex(pointr);
print(res.solve());
}
}
return Ot(),0;
}

Code Chef January Challenge 2019题解的更多相关文章

  1. Code Chef February Challenge 2019题解

    传送门 \(HMAPPY2\) 咕 话说这题居然卡\(scanf\)的么??? int T;cin>>T; while(T--){ cin>>n>>a>> ...

  2. Code Chef May Challenge 2019题解

    传送门 \(REDONE\) 贡献可以拆成\(X(Y+1)+Y\),那么一个数\(x\)的贡献对最终答案的贡献就是\(x(a_1+1)(a_2+1)...\),那么最终答案肯定是\(\sum\limi ...

  3. Code Chef October Challenge 2019题解

    传送门 \(MSV\) 设个阈值搞一搞就行了 //quming #include<bits/stdc++.h> #define R register #define pb emplace_ ...

  4. Code Chef JUNE Challenge 2019题解

    题面 \(SUMAGCD\) 先去重,易知答案一定是一个数单独一组剩下的一组,前缀后缀\(gcd\)一下就行了 //quming #include<bits/stdc++.h> #defi ...

  5. Code Chef April Cook-Off 2019题解

    传送门 \(PEWDSVTS\) 我哪根筋不对了要把所有可行的拿出来\(sort\)一下--还有忘开\(long\ long\)真的好难受-- int main(){ // freopen(" ...

  6. Code Chef December Challenge 2018题解

    传送门 \(MAXEP\) 二分,不过二分的时候要注意把\(mid\)设成\(\left\lfloor{9l+r\over 10}\right\rfloor\),这样往右的次数不会超过\(6\)次 / ...

  7. CodeChef April Challenge 2019题解

    传送门 \(Maximum\ Remaining\) 对于两个数\(a,b\),如果\(a=b\)没贡献,所以不妨假设\(a<b\),有\(a\%b=a\),而\(b\%a<a\).综上, ...

  8. CodeChef March Challenge 2019题解

    传送门 \(CHNUM\) 显然正数一组,负数一组 for(int T=read();T;--T){ n=read(),c=d=0; fp(i,1,n)x=read(),x>0?++c:++d; ...

  9. CodefChef September Challenge 2019 题解

    传送门 \(CHEFK1\) 首先连出一个环和所有的自环,剩下的每次按\(n\)个一连就可以了 //quming #include<bits/stdc++.h> #define R reg ...

随机推荐

  1. css常用属性初总结:伪元素和伪元素

    前面几遍中我们分别说到了id选择器和class选择器,以及它们的区别和联系,下面大家一起来探究一下神奇的为类和伪元素吧. 其实以前我对伪类和伪元素也是搞得稀里糊涂的,现在决定剥开它神秘的外衣,首先,究 ...

  2. ColorMask

    [ColorMask] When using multiple render target (MRT) rendering, it is possible to set up different co ...

  3. Linux C多线程实现生产者消费者

    今天学习了用Linux C进行线程的同步,实现类似生产者消费者的问题.下面我就来分享我的代码 #include<stdio.h> #include<pthread.h> #in ...

  4. react-native 打包 出apk

    先上步骤: 一. 生成签名文件(my-release-key.keystore文件) Android要求所有应用都有一个数字签名才会被允许安装在用户手机上 1.  在项目目录下运行如下命令: keyt ...

  5. ubuntu14.04环境下利用docker搭建solrCloud集群

    在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器 ...

  6. 二叉树中和为某一值的路径 (java)

    问题描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 题解 import java.util.Arra ...

  7. [Selenium]点击下拉框之后,从下拉列表选择元素进行点击很容易失败

    点击下拉框之后,下拉列表会显示出来,但是有时候下拉列表会很快就消失掉,导致后面选择元素的时候会失败. 像这种情况,需要将鼠标移动到下拉列表上,使下拉列表维持显示,然后才选择元素进行点击. 将鼠标移动到 ...

  8. 关闭Found duplicated code

    IDEA中的这个“发现重复代码 - Found duplicated code“的这个提示甚是烦躁. Settings —> Editor —> Inspections —> Gen ...

  9. python机器学习工具包scikit-learn

    scikit-learn这个非常强大的python机器学习工具包 http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.ht ...

  10. 一起做RGB-D SLAM(7) (完结篇)

    第七讲 添加回环检测 2016.11 更新 把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了. 回环检测的阈值作出了相应的调整. 请以现在的github上源码为准. 简 ...