首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2012收成都Onsite (A,B,I,J,K)

2012-11-26 
2012年成都Onsite (A,B,I,J,K)转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmodecontentsby-

2012年成都Onsite (A,B,I,J,K)

转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 

A:水题

B:高中概率知识 ,整出个式子,sigma( k*C(n+k,k)* (p^(n+1)*q^k+q^(n+1)*p^k)  )

然后就没有然后了,现场的时候是边乘边除乱搞过的,比较优越的是取个对数

int flag[10];int n,k;int vis[10005];void bfs(){    mem(vis,0);    queue<pair<string,int> >que;    que.push(mp("",0));    while(!que.empty())    {        pair<string,int>u=que.front();        que.pop();        for(int i=0;i<10;i++)        {            if(i==0&&u.second==0) continue;            if(flag[i]) continue;            pair<string,int>v=u;            v.first+=(char)(i+'0');            v.second=(v.second*10+i)%n;            if(v.second == 0) {cout<<v.first<<endl;return ;}            if(vis[v.second]==0)            {                vis[v.second]=1;                que.push(v);            }        }    }    printf("-1\n");}int main(){    int cas=0;    while(scanf("%d%d",&n,&k)!=EOF)    {        mem(flag,0);        for(int i=0;i<k;i++)        {            int m;            scanf("%d",&m);            flag[m]=1;        }        printf("Case %d: ",++cas);        if(k==0){printf("%d\n",n);continue;}        bfs();    }    return 0;}


热点排行