20191008,10,12

2019.10.08

T1 20pts

考试时\(n^2\)写挂,最后也不知道\(x\)用来干啥。
70pts: \(\mathcal{O}(n^2)\),
令 \(f_i\) 表示一行和为 \(i\) 的方案数。显然
\(f_i={m \choose i}x^{m-i}y^i\)
令 \(g_i\) 表示一行和大于等于 \(i\) 的方案数。
考虑枚举最大值是多少,多少个 \(B\) 是等于这个最大值,那么答案显然为
\(\sum_{i=0}^m\sum_{j=1}^n{n\choose j}f_i^jg_{i+1}^{n-j}i\)
100pts:
想一想,发现最小值为 \(i\) 的方案数为:\(g_i^n-g_{i+1}^n\)。

#include<bits/stdc++.h>
#define R register int
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
} const int N=200010,M=1000000007;
int n,m,x,y,fac[N],Inv[N],rfac[N],sum[N],a[100],ans;
inline int C(int n,int m) {
    return 1ll*fac[n]*rfac[m]%M*rfac[n-m]%M;
}
inline int qpow(int a,int b) { R ret=1;
    for(;b;b>>=1,a=1ll*a*a%M) if(b&1) ret=1ll*ret*a%M; return ret;
}
inline void main() {
//  freopen("past.in","r",stdin);
//  freopen("past.out","w",stdout);
//  n=g(),m=g(),x=g(),y=g();
//  fac[0]=fac[1]=1; for(R i=2;i<=max(n,m);++i) fac[i]=1ll*fac[i-1]*i%M;
//  Inv[0]=Inv[1]=1; for(R i=2;i<=max(n,m);++i) Inv[i]=M-1ll*M/i*Inv[M%i]%M;
//  rfac[0]=rfac[1]=1; for(R i=2;i<=max(n,m);++i) rfac[i]=1ll*rfac[i-1]*Inv[i]%M;
//  for(R k=m;k>=0;--k) {
//      R tmp=1ll*C(m,k)*qpow(x,m-k)%M*qpow(y,k)%M,inv=qpow(sum[k+1],M-2);
//      R t=tmp,I=qpow(sum[k+1],n-1); R ttt=1ll*C(m,k)*qpow(x,m-k)%M*qpow(y,k)%M;
//      for(R i=1;i<=n;++i) {
//          if(n==i) I=1;
//          ans=(ans+1ll*C(n,i)*tmp%M*I%M*k)%M;
//          tmp=1ll*tmp*t%M,I=1ll*I*inv%M;
//      } sum[k]=(sum[k+1]+1ll*C(m,k)*qpow(x,m-k)%M*qpow(y,k))%M;
//  } printf("%d\n",ans);
    n=g(),m=g(),x=g(),y=g();
    fac[0]=fac[1]=1; for(R i=2;i<=max(n,m);++i) fac[i]=1ll*fac[i-1]*i%M;
    Inv[0]=Inv[1]=1; for(R i=2;i<=max(n,m);++i) Inv[i]=M-1ll*M/i*Inv[M%i]%M;
    rfac[0]=rfac[1]=1; for(R i=2;i<=max(n,m);++i) rfac[i]=1ll*rfac[i-1]*Inv[i]%M;
    for(R i=m;~i;--i) sum[i]=(sum[i+1]+1ll*C(m,i)*qpow(x,m-i)%M*qpow(y,i))%M;
    for(R i=1;i<=m;++i) ans=(ans+1ll*(qpow(sum[i],n)-qpow(sum[i+1],n)+M)*i%M)%M;
    printf("%d\n",ans);
}
} signed main() {Luitaryi::main(); return 0;}

T2 60pts

操作树。。。考试时失了智写的压位。。。于是改题时接着压位。。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#define ll long long
#define R register int
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
}   const int M=100010; const short B=32; const unsigned E=-1,S=31,T=5;
unsigned mem[31255]; int n,m,k,ans[M],sum;
#define P(i,j) ((i-1)*m+j-1)
struct node {int op,h,l;}q[M];
vector <int> e[M];
const unsigned char __popcount_tab[] = {
  0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
  1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
  1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
  2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
  1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
  2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
  2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
  3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
};

