约数倍数选卡片算法实现.pdfVIP

  • 0
  • 0
  • 约2.57千字
  • 约 3页
  • 2026-02-11 发布于北京
  • 举报

C:

没有

C++:

#includeiostream

#includefstream

#includecstdio

#includecstring

#includealgorithm

#includequeue

#includestack

#includeclimits

#includectime

#includecmath

#includeset

#includemap

#includestring

#includevector

#defineMAX(a,b)((a)(b)?(a):(b))

#defineMIN(a,b)((a)(b)?(a):(b))

#defineabs(x)((x)0?(x):(-(x)))

#defineFOR(i,a,b)for(inti=(a);i=(b);i++)

#defineFORD(i,a,b)for(inti=(a);i=(b);i--)

#defineREP(i,n)for(inti=0;i(n);i++)

#definerst(x,k)memset(x,k,sizeof(x))

#definelowbit(x)((x)(-(x)))

//#defineh(x)(1(x))

//#definelson(ind1)

//#definerson(ind1|1)

#defineeps1e-6

#defineINF140000000

#definemaxn5000

#definemod1000000007

#definePiacos(-1.0)

#definelinkfjksldfjaslkdfjas

usingnamespacestd;

typedeflonglongLL;

inta[maxn],b[maxn];

intvisit[maxn];

charss[maxn];

structnode{

intt,nxt;

}edge[maxn2];

intheadline[maxn],E,n,tot;

voidadd(intf,intt){

edge[E].t=t;

edge[E].nxt=headline[f];

headline[f]=E++;

}

booldfs(intu){

boolok=true;

visit[u]=true;

for(inti=headline[u];~i;i=edge[i].nxt){

intv=edge[i].t;

if(!visit[v]){

if(dfs(v)){

ok=false;

break;

}

}

}

visit[u]=false;

if(okfalse)returnfalse;

returntrue;

}

voidsolve(void){

n=0;tot=0;

intlen=strlen(ss),temp=0;

rst(headline,-1);E=0;rst(visit,false);

boolfinish=true;

REP(i,len){

if(ss[i]=9ss[i]=0){

temp*=10;

temp+=ss[i]-0;

finish=false;

}elseif(!finish){

finish=true;

n++;a[n]=temp;

temp=0;

}

}

if(!finish){

n++;a[n]=temp;

finish=true;

temp=0;

}

gets(ss);

len=strlen(ss);

REP(i,len){

if(ss[i]=9ss[i]=0){

temp*=10;

temp+=ss[i]-0;

finish=false;

}elseif(!finish){

finish=true;

tot++;b[tot]=temp;

temp=0;

}

}

if(!finish){

tot++;b[tot]=temp;

finish

文档评论(0)

1亿VIP精品文档

相关文档