题解:

solution

Code:

A. Apple Business

#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
const int N=100010;
int Case,len[N],n,m,i,mx,a[N],size[N],tmp[N];ll ans;
vector<ll>v[N],f[N];
struct E{int u,v,c,w;}e[N];
inline bool cmp(const E&a,const E&b){return a.w>b.w;}
void dfs(int x,int y){
if(x>n)return;
if(y>mx)mx=y;
tmp[y]=a[x];
dfs(x<<1,y<<1);
dfs(x<<1|1,y<<1|1);
}
inline void init(int o){
mx=0;
dfs(o,1);
size[o]=mx;
v[o].resize(mx+1);
f[o].resize(mx+1);
for(int i=1;i<=mx;i++)v[o][i]=f[o][i]=tmp[i];
}
inline int getid(int x,int y){
int k=1<<(len[y]-len[x]);
return (y&(k-1))|k;
}
inline void append(int A,int B,int C,int W){
int x,y,o,t,m;
for(x=A;x;x>>=1){
o=getid(x,B);
m=size[x];
ll dp=f[x][o];
for(y=o>>1;y;o=y,y>>=1){
dp+=v[x][y];
t=y<<1;
if(t<=m&&t!=o&&f[x][t]<0)dp+=f[x][t];
t=y<<1|1;
if(t<=m&&t!=o&&f[x][t]<0)dp+=f[x][t];
}
if(dp<C)C=dp;
}
if(!C)return;
ans+=1LL*C*W;
for(x=A;x;x>>=1){
o=getid(x,B);
m=size[x];
v[x][o]-=C;
f[x][o]-=C;
for(y=o>>1;y;y>>=1){
f[x][y]=v[x][y];
t=y<<1;
if(t<=m&&f[x][t]<0)f[x][y]+=f[x][t];
t=y<<1|1;
if(t<=m&&f[x][t]<0)f[x][y]+=f[x][t];
}
}
}
int main(){
for(i=1;i<N;i++)len[i]=len[i>>1]+1;
scanf("%d",&Case);
while(Case--){
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
for(i=1;i<=n;i++)init(i);
for(i=1;i<=m;i++)scanf("%d%d%d%d",&e[i].u,&e[i].v,&e[i].c,&e[i].w);
sort(e+1,e+m+1,cmp);
ans=0;
for(i=1;i<=m;i++)append(e[i].u,e[i].v,e[i].c,e[i].w);
printf("%lld\n",ans);
}
}

  

B. Balanced Diet

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=100010;
int T,n,m,i,j,k,l[N];ll f[N],s,A,B,d;
struct E{int a,b;}e[N];
inline bool cmp(const E&a,const E&b){return a.b==b.b?a.a>b.a:a.b<b.b;}
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)scanf("%d",&l[i]);
for(i=1;i<=n;i++)scanf("%d%d",&e[i].a,&e[i].b);
sort(e+1,e+n+1,cmp);
for(i=1;i<=n;i++)f[i]=0;
for(i=1;i<=n;i=j){
for(j=i;j<=n&&e[i].b==e[j].b;j++);
s=0;
for(k=i;k<j;k++){
s+=e[k].a;
if(k-i+1==l[e[i].b])f[k-i+1]+=s;
if(k-i+1>l[e[i].b])f[k-i+1]+=e[k].a;
}
}
for(i=1;i<=n;i++)f[i]+=f[i-1];
A=f[1],B=1;
for(i=2;i<=n;i++)if(f[i]*B>A*i)A=f[i],B=i;
d=gcd(A,B);
printf("%lld/%lld\n",A/d,B/d);
}
}

  