inline int __builtin_popcount (unsigned x) {
  return __popcount_tab[(x >> 0) & 0xff]  + __popcount_tab[(x >>  8) & 0xff]  + __popcount_tab[(x >> 16) & 0xff] + __popcount_tab[(x >> 24) & 0xff];
}
inline void operation(int whi) {
    register short p1,p2,q1,q2;
    register unsigned ll tmp;
    register int pos1,pos2,pos;
    register int op=q[whi].op,h=q[whi].h,l=q[whi].l;
    if(op==1) {pos=P(h,l); p1=pos>>T,p2=pos&S; ((mem[p1]>>(p2))&1)?--sum:++sum; mem[p1]^=(1u<<p2);}
    else if(op==2) {
        pos1=P(h,1),pos2=P(h,m),p1=pos1>>T,q1=pos2>>T;
        if(p1==q1) { p2=pos1&S,q2=pos2&S;
            tmp=((((mem[p1]>>p2)<<p2)<<(B-q2-1)));
            sum+=(pos2-pos1+1-2*__builtin_popcount(tmp));
            tmp=(((E>>p2)<<p2)<<(B-q2-1))>>(B-q2-1); mem[p1]^=tmp;
        } else if(p1+1==q1) {
            p2=pos1&S,q2=pos2&S;tmp=mem[p1]>>p2;
            sum+=(B-p2-2*__builtin_popcount(tmp));
            tmp=(E>>p2)<<p2;mem[p1]^=tmp,q2=B-q2-1;tmp=mem[q1]<<q2;
            sum+=(B-q2-2*__builtin_popcount(tmp));
            tmp=(E<<q2)>>q2;mem[q1]^=tmp;
        } else {
            p2=pos1&S,q2=pos2&S;tmp=mem[p1]>>p2;
            sum+=(B-p2-2*__builtin_popcount(tmp));
            tmp=(E>>p2)<<p2;mem[p1]^=tmp;q2=B-q2-1;tmp=mem[q1]<<q2;
            sum+=(B-q2-2*__builtin_popcount(tmp));
            tmp=(E<<q2)>>q2;mem[q1]^=tmp;
            for(R j=p1+1,lim=q1-1;j<=lim;++j)
                sum+=(B-2*__builtin_popcount(mem[j])),mem[j]^=E;
        }
    } else if(op==3) {
        pos=P(0,l); for(R j=1;j<=n;++j) { pos+=m; p1=pos>>T,p2=pos&S;
            ((mem[p1]>>p2)&1)?--sum:++sum; mem[p1]^=1u<<p2;
        }
    }
}
inline void dfs(int u) { operation(u); ans[u]=sum;
    for(R i=0,lim=e[u].size();i<lim;++i) dfs(e[u][i]); operation(u);
}
inline void main() {
    n=g(),m=g(),k=g();
    for(R i=1,op;i<=k;++i) { op=q[i].op=g();
        if(op==1) q[i].h=g(),q[i].l=g(); if(op==2) q[i].h=g();
        if(op==3) q[i].l=g(); if(op==4) q[i].h=g(),e[q[i].h].push_back(i);
        else e[i-1].push_back(i);
    } dfs(0); for(R i=1;i<=k;++i) printf("%d\n",ans[i]);
}
} signed main() {Luitaryi::main(); return 0;}

T3 0pts

由于关键节点很少,考虑状压。
我们发现,如果按顺序从小到大填入数字,必须先填关键点,再填关键点旁边的点。
我们要先预处理与关键点有关的点的点集(同时包括关键点)。
设\(f[i][S]\)表示这个点集中填了\(i\)个点,关键点的状态是\(S\)。
转移:填一个关键点,或填一个与关键点有关的点。

