博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2013“嘉杰信息”杯ACM/ICPC湘潭多省程序设计竞赛暨湘潭市第五届大学生程序设计竞赛 F题 five tiger 湘潭大学1173题...
阅读量:5170 次
发布时间:2019-06-13

本文共 2586 字,大约阅读时间需要 8 分钟。

解题报告:

题目大意:五虎棋是一种棋,规则这里就不说了,现在给出一种一种棋盘的局面图,问题是分别求出两方所得到的分数。

模拟题,我是直接暴力将每种情况都枚举出来,先定义一个map[][]数组,将棋盘局面存起来,然后对每一种可以得分的方案进行判断,因为数据量不大,一共就25个点。代码可能会有点长。。。。。

View Code
1 #include
2 #include
3 char map[6][6]; 4 int bigtiger(char ch) { 5 if(map[1][1]==ch&&map[1][5]==ch&&map[3][3]==ch&&map[5][1]==ch&&map[5][5]==ch) 6 return 10; 7 else 8 return 0; 9 }10 int tiger(char ch) {11 int sum=0;12 for(int i=1;i<=3;++i)13 for(int j=1;j<=3;++j) {14 if(map[i][j]==ch&&map[i][j+2]==ch&&map[i+1][j+1]==ch&&map[i+2][j]==ch&&map[i+2][j+2]==ch)15 sum+=5;16 }17 return sum;18 }19 int tongtian(char ch) {20 int sum=0;21 for(int i=1;i<=5;++i)22 if(map[i][1]==ch&&map[i][2]==ch&&map[i][3]==ch&&map[i][4]==ch&&map[i][5]==ch)23 sum+=5;24 for(int i=1;i<=5;++i)25 if(map[1][i]==ch&&map[2][i]==ch&&map[3][i]==ch&&map[4][i]==ch&&map[5][i]==ch)26 sum+=5;27 if(map[1][5]==ch&&map[2][4]==ch&&map[3][3]==ch&&map[4][2]==ch&&map[5][1]==ch)28 sum+=5;29 if(map[1][1]==ch&&map[2][2]==ch&&map[3][3]==ch&&map[4][4]==ch&&map[5][5]==ch)30 sum+=5;31 return sum;32 }33 int sixie(char ch) {34 int sum=0;35 if(map[1][4]==ch&&map[2][3]==ch&&map[3][2]==ch&&map[4][1]==ch)36 sum+=4;37 if(map[2][1]==ch&&map[3][2]==ch&&map[4][3]==ch&&map[5][4]==ch)38 sum+=4;39 if(map[2][5]==ch&&map[3][4]==ch&&map[4][3]==ch&&map[5][2]==ch)40 sum+=4;41 if(map[1][2]==ch&&map[2][3]==ch&&map[3][4]==ch&&map[4][5]==ch)42 sum+=4;43 return sum;44 }45 int sanxie(char ch) {46 int sum=0;47 if(map[1][3]==ch&&map[2][2]==ch&&map[3][1]==ch)48 sum+=3;49 if(map[3][1]==ch&&map[4][2]==ch&&map[5][3]==ch)50 sum+=3;51 if(map[3][5]==ch&&map[4][4]==ch&&map[5][3]==ch)52 sum+=3;53 if(map[1][3]==ch&&map[2][4]==ch&&map[3][5]==ch)54 sum+=3;55 return sum;56 }57 int xiaodou(char ch) {58 int sum=0;59 for(int i=1;i<=4;++i)60 for(int j=1;j<=4;++j)61 if(map[i][j]==ch&&map[i][j+1]==ch&&map[i+1][j]==ch&&map[i+1][j+1]==ch)62 sum+=1;63 return sum;64 }65 int main() {66 int T;67 scanf("%d",&T);68 while(T--) {69 int ans1=0,ans2=0;70 for(int i=1;i<=5;++i)71 scanf("%s",map[i]+1);72 ans1=bigtiger('x')+tiger('x')+tongtian('x')+sixie('x')+sanxie('x')+xiaodou('x');73 ans2=bigtiger('o')+tiger('o')+tongtian('o')+sixie('o')+sanxie('o')+xiaodou('o');74 printf("%d %d\n",ans1,ans2);75 }76 return 0;77 }

 

 

转载于:https://www.cnblogs.com/xiaxiaosheng/archive/2013/05/13/3076372.html

你可能感兴趣的文章
英语六级翻译训练:教育专题
查看>>
从商品类目到属性
查看>>
使用Eclipse创建的第一个javabean,cannot resolved to a type
查看>>
通天之潜水(洛谷 1759)
查看>>
Tutorial: Facebook analytics using Power BI Desktop
查看>>
使用Promise发送多个异步请求, 全部完成后再执行
查看>>
BoneCP学习笔记
查看>>
ES6系列之let/const及块级作用域
查看>>
简单易学的OA报表
查看>>
微信小程序DEMO初体验
查看>>
Shell中$X的含义
查看>>
ie7span标签float换行悬浮
查看>>
软件工程
查看>>
前台传来的文件通过流stream转成bytes 再把文件写入数据库 类型是blob
查看>>
总结java IDE (eclipse)快捷键
查看>>
关于键盘事件对象code值
查看>>
Qt QString to char*
查看>>
[luoguP3332] [ZJOI2013]K大数查询(树套树)
查看>>
[BZOJ1594] [Usaco2008 Jan]猜数游戏(二分 + 并查集)
查看>>
SecureCRT连接Ubuntu,centos失败解决
查看>>