C. Line-line Intersection

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=100010;
int Case,n,i;pair<ll,pair<ll,ll> >f[N],g[N];
inline ll myabs(ll x){return x>0?x:-x;}
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
inline ll cal(pair<ll,pair<ll,ll> >f[]){
int i,j;
ll ret=0;
sort(f+1,f+n+1);
for(i=1;i<=n;i=j){
for(j=i;j<=n&&f[i]==f[j];j++);
ret+=1LL*(j-i)*(j-i-1);
}
return ret/2;
}
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d",&n);
for(i=1;i<=n;i++){
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
int dx=x2-x1,dy=y2-y1;
ll a,b,c;
if(dx==0){
a=1;
b=0;
c=-x1;
}else{
a=-dy;
b=dx;
c=1LL*dy*x1-1LL*dx*y1;
}
if(a<0)a=-a,b=-b,c=-c;
if(a==0&&b<0)b=-b,c=-c;
ll d=gcd(myabs(a),gcd(myabs(b),myabs(c)));
a/=d,b/=d,c/=d;
f[i].first=a,f[i].second.first=b,f[i].second.second=c;
d=gcd(myabs(a),myabs(b));
a/=d,b/=d;
g[i].first=a,g[i].second.first=b,g[i].second.second=0;
}
printf("%lld\n",1LL*n*(n-1)/2-cal(g)+cal(f));
}
}

  

D. Master of Data Structure

#include<cstdio>
#include<cstring>
#include<cstdlib>
const int N=500010,M=2010,K=M*4,inf=~0U>>1;
int Case,n,m,i,o,x,y,z,root,op[M][4];
int vip[N],g[N],v[N<<1],nxt[N<<1],ed,f[N],d[N],id[N],cnt;
int at[K],G[K],W[K],NXT[K],F[K],D[K];
int vv[K],ve[K];
inline void add(int x,int y){v[++ed]=y;nxt[ed]=g[x];g[x]=ed;}
inline void addedge(int x,int y,int z){NXT[y]=G[x];G[x]=y;W[y]=z;}
inline void umin(int&a,int b){a>b?(a=b):0;}
inline void umax(int&a,int b){a<b?(a=b):0;}
inline int abs(int x){return x>0?x:-x;}
inline void swap(int&a,int&b){int c=a;a=b;b=c;}
void dfs(int x){
int deg=0;
for(int i=g[x];i;i=nxt[i]){
int u=v[i];
if(u==f[x])continue;
f[u]=x;
d[u]=d[x]+1;
dfs(u);
if(!id[u])continue;
deg++;
id[x]^=id[u];
}
if(deg>1)vip[x]=1;
if(!vip[x])return;
id[x]=++cnt;
at[cnt]=x;
for(int i=g[x];i;i=nxt[i]){
int u=v[i];
if(u==f[x])continue;
u=id[u];
if(!u)continue;
addedge(cnt,u,d[at[u]]-d[x]-1);
}
}
void dfs2(int x,int y){
F[x]=y;
D[x]=D[y]+1;
for(int i=G[x];i;i=NXT[i])dfs2(i,x);
}
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d%d",&n,&m);
for(ed=cnt=i=0;i<=n;i++)f[i]=d[i]=id[i]=vip[i]=g[i]=0;
memset(G,0,sizeof G);
memset(W,0,sizeof W);
memset(F,0,sizeof F);
memset(D,0,sizeof D);
memset(vv,0,sizeof vv);
memset(ve,0,sizeof ve);
for(i=1;i<n;i++)scanf("%d%d",&x,&y),add(x,y),add(y,x);
for(i=1;i<=m;i++){
scanf("%d%d%d",&o,&x,&y);
vip[x]=vip[y]=1;
op[i][0]=o;
op[i][1]=x;
op[i][2]=y;
if(o==1||o==2||o==3||o==7)scanf("%d",&op[i][3]);
}
for(i=1;i<=n;i++)if(vip[i])root=i;
dfs(root);
dfs2(id[root],0);
for(i=1;i<=m;i++){
o=op[i][0];
x=id[op[i][1]];
y=id[op[i][2]];
z=op[i][3];
if(o==1){
while(x!=y){
if(D[x]<D[y])swap(x,y);
vv[x]+=z;
ve[x]+=z;
x=F[x];
}
vv[x]+=z;
}
if(o==2){
while(x!=y){
if(D[x]<D[y])swap(x,y);
vv[x]^=z;
ve[x]^=z;
x=F[x];
}
vv[x]^=z;
}
if(o==3){
while(x!=y){
if(D[x]<D[y])swap(x,y);
if(vv[x]>=z)vv[x]-=z;
if(ve[x]>=z)ve[x]-=z;
x=F[x];
}
if(vv[x]>=z)vv[x]-=z;
}
if(o==4){
long long ans=0;
while(x!=y){
if(D[x]<D[y])swap(x,y);
ans+=vv[x];
ans+=1LL*ve[x]*W[x];
x=F[x];
}
printf("%lld\n",ans+vv[x]);
}
if(o==5){
int ans=0;
while(x!=y){
if(D[x]<D[y])swap(x,y);
ans^=vv[x];
if(W[x]&1)ans^=ve[x];
x=F[x];
}
printf("%d\n",ans^vv[x]);
}
if(o==6){
int mi=inf,ma=0;
while(x!=y){
if(D[x]<D[y])swap(x,y);
umin(mi,vv[x]);
umax(ma,vv[x]);
if(W[x]){
umin(mi,ve[x]);
umax(ma,ve[x]);
}
x=F[x];
}
umin(mi,vv[x]);
umax(ma,vv[x]);
printf("%d\n",ma-mi);
}
if(o==7){
int ans=inf;
while(x!=y){
if(D[x]<D[y])swap(x,y);
umin(ans,abs(vv[x]-z));
if(W[x])umin(ans,abs(ve[x]-z));
x=F[x];
}
umin(ans,abs(vv[x]-z));
printf("%d\n",ans);
}
}
}
}

  

