zoukankan      html  css  js  c++  java
  • 2013“嘉杰信息”杯ACM/ICPC湘潭多省程序设计竞赛暨湘潭市第五届大学生程序设计竞赛 F题 five tiger 湘潭大学1173题

    解题报告:

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

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

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     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 }
  • 相关阅读:
    Vue3使用vue3-video-player
    centos搭建phantomjs
    windows与Linux写入后门
    webService静态调用方法
    Web开发学习笔记(日更)
    docker修改容器绑定端口
    linux下~/.bashrc、/etc/profile、 $PATH环境变量 作用和修改
    docker for windows安装,修改images位置,修改镜像源,查看/var/lib/docker/containers
    hive修改表DDL
    python 高性能异步爬虫线程&线程池
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3076372.html
Copyright © 2011-2022 走看看