#include<bits/stdc++.h>
#define R register int
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
} const int N=10010,M=1000000007;
const int dx[]={-1,0,1,-1,0,1,-1,0,1},dy[]={1,1,1,0,0,0,-1,-1,-1};
struct node { int x,y; node() {}
    node(int _x,int _y) {x=_x,y=_y;}
}; vector <node> s; bool flg[150][150],vis[150];
int n,m,k,h[N],lim,fac[N],rfac[N],x[N],y[N],f[150][N];
inline int qpow(int a,int b) { R ret=1;
    for(;b;b>>=1,a=1ll*a*a%M) if(b&1) ret=1ll*ret*a%M; return ret;
}
inline void main() {
    n=g(),m=g(),k=g(); lim=1<<k;
    //freopen("out.out","w",stdout);
    fac[0]=fac[1]=1; for(R i=2;i<=n*m;++i) fac[i]=1ll*fac[i-1]*i%M;
    rfac[n*m]=qpow(fac[n*m],M-2); rfac[0]=rfac[1]=1;
    for(R i=n*m;i>=3;--i) rfac[i-1]=1ll*rfac[i]*i%M;
    for(R i=0;i<k;++i) x[i]=g(),y[i]=g();
    for(R i=0;i<k;++i) for(R j=0;j<9;++j) {
        R X=x[i]+dx[j],Y=y[i]+dy[j];
        if(X<1||X>n||Y<1||Y>m||flg[X][Y]) continue;
        flg[X][Y]=true,s.push_back(node(X,Y));
    }
    for(R i=0;i<lim;++i) {
        memset(vis,0,sizeof vis);
        for(R j=0;j<k;++j) if(!(i>>j&1)) {
            for(R l=0;l<s.size();++l)
                if(!(s[l].x==x[j]&&s[l].y==y[j])&&abs(s[l].x-x[j])<=1&&abs(s[l].y-y[j])<=1)
                    vis[l]=1;
        } for(R j=0;j<s.size();++j) if(vis[j]) ++h[i];
    } f[0][0]=1;
    for(R i=0;i<s.size();++i) {
        for(R j=0;j<lim;++j) { R num=0;
            for(R l=0;l<k;++l) if(!(j>>l&1))
                (f[i+1][j^(1<<l)]+=f[i][j])%=M,++num;
            if(s.size()-i-h[j]-num>0) f[i+1][j]=(f[i+1][j]+1ll*(s.size()-i-h[j]-num)*f[i][j])%M;//判断能否填与关键点有关的点
        }
    } printf("%d\n",1ll*f[s.size()][lim-1]*fac[n*m]%M*rfac[s.size()]%M);
}
} signed main() {Luitaryi::main(); return 0;}

2019.10.10

T1 100pts

没话。
%最小生成树的那个神仙

#include<bits/stdc++.h>
#define R register int
#define ll long long
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
} const int N=1010,M=1000010;
int n,m,tx,ty,cnt; char s[N];
int vr[M<<2],nxt[M<<2],fir[M],w[M<<2],d[M];
bool vis[M],a[N][N];
inline void add(int u,int v,int ww) {
    vr[++cnt]=v,nxt[cnt]=fir[u],fir[u]=cnt,w[cnt]=ww;
    vr[++cnt]=u,nxt[cnt]=fir[v],fir[v]=cnt,w[cnt]=ww;
}
#define P(i,j) ((i-1)*m+j)
priority_queue<pair<int,int> > q;
inline void dijk() {
    memset(d,0x3f,sizeof d); d[P(n,1)]=0;
    q.push(make_pair(0,P(n,1)));
    while(q.size()) { R u=q.top().second; q.pop();
        if(vis[u]) continue; vis[u]=1;
        for(R i=fir[u];i;i=nxt[i]) { R v=vr[i];
            if(d[v]>max(d[u],w[i])) {
                d[v]=max(d[u],w[i]);
                q.push(make_pair(-d[v],v));
            }
        }
    }
}
inline void main() {
    n=g(),m=g(); for(R i=1;i<=n;++i) {
        scanf("%s",s+1); for(R j=1;j<=m;++j) a[i][j]=(s[j]=='#');
    } tx=g(),ty=g();
    for(R i=1;i<=n;++i) for(R j=1;j<=m;++j) if(a[i][j]) { R p=1;
        while(i-p>0&&!a[i-p][j]) ++p;
        if(i-p>0) add(P(i,j),P(i-p,j),p);
        if(a[i][j-1]) add(P(i,j),P(i,j-1),0);
        //if(a[i][j+1]) add(P(i,j),P(i,j+1),0);
    } dijk(); printf("%d\n",d[P(tx,ty)]);
}
} signed main() {Luitaryi::main(); return 0;}

T2