E. Minimum Spanning Tree

#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
const int N=100010;
int Case,n,i,j,x,y,z;vector<int>f[N];ll ans;
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d",&n);
for(i=1;i<=n;i++)f[i].clear();
for(i=1;i<n;i++)scanf("%d%d%d",&x,&y,&z),f[x].push_back(z),f[y].push_back(z);
ans=0;
for(i=1;i<=n;i++)if(f[i].size()>1){
sort(f[i].begin(),f[i].end());
for(j=1;j<f[i].size();j++)ans+=f[i][0]+f[i][j];
}
printf("%lld\n",ans);
}
}

  

F. Mini-game Before Contest

#include<cstdio>
const int N=100010,M=200010,K=1<<24;
int Case,n,m,i,j,k,S,A,B,x,y,z,o,deg[N],g[N],v[M],nxt[M],ed;
bool isactor[6],isa[6],ismin[6];
char tmp[9];
int f[N][6],w[N][6][3];
int q[K+5],h,t;
inline void add(int x,int y){v[++ed]=y;nxt[ed]=g[x];g[x]=ed;}
inline void ext(int x,int y,int B){
int A=f[x][y];
if(A==B)return;
t=(t+1)&(K-1);
q[t]=(x<<7)|(y<<4)|(A<<2)|B;
f[x][y]=B;
}
inline void check(int x,int y){
int ret;
if(ismin[y]){
if(w[x][y][0])ret=0;
else if(w[x][y][1])ret=1;
else ret=2;
}else{
if(w[x][y][2])ret=2;
else if(w[x][y][1])ret=1;
else ret=0;
}
ext(x,y,ret);
}
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d%d",&n,&m);
for(ed=i=0;i<=n;i++)deg[i]=g[i]=0;
while(m--)scanf("%d%d",&x,&y),deg[x]++,add(y,x);
scanf("%s",tmp);
for(i=0;i<6;i++)isa[i]=tmp[i]=='A';
scanf("%s",tmp);
for(i=0;i<6;i++)isactor[i]=tmp[i]=='1';
for(i=0;i<6;i++)ismin[i]=isa[i]^isactor[i];
for(i=1;i<=n;i++)for(j=0;j<6;j++){
f[i][j]=1;
for(k=0;k<3;k++)w[i][j][k]=0;
w[i][j][1]=deg[i];
}
h=1,t=0;
for(i=1;i<=n;i++)if(!deg[i])for(j=0;j<6;j++){
if(isa[j])ext(i,j,2);
else ext(i,j,0);
}
while(h!=((t+1)&(K-1))){
S=q[h];
h=(h+1)&(K-1);
x=S>>7,y=S>>4&7,A=S>>2&3,B=S&3;
o=(y+5)%6;
for(i=g[x];i;i=nxt[i]){
z=v[i];
w[z][o][A]--;
w[z][o][B]++;
check(z,o);
}
}
for(i=1;i<=n;i++){
if(f[i][0]==0)putchar('A');
if(f[i][0]==1)putchar('D');
if(f[i][0]==2)putchar('B');
}
puts("");
}
}

  

