栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2890 Baseball

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2890 Baseball

#include <stdio.h>#define eps 1e-8int _random;void set_random(){    _random=1;}int random(){    return _random=(_random*25173+13849)%65536;}int succeed(int r,double p){    return (double)r <=p * 65536.0;}int next(int i){    i++;    if(i>=9) return 0;    else return i;}struct _data{    char name[20];    double hp,sp;}data[2][9];char name[2][20];int no,aa,dd,ii[2],run[2],hit[2],out[2],pos[4],poss[4];int hitn,hits[1024],runn,runs[1024];int sacrifice(){    if(pos[1]&&out[aa]==0) return 1;    else if(pos[2]&&out[aa]<=1) return 1;    else return 0;}int endgame(){    if(no>9&&run[0]!=run[1]) return 1;    else return 0;}void dos(){    out[aa]++;    if(succeed(random(),data[aa][ii[aa]].sp)){        if(pos[2]){ run[aa]++; runs[runn++]=poss[2]+aa*10;        }        pos[2]=pos[1];        poss[2]=poss[1];        pos[1]=pos[0];        poss[1]=poss[0];        pos[0]=0;    }    ii[aa]=next(ii[aa]);}void doh(){    if(succeed(random(),data[aa][ii[aa]].hp)){        hit[aa]++;        hits[hitn++]=ii[aa]+aa*10;        if(pos[2]){ run[aa]++; runs[runn++]=poss[2]+aa*10;        }        pos[2]=pos[1];        poss[2]=poss[1];        pos[1]=pos[0];        poss[1]=poss[0];        pos[0]=1;        poss[0]=ii[aa];    }    else{        out[aa]++;    }    ii[aa]=next(ii[aa]);}int main(){    int kase;    int i,ri,re;    scanf("%d", &kase);    while (kase--) {        scanf("%d",&re);        for(ri=1;ri<=re;ri++){ set_random(); if(ri>1) printf("============================================================n"); scanf("%s",name[0]); for(i=0;i<9;i++)     scanf("%s%lf%lf",data[0][i].name,&data[0][i].hp,&data[0][i].sp); scanf("%s",name[1]); for(i=0;i<9;i++)     scanf("%s%lf%lf",data[1][i].name,&data[1][i].hp,&data[1][i].sp); printf("Game %d: %s vs. %sn",ri,name[0],name[1]); ii[0]=ii[1]=0; run[0]=run[1]=0; hit[0]=hit[1]=0; no=1; while(!endgame()){     hitn=runn=0;     out[0]=0;     aa=0;dd=1;     pos[0]=pos[1]=pos[2]=0;     while(out[0]<3){         if(sacrifice()) dos();         else doh();     }     if(no!=9||run[0]>=run[1]){         out[1]=0;         aa=1;dd=0;         pos[0]=pos[1]=pos[2]=0;         while(out[1]<3){  if(sacrifice()) dos();  else doh();         }     }     printf("nInning %d:n",no++);     printf("Hits:n");     if(!hitn) printf("  nonen");     for(i=0;i<hitn;i++){         if(hits[i]>=10) printf("  %15s %15sn",data[1][hits[i]-10].name,name[1]);         else printf("  %15s %15sn",data[0][hits[i]].name,name[0]);     }     printf("n");     printf("Runs:n");     if(!runn) printf("  nonen");     for(i=0;i<runn;i++){         if(runs[i]>=10) printf("  %15s %15sn",data[1][runs[i]-10].name,name[1]);         else printf("  %15s %15sn",data[0][runs[i]].name,name[0]);     } } printf("nEnd of Game:n"); printf("  %15s %d runs, %d hitsn",name[0],run[0],hit[0]); printf("  %15s %d runs, %d hitsn",name[1],run[1],hit[1]);        }        if(kase) printf("n");    }    return 0;   }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374771.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号