我们假设刚开始所有数都在集合 \(A\),而集合 \(B\) 是空的。
所以我们有 \(R_A-L_B>R_B-L_A\) (显然吧)
然后我们可以把 \(A\) 中的一些东西转到 \(B\) 中,设所有转移的两个端点和分别为\(l,r\)
\(R_A-r-(L_B+l)>(R_B+r)-(L_A-l)\)
\(R_A-R_B+L_A-L_B>2*(l+r)\)
于是背包。
奉上最短的代码:

#include<bits/stdc++.h>
using namespace std;int l,r,R,s;bitset<40001>f=1;main(){for(cin>>l;cin>>l>>r;)R+=r,s+=l+=r,f|=f<<l;for(s/=2;!f[s];--s);cout<<R-s;}

T3 0pts

考场上把 change 和 query 写到一起,成功保龄
我们发现模数很奇怪,于是打打表,发现平方一会就不变了。。。于是和区间开根基本一样了。

#include<bits/stdc++.h>
#define R register int
#define ll unsigned long long
using namespace std;
namespace Luitaryi {
inline ll g() { register ll x=0;
    register char ch; while(!isdigit(ch=getchar()));
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x;
}
inline int gi() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x;
} const int N=65540; const ll M=2305843008676823040ull;
int n,m; ll sum[N<<2]; bool flg[N<<2];
#define ls (tr<<1)
#define rs (tr<<1|1)
inline void mod(ll& a,ll b) {a+=b; if(a>=M) a-=M;}
inline ll mode(ll a,ll b) {a+=b; if(a>=M) a-=M; return a;}
inline ll mul(ll a,ll b) {
    register unsigned __int128 t=a;
    t=t*b%M; return t;
}
inline void build(int tr,int l,int r) {
    if(l==r) {sum[tr]=g(); return ;} R md=l+r>>1;
    build(ls,l,md),build(rs,md+1,r); sum[tr]=(sum[ls]+sum[rs])%M;
}
inline void change(int tr,int l,int r,int LL,int RR) {
    if(l==r) { register ll tmp=sum[tr];
        sum[tr]=mul(sum[tr],sum[tr]);
        flg[tr]=(sum[tr]==tmp); return ;
    } R md=l+r>>1;
    if(LL<=md&&!flg[ls]) change(ls,l,md,LL,RR);
    if(RR>md&&!flg[rs]) change(rs,md+1,r,LL,RR);
    sum[tr]=mode(sum[ls],sum[rs]); flg[tr]=flg[ls]&&flg[rs];
}
inline ll query(int tr,int l,int r,int LL,int RR) {
    if(LL<=l&&r<=RR) return sum[tr]; R md=l+r>>1; register ll ret=0;
    if(LL<=md) ret=query(ls,l,md,LL,RR);
    if(RR>md) mod(ret,query(rs,md+1,r,LL,RR)); return ret;
}
inline void main() {
    n=gi(),m=gi(); build(1,1,n);
    for(R i=1,l,r;i<=m;++i)
        l=gi(),r=gi(),printf("%llu\n",query(1,1,n,l,r)),change(1,1,n,l,r);
}
} signed main() {Luitaryi::main(); return 0;}

2019.10.12

T1 90pts

大模拟。。。有一个点写错了,竟然还有分(万幸)