G. Radar Scanner

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=100010;
int Case,n,m,i,j,e[N<<1];
struct P{int l,r;}a[N],b[N];
inline ll solve(P*a){
m=0;
ll ans=0;
for(i=1;i<=n;i++){
e[++m]=a[i].l;
e[++m]=a[i].r;
ans-=a[i].r-a[i].l;
}
sort(e+1,e+m+1);
for(i=1;i<=m;i++)ans+=abs(e[i]-e[n]);
return ans/2;
}
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d%d%d%d",&a[i].l,&b[i].l,&a[i].r,&b[i].r);
printf("%lld\n",solve(a)+solve(b));
}
}

  

H. Skyscraper

#include<cstdio>
typedef long long ll;
const int N=100010;
int Case,n,m,i,op,x,y;ll z,a[N],b[N],f[N],g[N];
inline void ins(ll*f,int x,ll p){for(;x<=n;x+=x&-x)f[x]+=p;}
inline ll ask(ll*f,int x){ll t=0;for(;x;x-=x&-x)t+=f[x];return t;}
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)scanf("%lld",&a[i]);
for(i=1;i<=n;i++)b[i]=a[i]-a[i-1];
for(i=1;i<=n;i++)f[i]=g[i]=0;
for(i=1;i<=n;i++){
ins(f,i,b[i]);
if(b[i]>0)ins(g,i,b[i]);
}
while(m--){
scanf("%d%d%d",&op,&x,&y);
if(op==1){
y++;
scanf("%lld",&z);
ins(f,x,z);
ins(f,y,-z);
if(b[x]>0)ins(g,x,-b[x]);
if(b[y]>0)ins(g,y,-b[y]);
b[x]+=z;
b[y]-=z;
if(b[x]>0)ins(g,x,b[x]);
if(b[y]>0)ins(g,y,b[y]);
}else{
printf("%lld\n",ask(f,x)+ask(g,y)-ask(g,x));
}
}
}
}

  

I. Temperature Survey

