csp-s模拟测试77+78(lrd day1&2)
RP-=inf。。。。。。。
一场考试把rp败光。。。由于本次考试本人在考试中乱说自己AK导致rp--,本人当选为机房倒数第二没素质
不过AK一次还挺开心的。。。
达哥出的题还是比较简单的。
T1:考察位运算的技巧,对于所有的操作按位考虑即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,c;
long long bin[];
long long an[];
long long ans;
inline void init()
{
for(int i=;i<=;++i)bin[i]=1ll<<i;
an[]=;
for(int i=;i<=;++i)an[i]=an[i-]*;
}
inline int getnum(int x)
{
int ret=;
while(x){ret+=x&;x>>=;}
return ret;
}
inline void work1()
{
int t=getnum(b);
printf("%lld\n",an[t]);
}
inline void work5()
{
if((a^b)!=c){puts("");return;}
int t=getnum(c);
printf("%lld\n",bin[t]);
}
inline void work2()
{
if((b&c)!=c){puts("");return;}
a=b^c;
work5();
}
inline void work3()
{
if(a&c){puts("");return;}
b=a|c;work5();
}
inline void work4()
{
if((b&a)!=a){puts("");return;}
c=a^b;work5();
}
int main()
{
init();
int T;scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&a,&b,&c);
if(b==-&&c==-)
{
puts("inf");continue;
}
if(a==-&&c==-)
{
work1();continue;
}
if(a==-&&b==-)
{
puts("inf");continue;
}
if(a==-)
{
work2();continue;
}
if(b==-)
{
work3();continue;
}
if(c==-)
{
work4();continue;
}
work5();
}
}
冗长讨论
T2:把对于全部的数的加减用变量维护即可,对于取交和取并直接打时间戳维护即可
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
char xch,xB[<<],*xS=xB,*xTT=xB;
#define getc() (xS==xTT&&(xTT=(xS=xB)+fread(xB,1,1<<15,stdin),xS==xTT)?0:*xS++)
inline int read()
{
int x=,f=;char ch=getc();
while(ch<''|ch>''){if(ch=='-')f=-;ch=getc();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getc();}
return x*f;
}
using namespace std;
const long long kx=;
int pd[],n;
int sum,num=;
long long plu,ans;
inline void work1()
{
int m=read(),a,b,c;
for(int i=;i<=m;++i)
{
a=read()+kx;
if(pd[a-plu]==num)continue;
pd[a-plu]=num;
++sum;ans+=a-plu;
}
}
inline void work2()
{
int m=read(),a,b,c;
sum=;ans=;
for(int i=;i<=m;++i)
{
a=read()+kx;
if(pd[a-plu]!=num)continue;
pd[a-plu]=num+;
++sum;ans+=a-plu;
}
++num;
}
int main()
{
// freopen("ex_jihe4.in","r",stdin);
// freopen("my.out","w",stdout);//diff -b -B ex_jihe4.ans my.out
n=read();int opt;
while(n--)
{
opt=read();
switch(opt){
case :{
work1();
break;
}
case :{
work2();
break;
}
case :{
++plu;
break;
}
case :{
--plu;
break;
}
}
printf("%lld\n",ans+plu*sum-kx*sum);
}
}
感谢达哥的fread
T3:稍神奇,图论+容斥原理。
先对所有的白块染色,相连的染成同一种颜色。顺手用桶统计答案
这时发现统计多了,对于一些情况会统计多。考虑容斥,奇加偶减,对于每个非空白点,先把周围的块统计一下,排序去重,手动枚举集合,用hash搞掉,用hash_map储存
分类讨论奇加偶减即可。。。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
#define N 1050
using namespace std;
int a[N][N];
int bk[];
long long ans;
int n,num=,m,k;
int pd[N][N];
const int dx[]={,-,,};
const int dy[]={,,,-};
struct QaQ{
pair<int,int>a[];
int fr,ba;
inline int size(){return ba-fr;}
inline void push(int x,int y){a[ba]=make_pair(x,y);++ba;}
inline void clear(){ba=fr=;}
inline void pop(){++fr;}
inline int fir(){return a[fr].first;}
inline int sec(){return a[fr].second;}
}q;
inline void bfs1(int x,int y)
{
q.clear();++num;pd[x][y]=num;
int tx,ty,c;q.push(x,y);
while(q.size())
{
x=q.fir();y=q.sec();q.pop();
for(int i=;i<;++i)
{
tx=x+dx[i];ty=y+dy[i];
if(tx<=||ty<=||tx>n||ty>m||pd[tx][ty]==num)continue;
pd[tx][ty]=num;c=a[tx][ty];
if(c){ans+=bk[c];++bk[c];}
else q.push(tx,ty);
}
}
}
inline void bfs2(int x,int y)
{
q.clear();++num;pd[x][y]=num;
int tx,ty,c;q.push(x,y);
while(q.size())
{
x=q.fir();y=q.sec();q.pop();
for(int i=;i<;++i)
{
tx=x+dx[i];ty=y+dy[i];
if(tx<=||ty<=||tx>n||ty>m||pd[tx][ty]==num)continue;
pd[tx][ty]=num;c=a[tx][ty];
if(c)bk[c]=;
else q.push(tx,ty);
}
}
}
int pd2[],t1[];
inline int get1(int x,int y)
{
int tx,ty;t1[]=;
for(int i=;i<;++i)
{
tx=x+dx[i];ty=y+dy[i];
if(tx<=||ty<=||tx>n||ty>m||a[tx][ty])continue;
t1[++t1[]]=pd[tx][ty];pd2[pd[tx][ty]]=;
}
}
inline int get2(int x,int y)
{
int tx,ty;
for(int i=;i<;++i)
{
tx=x+dx[i];ty=y+dy[i];
if(tx<=||ty<=||tx>n||ty>m||a[tx][ty])continue;
if(pd2[pd[tx][ty]])return ;
}
return ;
}
void down1()
{
for(int i=;i<=t1[];++i)pd2[t1[i]]=;
}
inline void work2()
{
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
{
get1(i,j);
if(a[i][j]&&a[i][j]==a[i][j+])
ans+=get2(i,j+);
if(a[i][j]&&a[i][j]==a[i+][j])
ans+=get2(i+,j);
// printf("i:%d j:%d ans:%lld\n",i,j,ans);
down1();
}
}
const int mod=;
const int tt=;
#define ull unsigned long long
struct hash_map{
int he[mod],tot;
int ne[],to[];
ull val[];
inline void add(ull x){
int k=x%mod;
for(int i=he[k];i;i=ne[i])
{
if(val[i]==x)
{
++to[i];
return;
}
}
to[++tot]=;ne[tot]=he[k];he[k]=tot;val[tot]=x;
}
inline int getval(ull x){
int k=x%mod;
for(int i=he[k];i;i=ne[i])
if(val[i]==x)
return to[i];
return ;
}
}H;
inline void duce(int x,int y,int z)
{
ull t=x;t=t*tt+y;t=t*tt+z;
ans-=H.getval(t);H.add(t);
}
inline void pluss(int w,int x,int y,int z)
{
ull t=w;t=t*tt+x;t=t*tt+y;t=t*tt+z;
ans+=H.getval(t);H.add(t);
}
inline void duce2(int v,int w,int x,int y,int z)
{
ull t=v;t=t*tt+w;t=t*tt+x;t=t*tt+y;t=t*tt+z;
ans-=H.getval(t);H.add(t);
}
inline void work3()
{
int c;
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
{
if(!a[i][j]||!pd[i][j])continue;
get1(i,j);c=a[i][j];
if(t1[]<)continue;
sort(t1+,t1+t1[]+);
t1[]=unique(t1+,t1+t1[]+)-t1-;
if(t1[]<)continue;
if(t1[]==)
{
duce(t1[],t1[],c);
continue;
}
if(t1[]==)
{
duce(t1[],t1[],c);
duce(t1[],t1[],c);
duce(t1[],t1[],c);
pluss(t1[],t1[],t1[],c);
}
if(t1[]==)
{
duce(t1[],t1[],c);
duce(t1[],t1[],c);
duce(t1[],t1[],c);
duce(t1[],t1[],c);
duce(t1[],t1[],c);
duce(t1[],t1[],c);
pluss(t1[],t1[],t1[],c);
pluss(t1[],t1[],t1[],c);
pluss(t1[],t1[],t1[],c);
pluss(t1[],t1[],t1[],c);
duce2(t1[],t1[],t1[],t1[],c);
}
}
}
int main()
{
// freopen("ex_link5.in","r",stdin);
// freopen("my.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
a[i][j]=read();
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
if(!a[i][j]&&!pd[i][j])
{
bfs1(i,j);bfs2(i,j);
}
work2();
work3();
cout<<ans<<endl;
/*
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
printf("%d ",pd[i][j]);
}
puts("");
}
*/
}
rp++
最后:
此刻我十分后悔,我做了一件错事,我简直不能原谅我自我!昨日我无视学校的规章制度,藐视校领导的决定,私自乱说AK。 这天,我怀着愧疚、懊悔和忐忑的情绪给您写下这份检讨书,以向您表示我对这种恶劣行为的深痛恶绝及保证不再犯的决心。 早在我刚踏进这个学校的时候,学校就已经三令五申,一再强调,学生,不得乱说AK。这两天,老师反复教导言犹在耳,严肃认真的表情犹在眼前,我深为震撼,也已经深刻认识到此事的重要性,在老师的耐心教导下,透过学习学生手则中学生管理规定,使我认识到了问题的严重性,并对自我违反校纪校规的行为进行了认真的反思和深刻的自剖。 在此,我谨向各位领导、老师做出深刻检讨,并将我这两天透过反思认为深藏在本人思想中的致命错误有以下几点结果汇报如下: 第一,我的行为不贴合一个中学生的要求。作为当代中学生,我们就应识大体、顾大局,在校纪校规面前人人平等,我不就应为了一己之便违反校纪校规。 第二,思想觉悟不高,对重要事项重视严重不足。就算是有认识,也没能在行动上真正实行起来。 第三,在学习期间,我们应主动配合学院搞好安全工作,学院老师三令五申、班干也一再强调,要求我们不能乱说AK,但我把这些都成了耳旁风,这些都是不就应的。 第四,我的行为还在同学间造成了极坏的影响。同学之间本就应互相学习,互相促进,而我的表现给同学们带了一个坏头,不利于校风和院风的建设。同时,也对学校形象造成了必须损害。想着带一次也无所谓,当时的侥幸心理酿成了此刻的后果。虽然我这种行为方便了自我,但是,我是在自私自利的帽子下,方便自我的。只有认真反思,寻找极大错误后面的深刻根源,认清问题的本质,才能给群众和自我一个交待,从而得以进步。做为一名学生,我没有做好自我的本职,给学校老师和学生会干部的工作带来了很大的麻烦。 据上,在深刻的自我反思之后,我决定有如下个人整改措施:第一,从错误根源进行深挖细找的整理,并认清其可能造成严重。第二,提高认识,狠抓落实,大力开展批评与自我批评。 第三,制定学习计划,认真克服生活懒散、粗心的坏习惯,按照老师要求上交资料深刻的检讨书一份,对自我思想上心大意的缺点,努力将期考考好,以好成绩弥补我的过错。 第四,和同学、班干以及学生会干部加强沟通。保证今后不再出现违反校纪校规的状况。我十分感谢老师和学生会干部对我所犯错误的及时指正,我保证今后不会再有类似行为发生在我身上,并决心为我校的安全工作和迎评工作作出自我的一份微薄之力。 第五,从思想上,我重新检讨自我,坚持从认识上,从观念上转变,要求上进,关心群众,关心他人,多和优秀同学接触,交流。纪律上,此刻我必须要比以前要有了很大改变,此刻的我对自我的言行,始终持续严格的约束,不但能遵守校规校纪,更加懂得了身为一名学生哪些事能够做的,哪些是不能够做的。学习上,我能够不避困难,自始至终为掌握更多知识,使自我的素质全面得到提升。 第六,保证不再出现上述错误。期望老师能够原谅我!最后请关心爱护我的老师同学继续监督、帮忙我改正缺点,取得更大的进步。
buyaotui
果然,第二场炸了。(rp守恒.flag)
然而某脸又双ruozhuo rank1了。
开场康T1,水,康T2,推出式子发现第三个大样例过不了第一问,然后还剩下一个小时结束,就扔了看T3,然后看出正解,还剩40分钟,疯狂码码码,最后由于rp--没调出来。
然后就100+40+5结束day2。。。
T1:太水了不想说
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ull unsigned long long
const int p=;
using namespace std;
ull po[];
long long ans,al;
int n,m;
ull h1,h2;
char s[];
int pd[];
inline void init()
{
po[]=;
for(register int i=;i<=;++i)po[i]=po[i-]*p;
}
int main()
{
// freopen("ex_ccx2.in","r",stdin);
int T;scanf("%d",&T);init();
while(T--)
{
scanf("%d%d%s",&n,&m,s+);
h1=h2=;ans=al=;
for(int i=;i<m;++i)
{
pd[m-i+]=;
h1+=po[i-]*s[i];
h2=h2*p+s[m-i+];
if(h1==h2)
{
ans=i;pd[m-i+]=;
if(i>=m-i&&pd[i+])
al=i;
}
}
// cout<<"ans:"<<ans<<endl;
// if(ans<(m+1)/2){ans=max(ans,1ll*(n-1)*m);}
// else
ans=max(ans,al+1ll*(n-)*m);
if(!ans)puts("-1");
else printf("%lld\n",ans);
}
}
using hash or kmp
T2:胡图图,稍神,发现考场上推的第一问式子锅了。(其实第二问式子也锅了但不知道为啥第二问过了。。。)
然而蒟蒻只会咕咕咕和粘链接(%%% DeepinC)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define N 100050
using namespace std;
int n,m,s;
queue<int>q;
int tot,he[N],ne[N<<],to[N<<];
int ind[N],outd[N],pd[N],tag;
double dp[N],f[N],f2[N],mx[N],an1,an2;//vectory,lrd,wms
inline void addedge(int x,int y)
{
++outd[x];
to[++tot]=y;
ne[tot]=he[x];
he[x]=tot;
}
inline void work1()//MAX
{
double ma=0.0,p,m1=0.0;
// for(int i=1;i<=n;++i)ma=max(ma,dp[i]);
for(int i=n;i;--i)mx[i]=max(mx[i+],dp[i]);
for(int i=;i<=n;++i)
{
ma=max(m1,mx[i+]); if(f2[i]>f[i])
p=(f2[i]-f[i])*(ma)/(double)(outd[i]+) + f[i]*(1.0)/(double)(outd[i]+) +
(dp[s]-f[i]*dp[i]-f2[i]*(-dp[i]))+f[i]*dp[i]*outd[i]/(outd[i]+)+f2[i]*(-dp[i])*outd[i]/(outd[i]+);
else
p=f[i]*(1.0)/(double)(outd[i]+) +
(dp[s]-f[i]*dp[i]-f2[i]*(-dp[i]))+f[i]*dp[i]*outd[i]/(outd[i]+)+f2[i]*(1.0-dp[i])*outd[i]/(outd[i]+);
an1=max(an1,p);
m1=max(m1,dp[i]);
}
}
inline void work2()//AVR
{
double al=0.0,p;an2=0.0;
for(int i=;i<=n;++i)al+=dp[i];
for(int i=;i<=n;++i)
{
p=(al-dp[i])/(n-);
an2+=f2[i]*(p)/(double)(outd[i]+)+f[i]*(1.0-p)/(double)(outd[i]+)+(1.0-(f[i]+f2[i])/(double)(outd[i]+))*dp[s];
}
an2/=(double)n;
}
void sear(int g)
{
dp[g]=0.0;pd[g]=;
if(!outd[g])return;
for(int i=he[g];i;i=ne[i])
{
if(!pd[to[i]])sear(to[i]);
if(tag)++ind[to[i]];
dp[g]+=1.0-dp[to[i]];
}
dp[g]=dp[g]/(double)outd[g];
}
inline void tope()
{
q.push(s);f[s]=;f2[s]=;
int g,y;double g1,g2;
while(!q.empty())
{
g=q.front();q.pop();
if(!outd[g])continue;
g1=f[g]/(double)outd[g];
g2=f2[g]/(double)outd[g];
for(int i=he[g];i;i=ne[i])
{
y=to[i];--ind[y];
f2[y]+=g1;f[y]+=g2;
if(!ind[y])q.push(y);
}
}
}
int main()
{
// freopen("ex_htt3.in","r",stdin);
scanf("%d%d%d",&n,&m,&s);
for(int i=,x,y;i<=m;++i){
scanf("%d%d",&x,&y);
addedge(x,y);
}
scanf("%lf%lf",&an1,&an2);
tag=;sear(s);tag=;
for(int i=;i<=n;++i)
if(!pd[i])sear(i); tope();
/*
for(int i=1;i<=n;++i)
{
if(dp[i])
printf("i:%d ind:%d f:%.3lf f2:%.3lf dp:%.3lf\n",i,ind[i],f[i],f2[i],dp[i]);
}
*/ if(an1<0.0){work1();}
if(an2<0.0){work2();}
printf("%.3lf %.3lf\n",an1,an2);
}
T3:数据结构题,考察树上倍增的应用,预处理一波直接倍增维护即可
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define N 200050
using namespace std;
int n,m;
int he[N],ne[N<<],to[N<<],w[N<<],tot;
int dep[N],len;
int dp[N],ma1[N][],ma2[N][],ma3[N],fat[N];//dp值,最大,次大
inline void addedge(int x,int y){to[++tot]=y;ne[tot]=he[x];he[x]=tot;}
int f[N][],ma[N][];
inline void dfs1(int g,int fa)
{
int y;dep[g]=dep[fa]+;f[g][]=fa;dp[g]=;
for(int i=he[g];i;i=ne[i])
{
if(to[i]==fa)continue;
dfs1(to[i],g);y=to[i];
dp[g]=max(dp[g],dp[y]);
if(dp[y]>ma1[g][])
{
ma3[g]=ma2[g][];
ma2[g][]=ma1[g][];ma2[g][]=ma1[g][];
ma1[g][]=dp[y];ma1[g][]=y;
}
else if(dp[y]>ma2[g][])
{
ma3[g]=ma2[g][];
ma2[g][]=dp[y];ma2[g][]=y;
}
else if(dp[y]>ma3[g])
{
ma3[g]=dp[y];
}
}
len=max(len,ma1[g][]+ma2[g][]+);
++dp[g];
}
inline int getval(int g,int fa)
{
if(ma1[fa][]==g)return ma2[fa][];
return ma1[fa][];
}
inline void dfs2(int g,int fa)
{
int y;fat[g]=dp[fa];
ma[g][]=getval(g,fa);
dp[g]=;
for(int i=he[g];i;i=ne[i])
{
if(to[i]==fa)continue;y=to[i];
if(y==ma1[g][])dp[g]=max(fat[g]+,ma2[g][]+);
else dp[g]=max(fat[g]+,ma1[g][]+);
dfs2(to[i],g);
}
}
inline void init()
{
for(int j=;j<=;++j)
{
for(int i=;i<=n;++i)
{
f[i][j]=f[f[i][j-]][j-];
ma[i][j]=max(ma[i][j-],ma[f[i][j-]][j-]);
}
}
}
int ans;
inline int getans(int x,int y)
{
if(dep[x]>dep[y])swap(x,y);
for(int i=;~i;--i)
{
if(dep[f[y][i]]<dep[x])continue;
ans=max(ans,ma[y][i]);
y=f[y][i];
}
if(x==y)return x;
for(int i=;~i;--i)
{
if(f[y][i]==f[x][i])continue;
ans=max(ans,ma[y][i]);ans=max(ans,ma[x][i]);
y=f[y][i];x=f[x][i];
}
int lca=f[x][];
if(x==ma1[lca][]||y==ma1[lca][])
{
if(x==ma2[lca][]||y==ma2[lca][])
ans=max(ans,ma3[lca]);
else
ans=max(ans,ma2[lca][]);
}
else
{
ans=max(ans,ma1[lca][]);
}
return lca;
}
inline void work2()
{
dfs1(,);dfs2(,);
init();
int lca;len=(len+)>>;
for(int i=,x,y;i<=m;++i)
{
ans=;
scanf("%d%d",&x,&y);
if(x==y){printf("%d\n",len);continue;}
lca=getans(x,y);
if(lca!=x)ans=max(ans,ma1[x][]);
if(lca!=y)ans=max(ans,ma1[y][]);
ans=max(ans,fat[lca]);
printf("%d\n",ans);
}
}
int main()
{
scanf("%d",&n);
int ok1=;
for(int i=,x,y;i<n;++i){
scanf("%d%d",&x,&y);
if(x>y)swap(x,y);if(y!=x+)ok1=;
addedge(x,y);addedge(y,x);
}
scanf("%d",&m);
work2();
}
记得攒rp
csp-s模拟测试77+78(lrd day1&2)的更多相关文章
- [考试反思]1017csp-s模拟测试77(lrd day1) :反抗
说在前面:强烈谴责AK神Mr_zkt没有丝毫素质RP-- 然而我也想没素质一次,但是我没机会AK一套除了B组题以外的题... 太菜了,没权力.人家AK了人家就是牛逼你没话说 达哥的题必须好好写反思. ...
- csps模拟测试 77爆零反思
题不算太难,可是我还是没考出应有水平. $1h8min$切掉前两道题,然后$T3$想到正解并且码出来了并且过了大样例并且爆零. 没什么好说的,我太自信了,没打对拍? 想到了正解,还不如随便打个暴力分高 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- 安装nginx python uwsgi环境 以及模拟测试
uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- 转 C#实现PID控制的模拟测试和曲线绘图
C#实现PID控制的模拟测试和曲线绘图 本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...
- Mockito:一个强大的用于Java开发的模拟测试框架
https://blog.csdn.net/zhoudaxia/article/details/33056093 介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用 ...
- NOIP模拟测试1(2017081501)
好,今天是cgg第一次举行模拟测试,希望各位支持. 时间限制:2小时 题目链接: 题目一:水得都没名字了 题目二:车站 题目三:选数 不要觉得2小时太少,我的题目很良心,都很简单. 答案可以在模拟测试 ...
随机推荐
- 关于arm 的字节对齐
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这 ...
- Largest Submatrix 3 CodeForces - 407D (dp,好题)
大意: 给定矩阵, 求选出一个最大矩形, 满足矩形内每个元素互不相同. 考虑枚举上下左三个边界, 求出最大右边界的位置. 注意到固定上边界, 下边界递推时, 每个左边界对应最大右边界是单调不增的. 所 ...
- Linux Mysql 备份与还原
1. 备份 cd /var/lib/mysql //进入到MySQL库目录 mysqldump -u root -p 数据库>/root/backup/数据库.sql 然后输入密码 2. 还原 ...
- git this exceeds GitHub's file size limit of 100.00 MB
git push origin master过程中,出现如下错误 关键词:this exceeds GitHub's file size limit of 100.00 MB 推的时候忽略文件的操作: ...
- codeforce 839d.winter is here
题意:如果一个子序列的GCD为1,那么这个子序列的价值为0,否则子序列价值为子序列长度*子序列GCD 给出n个数,求这n个数所有子序列的价值和 题解:首先得想到去处理量比较少的数据的贡献,这里处理每个 ...
- GNU,GPL与自由软件
GNU 是 Richard Stallman(理查德·斯托曼)创建的一个项目,not unix GPL(General Public License),GNU通用公共许可证.书面上的协议 自由软件与开 ...
- iOS 超级签名详解
一.原理 把安装设备当做开发设备进行分发.说的明白一些,开发者可以在开发者后台添加手机的UDID,然后重新打包一个IPA文件,分发平台,然后被添加的UDID就可以下载. 二.优缺点 优势: 直接分发, ...
- eclipse导入项目后出现红色叉号的解决方案
对于一名程序员来说,我导入的项目在项目的名称上无端加了一个红色的叉号,虽然这个不友好的符号,对于我整个的项目运行没有任何影响,但是总让我觉得不舒服,大大的叉号写在我的项目的脑袋上,我心里能舒服吗?于是 ...
- centos 6升级 GCC 到4.8
centos 6升级 GCC 到4.8 安装最新版本的swoole 提示 pecl install swolle ... GCC 4.8 or later required. 首先想到的时候yum ...
- cookies, session, token
Cookie 是由客户端(通常是浏览器)保存的小型文本信息,其内容是一系列的键值对,是由 HTTP 服务器设置并保存在浏览器上的信息. 在post请求的瞬间,cookie会被浏览器自动添加到请求头中. ...