#include<bits/stdc++.h>
#define R register int
#define ll long long
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
}
inline int g(char* s) { R x=0,f=1;
    register char ch; while(!isdigit(ch=*s++)) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=*s++)); return x*f;
} const int N=10;
char s[5]; int a[N],b[N],anss[N],c[N<<1],ans=8,tp;
inline void main() {
    for(R i=1;i<=7;++i) {
        scanf("%s",s); if(isalpha(s[0])) {
            if(s[0]=='A') a[i]=14; if(s[0]=='J') a[i]=11;
            if(s[0]=='Q') a[i]=12; if(s[0]=='K') a[i]=13;
        } else a[i]=g(s);
    } swap(a[1],a[6]),swap(a[2],a[7]);
    for(R i=1;i<=7;++i) for(R j=i+1;j<=7;++j)
    for(R k=j+1;k<=7;++k) for(R l=k+1;l<=7;++l)
    for(R m=l+1;m<=7;++m) {
        memset(c,0,sizeof c),tp=7;
        b[1]=a[l],b[2]=a[m],b[3]=a[i],b[4]=a[j],b[5]=a[k];
        sort(b+1,b+6,greater<int>()); for(R t=1;t<=5;++t) {
            ++c[b[t]]; if(c[b[t]]==4) tp=1;
            else if(c[b[t]]==3) {
                if(tp==5) tp=2; else tp=4;
            } else if(c[b[t]]==2) {
                if(tp==6) tp=5; else if(tp==4) tp=2; else tp=6;
            }
        } register bool fg=true;
        if(tp==7) {for(R t=2;t<=5;++t) fg&=(b[t-1]-b[t]==1); if(fg) tp=3;
            else if(b[1]==14) { R p=1; fg=true;
                while(b[p]==14) b[p]=1,++p;
                sort(b+1,b+6,greater<int>());
                for(R t=2;t<=5;++t) fg&=(b[t-1]-b[t]==1);
                if(fg) tp=3;
                p=5; while(b[p]==1) b[p]=14,--p;
                if(!fg) sort(b+1,b+6,greater<int>());
            }
        }
        if(tp<ans) ans=tp,memcpy(anss,b,sizeof anss);
        else if(tp==ans) {
            for(R t=1;t<=5;++t) {
                if(b[t]>anss[t]) {
                    memcpy(anss,b,sizeof anss); break;
                } if(b[t]<anss[t]) break;
            }
        }
    }
    for(R i=1;i<=5;++i) {
        if(anss[i]>10) {
            if(anss[i]==11) putchar('J'); if(anss[i]==12) putchar('Q');
            if(anss[i]==13) putchar('K'); if(anss[i]==14) putchar('A');
            putchar(' ');
        } else printf("%d ",anss[i]);
    }
}
} signed main() {Luitaryi::main(); return 0;}

T2 50pts

竟然写的二分差值。。。但是0怎么办?(又是万幸没卡死我)
于是我们发现,当我们取的数越接近这段的平均数,越优。
又因为序列是不减的,所以平均数也是不减的,所以平均数的位置也是不减的。
%那个写斜率优化的神仙

#include<bits/stdc++.h>
#define R register int
#define ll long long
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
    register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
    do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
} const int N=100010;
int n,k,a[N],t=1;
ll p[N],ps[N],ans=4e18;
inline void main() {
    n=g(),k=g(); for(R i=1;i<=n;++i) a[i]=g();
    for(R i=1;i<=n;++i) p[i]=p[i-1]+a[i];
    for(R i=1;i<=n;++i) ps[i]=ps[i-1]+1ll*a[i]*a[i];
    for(R i=k,LL,RR;i<=n;++i) { LL=i-k,RR=i;
        while(1ll*k*a[t]*a[t]-2*a[t]*(p[RR]-p[LL])+ps[RR]-ps[LL]>=
                    1ll*k*a[t+1]*a[t+1]-2*a[t+1]*(p[RR]-p[LL])+ps[RR]-ps[LL]&&t<RR) ++t;
        ans=min(ans,1ll*k*a[t]*a[t]-2*a[t]*(p[RR]-p[LL])+ps[RR]-ps[LL]);
    } printf("%lld\n",ans);
}
} signed main() {Luitaryi::main(); return 0;}

T3

咕?

原文地址:https://www.cnblogs.com/Jackpei/p/11675328.html

时间: 2024-10-02 21:55:42

20191008,10,12的相关文章

Android基础入门教程——10.12 传感器专题(3)——加速度-陀螺仪传感器

Android基础入门教程--10.12 传感器专题(3)--加速度/陀螺仪传感器 标签(空格分隔): Android基础入门教程 本节引言: 本节继续来扣Android中的传感器,本节带来的是加速度传感器(Accelerometer sensor)以及 陀螺仪传感器(Gyroscope sensor),和上一节的方向传感器一样有着x,y,z 三个轴, 还是要说一点:x,y轴的坐标要和绘图那里的x,y轴区分开来!传感器的是以左下角 为原点的!x向右,y向上!好的,带着我们的套路来学本节的传感器吧

黑苹果10.12 sierra 安装笔记