#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
const int N=524288,M=200010,K=18,P=998244353,G=3;
typedef unsigned int uint32;
typedef long long int64;
typedef unsigned long long uint64;
typedef uint32 word;
typedef uint64 dword;
typedef int sword;
const int word_bits=sizeof(word)*8;
word mod,Modinv,r2;
struct UnsafeMod{
word x;
UnsafeMod(): x(0) {}
UnsafeMod(word _x): x(init(_x)) {}
UnsafeMod& operator += (const UnsafeMod& rhs) {
(x += rhs.x) >= mod && (x -= mod);
return *this;
}
UnsafeMod& operator -= (const UnsafeMod& rhs) {
sword(x -= rhs.x) < 0 && (x += mod);
return *this;
}
UnsafeMod& operator *= (const UnsafeMod& rhs) {
x = reduce(dword(x) * rhs.x);
return *this;
}
UnsafeMod operator + (const UnsafeMod &rhs) const {
return UnsafeMod(*this) += rhs;
}
UnsafeMod operator - (const UnsafeMod &rhs) const {
return UnsafeMod(*this) -= rhs;
}
UnsafeMod operator * (const UnsafeMod &rhs) const {
return UnsafeMod(*this) *= rhs;
}
UnsafeMod pow(uint64 e) const {
UnsafeMod ret(1);
for (UnsafeMod base = *this; e; e >>= 1, base *= base) {
if (e & 1) ret *= base;
}
return ret;
}
word get() const {
return reduce(x);
}
static word modulus() {
return mod;
}
static word init(word w) {
return reduce(dword(w) * r2);
}
static void set_mod(word m) {
mod = m;
Modinv = mul_inv(mod);
r2 = -dword(mod) % mod;
}
static word reduce(dword x) {
word y = word(x >> word_bits) - word((dword(word(x) * Modinv) * mod) >> word_bits);
return sword(y) < 0 ? y + mod : y;
}
static word mul_inv(word n, int e = 6, word x = 1) {
return !e ? x : mul_inv(n, e - 1, x * (2 - x * n));
}
};
int Case,n,i,j,lim[M];
UnsafeMod a[M],b[M],c[M],d[M];
UnsafeMod ta[N+5],tb[N+5];
UnsafeMod g[K+1],ng[K+10],gw[N+10],ngw[N+10];
int pos[N+10],inv[N+10];
UnsafeMod fac[N+5],rev[N+5];
map<int,UnsafeMod>f[M];
struct E{int xl,xr,yl,yr;}e[M];
inline UnsafeMod C(int n,int m){return n<m?0:fac[n]*rev[m]*rev[n-m];}
inline void NTT(UnsafeMod*a,int n,int t){
int j=__builtin_ctz(n)-1;
for(int i=0;i<n;i++)pos[i]=pos[i>>1]>>1|((i&1)<<j);
for(int i=1;i<n;i++)if(i<pos[i])std::swap(a[i],a[pos[i]]);
for(int d=0;(1<<d)<n;d++){
int m=1<<d,m2=m<<1;
UnsafeMod*_w=t==1?gw:ngw;
_w+=m;
for(int i=0;i<n;i+=m2){
UnsafeMod*w=_w;
for(int j=i;j<m+i;j++,w++){
UnsafeMod t=*w*a[j+m];
a[j+m]=a[j]-t;
a[j]+=t;
}
}
}
if(t==-1){
UnsafeMod j=inv[n];
for(int i=0;i<n;i++)a[i]*=j;
}
}
void build(int l,int r,int yl){
if(l>r)return;
int mid=(l+r)>>1;
e[mid].xl=mid;
e[mid].xr=r;
e[mid].yl=yl;
e[mid].yr=lim[mid];
build(l,mid-1,yl);
build(mid+1,r,lim[mid]+1);
}
inline UnsafeMod cal(int x,int y){
UnsafeMod t=0;
if(x>1)t=f[x-1][y];
if(y>1)t+=f[x][y-1];
return f[x][y]=t;
}
inline void work0(int n,int m,UnsafeMod*a,UnsafeMod*b){
int i,k;
for(k=1;k<=(n-1)*2;k<<=1);
for(i=0;i<k;i++)ta[i]=tb[i]=0;
for(i=0;i<n;i++){
ta[i]=a[i]*rev[m];
tb[i]=fac[i+m]*rev[i];
}
NTT(ta,k,1),NTT(tb,k,1);
for(i=0;i<k;i++)ta[i]*=tb[i];
NTT(ta,k,-1);
for(i=0;i<n;i++)b[i]+=ta[i];
}
inline void work1(int n,int m,UnsafeMod*a,UnsafeMod*b){
int i,k;
for(k=1;k<=n+n+m-2;k<<=1);
for(i=0;i<k;i++)ta[i]=tb[i]=0;
for(i=0;i<n;i++)ta[i]=a[i]*rev[n-i];
for(i=0;i<n+m;i++)tb[i]=fac[i];
NTT(ta,k,1),NTT(tb,k,1);
for(i=0;i<k;i++)ta[i]*=tb[i];
NTT(ta,k,-1);
for(i=0;i<m;i++)b[i]+=ta[i+n]*rev[i];
}
inline void solve(int o){
int xl=e[o].xl,xr=e[o].xr,yl=e[o].yl,yr=e[o].yr;
if(yl>yr)return;
int i,j,k,ca,cb;
if(xl==1){
for(i=xl;i<=xr;i++)for(j=yl;j<=yr;j++)f[i][j]=C(i+j-2,i-1);
return;
}
cal(xl,yl);
for(i=yl+1,k=0;i<=yr;i++,k++)a[k]=cal(xl,i);
for(i=xl+1,k=0;i<=xr;i++,k++)b[k]=cal(i,yl);
ca=yr-yl-1;
cb=xr-xl-1;
if(ca<=0||cb<=0){
for(i=xl;i<=xr;i++)for(j=yl;j<=yr;j++){
if(i==xl||j==yl)continue;
cal(i,j);
}
return;
}
for(i=0;i<ca;i++)c[i]=b[cb];
for(i=0;i<cb;i++)d[i]=a[ca];
work0(ca,cb,a,c);
work0(cb,ca,b,d);
work1(ca,cb,a,d);
work1(cb,ca,b,c);
for(i=0;i<ca;i++)f[xr][yl+i+1]=c[i];
for(i=0;i<cb;i++)f[xl+i+1][yr]=d[i];
f[xr][yr]=c[ca-1]+d[cb-1];
}
int main(){
UnsafeMod::set_mod(P);
for(g[K]=((UnsafeMod)G).pow((P-1)/N),ng[K]=g[K].pow(P-2),i=K-1;~i;i--)g[i]=g[i+1]*g[i+1],ng[i]=ng[i+1]*ng[i+1];
for(i=0;i<=K;i++){
gw[1<<i]=ngw[1<<i]=1;
for(j=1;j<1<<i;j++){
gw[(1<<i)+j]=gw[(1<<i)+j-1]*g[i];
ngw[(1<<i)+j]=ngw[(1<<i)+j-1]*ng[i];
}
}
for(inv[0]=inv[1]=1,i=2;i<=N;i++)inv[i]=1LL*(P-inv[P%i])*(P/i)%P;
for(rev[0]=rev[1]=1,i=2;i<=N;i++)rev[i]=rev[i-1]*inv[i];
for(fac[0]=i=1;i<=N;i++)fac[i]=fac[i-1]*i;
scanf("%d",&Case);
while(Case--){
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&lim[i]);
n++;
lim[n]=lim[n-1];
for(i=1;i<=n;i++)f[i].clear();
build(1,n,1);
for(i=1;i<=n;i++)solve(i);
printf("%u\n",f[n][lim[n]].get());
}
}

  