先上成果 再说感慨 有钱还是直接上mbp或者imac吧,比较折腾. 当然不想太折腾又想装黑苹果,也是可以滴.去 Tonymacx86根据配置单攒机,照着教程做,会节省不少时间,我是早就买台式机了,所以不能照那个来 软硬件准备 台式机 cpu:i7-4790k 主板:华硕 z87-k 显卡:hd4600 网卡:淘宝买的兼容黑苹果的usb网卡 显示器连接线:hdmi或者dvi线(vga基本黑屏) 软件工具都放到百度盘里https://pan.baidu.com/s/1hs1dfvA 制作u盘系统盘

Mac OS X 10.12.5下Anaconda中JupyterNotebook出现&quot;不理解“open location”信息。 (-1708)&quot;错误的解决方法

在更新Mac OS X 10.12.5后,发现当通过Anaconda打开JupyterNotebook时出现了以下错误,而且JupyterNotebook并没有通过浏览器启动 我们退出Anaconda,系统提示是否退出JupyterNotebook,这说明JupyterNotebook已经在8888端口上运行了 我们在浏览器地址栏输入(http://localhost:8888)就可以跳转到JupyterNotebook页面,但此时我们会发现页面要求我们输入密码 但这个密码之前并没有被设置过,尝

xxx.app已损坏,打不开.你应该将它移到废纸篓 macOS 10.12 Sierra

出现这个问题的解决方法: 修改系统配置:系统偏好设置... -> 安全性与隐私.修改为任何来源 如果没有这个选项的话 (macOS Sierra 10.12) ,打开终端,执行 sudo spctl --master-disable 即可. 重点是这一行命令: sudo spctl --master-disable Rference MAC应用无法打开或文件损坏的处理方法

Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统 + Parallels Desktop 12 Pro Edition)

Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统) 前言 由于学校课程实验的要求,特意需要搭建hadoop的完全分布式系统,所以自己就蛋疼的配了,可惜关于MAC系统的Hadoop搭建材料太少,而且真正的基于校园网的配置基本上没有(基本是在一台电脑上进行,因此当在多台电脑上运行会有许多bug),因此这里想要能够将自己搭的过程想要分享给大家,可能有些配置的解释没有那么全面,所以希望大家见谅?? 环境 基于Mac OSX 10.12.4(Sierra).Ubuntu

解决 VMWARE MAC 10.12无法全屏的问题

昨天我在VMware上装了10.10,然后通过APP store 升级了系统到 10.12,升级前安装VMware tools 能自动全屏,可是升级后不行. 然后在网上查了很多资料,发现并没有这方面的解释,所以我写一下自己的解决步骤. 导致这个的原因是因为苹果在OSX 10.11上启动了一个System Integrity Protection (SIP),这个保护系统防止/library/preferences/systemconfiguration/com.apple.Boot.plist

升级到macOS 10.12 mysqlb报错ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)

系统升级到macOS 10.12后启动mysql后,在终端输入mysql 报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决办法1 在系统偏好设置里关闭mySQL2 $ cd /usr/bin3 $ sudo mysqld_safe --skip-grant-tables4 再打开一个终端$ mysqlmysql> use mysql;mysql> UPDATE

macOS Sierra(10.12.6), odoo(11.0), Python(3.5.4)配置

欣闻odoo11支持python3环境了,赶紧在mac平台尝试一下: 前期设置,参考另篇文章:macOS Sierra 10.12.6 odoo 10.0 开发环境配置 因为odoo11尚未正式发布,11版本号源码分支还没有建立,我们从master分支获取最新11源码,为了加快速度,仅获取最新源码,以后可以删除odoo11目录,重复本操作更新至最新源码: cd ~/odoo-dev/odoo git clone https://github.com/odoo/odoo.git --depth 1

Mac OS 10.12 - 安装任何来源软件!!

今天想安装一个从网上下载的软件到Mac OS 10.12中,结果没有想到Mac告诉我那个软件已经损坏,害得我删除了!! 最后通过热心网友的帮助,顺利解决了这个安装问题,重新安装并且使用上了这款软件,下面就是解决方法: 一,在shell里面输入命令: sudo spctl --master-disable 二,查看Mac OS 10.12是否已经允许安装任何来源软件,如果允许就可以安装任何来源软件了. 1,点击苹果图标,随后点击"系统偏好设置". 2,点击"安全性与隐私&quo