J. Time Limit

#include<cstdio>
#include<algorithm>
using namespace std;
int Case,n,i,x,ans;
int main(){
scanf("%d",&Case);
while(Case--){
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&x);
if(i==1)ans=x*3;
else ans=max(ans,x+1);
}
while(ans%2)ans++;
printf("%d\n",ans);
}
}

  

The 13th Chinese Northeast Collegiate Programming Contest的更多相关文章

  1. 【The 13th Chinese Northeast Collegiate Programming Contest E题】

    题目大意:给定一棵 N 个点的树,边有边权,定义"线树"为一个图,其中图的顶点是原树中的边,原树中两条有公共端点的边对应在线图中存在一条边,边权为树中两条边的边权和,求线图的最小生 ...

  2. 【The 13th Chinese Northeast Collegiate Programming Contest H 题】

    题目大意:NOIP2018d1t1 支持 M 次区间查询答案和区间修改操作. 题解: 首先考虑不带区间修改的情况.从左到右进行考虑,发现对于第 i 个数来说,对答案的贡献仅仅取决于第 i-1 个数的大 ...

  3. The 13th Chinese Northeast Collegiate Programming Contest(B C E F H J)

    B. Balanced Diet 思路:把每一块选C个产生的价值记录下来,然后从小到大枚举C. #include<bits/stdc++.h> using namespace std; ; ...

  4. ZOJ 3946.Highway Project(The 13th Zhejiang Provincial Collegiate Programming Contest.K) SPFA

    ZOJ Problem Set - 3946 Highway Project Time Limit: 2 Seconds      Memory Limit: 65536 KB Edward, the ...

  5. The 13th Zhejiang Provincial Collegiate Programming Contest - D

    The Lucky Week Time Limit: 2 Seconds      Memory Limit: 65536 KB Edward, the headmaster of the Marja ...

  6. The 13th Zhejiang Provincial Collegiate Programming Contest - I

    People Counting Time Limit: 2 Seconds      Memory Limit: 65536 KB In a BG (dinner gathering) for ZJU ...

  7. The 13th Zhejiang Provincial Collegiate Programming Contest - C

    Defuse the Bomb Time Limit: 2 Seconds      Memory Limit: 65536 KB The bomb is about to explode! Plea ...

  8. The 2018 ACM-ICPC Chinese Collegiate Programming Contest Moving On

    Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn.Each city has a r ...

  9. The 2015 China Collegiate Programming Contest A. Secrete Master Plan hdu5540

    Secrete Master Plan Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Othe ...

随机推荐

  1. k8s云集群混搭模式落地分享

    在 <k8s云集群混搭模式,可能帮你节省50%以上的服务成本>一文中,介绍了使用k8s + 虚拟节点混合集群的方式,为负载具有时间段波峰.波谷交替规律的业务节约成本,提高服务伸缩效率的部署 ...

  2. pycharm python @符号不能识别 NameError: name 'app' is not defined

    pycharm python @符号不能识别 NameError: name 'app' is not defined 解决办法: 缺少:app = Flask(__name__) # 导入Flask ...

  3. 原生js实现append()方法

    一.在使用jquery时,append() 方法在被选元素的结尾(仍然在内部)插入指定内容 使用方法:$(selector).append(content),content为必需的.规定要插入的内容( ...

  4. .NET Core 学习笔记之 WebSocketsSample

    1. 服务端 代码如下: Program: using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; namespace WebS ...

  5. Linux SELinux 介绍详解

    Linux SELinux 介绍详解 SElinux 简介 SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的.它已被植入到了Linux系统的内核当中 ...

  6. dedecms5.7文章页替换掉特定标志的图片链接

    dedecms5.7文章页的替换掉特定标志的图片链接 解决思路 1个是在数据库里面执行替换操作 我自己查看 织梦后台也有这个功能  但是执行了一次 效果不是很好  那么就用下面的  在模板中进行内容替 ...

  7. Android App自动化测试实战(基于Python)(三)

    1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...

  8. IO流总结---- 字节流 ,字符流, 序列化 ,数据操作流,打印流 , Properties 集合

    笔记内容: 什么是流 字节流 字符流 序列化 数据操作流(操作基本数据类型的流)DataInputStream 打印流 Properties 集合 什么是流: 流是个抽象的概念,是对输入输出设备的抽象 ...

  9. 高效并发一 Java内存模型与Java线程(绝对干货)

    高效并发一 Java内存模型与Java线程 本篇文章,首先了解虚拟机Java 内存模型的结构及操作,然后讲解原子性,可见性,有序性在 Java 内存模型中的体现,最后介绍先行发生原则的规则和使用. 在 ...

  10. css中的baseline

    这是css中的一个容易被人忽略的概念,今天在知乎上看到一个问题,这个问题应该是关于baseline,才去补习了一下关于baseline的知识,首先我来还原一下问题: <div style=&qu ...