题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3368

就是讲一种下棋的方法,很多人小时候也应该玩过,输入8*8的矩阵代表棋盘,*代表空位

D代表黑子,L代表白子,现在你手里只有一颗黑子,问你把这颗黑子放在哪里能够吃掉最多的白子

当一个方向上(斜方向也算)首尾都是黑子的时候它中间的白子当然就会被吃掉。

因为只有8*8的大小,所以可以枚举每一个棋子的八个方向统计能够吃多少个白子,类似于DFS

起初想的是枚举每个黑子,但是后来发现了漏掉了类似于D L L * L L D的情况 而且要改貌似有点麻烦

L L L

D   D    D

索性就换成了枚举每个*的位置 这样的好处是不会漏掉特殊情况,也比较简短

 #include<cstdio>
#include<cstring>
using namespace std;
int yi[][]={{,},{,},{,-},{,},{,-},{-,},{-,},{-,-}}; //列举八个方向
char map[][];
int x,y,sum,m,i,j,k;
void dfs(int s)
{
if (x<||x>||y<||y>||map[x][y]=='*') return ;
if (map[x][y]=='L') {s++; } //统计这一个方向白子的个数
if (map[x][y]=='D') {m+=s; return ;} //每个方向上的个数加在一起
x=x+yi[k][];
y=y+yi[k][];
dfs(s);
}
int main()
{
int n,cut=;
scanf("%d",&n);
while (n--)
{
cut++;
sum=;
for (i=;i<;i++)
scanf("%s",&map[i]);
for (i=;i<;i++)
for (j=;j<;j++)
{
m=;
if (map[i][j]=='*')
{
for (k=;k<;k++)
{
x=i+yi[k][];//枚举八个方向
y=j+yi[k][];
dfs();
}
}
if (m>sum) sum=m;
}
printf("Case %d: %d\n",cut,sum);
}
return ;
}

  

hdu 3368 曾经下过的棋的更多相关文章

  1. HDU 3368 Reversi

    http://acm.hdu.edu.cn/showproblem.php?pid=3368 题意:模拟黑白棋,下一步黑手最大可以转化多少个白旗 分析:暴力 原先的思路是找到D然后遍历其八个方向,直到 ...

  2. HDU 2553 N皇后问题【棋盘型DFS】

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. HDU 3368 Reversi (暴力,DFS)

    题意:给定一个8*8的棋盘,然后要懂黑白棋,现在是黑棋走了,问你放一个黑子,最多能翻白子多少个. 析:我是这么想的,反正才是8*8的棋盘,那么就暴吧,反正不会超时,把每一个格能暴力的都暴力,无非是上, ...

  4. HDU 3853 向下向右找出口问题-期望dp

    题意:初始状态在(1,1)的位置.目标是走到(n,n).每次仅仅能向下向右或者不移动.已知在每一个格子时这三种情况的概率,每移动一步消耗2的魔力,求走到终点的使用的魔力的期望. 分析:简单的期望dp, ...

  5. hdu 1292 &quot;下沙野骆驼&quot;ACM夏令营 (递推)

    "下沙野骆驼"ACM夏令营 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/ ...

  6. HDU ACM 1267 下沙的沙子有几粒?-&gt;DP

    题意:m个H和n个D,从左開始数H的累积个数总不比D的累计数少的排列有多少种.比如,3个H和1个D共同拥有3种符合要求的排列H D H H,H H D H,H H  H D. 分析:状态方程为,DP[ ...

  7. 『HTML5实现人工智能』小游戏《井字棋》发布,据说IQ上200才能赢【算法&代码讲解+资源打包下载】

    一,什么是TicTacToe(井字棋) 本游戏为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿童欢迎. ...

  8. hdu 4512 吉哥系列故事——完美队形I【LCIS经典应用】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4512 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  9. React的井字过三关(3)

    这是React井字棋项目的最后一篇笔记,记述AI实现. 一. 是开头都会说的原理 但凡懂一点围棋的人都知道"大场"这个概念,可以浅显地把它理解为布局时棋盘上各处的要点.棋谚&quo ...

随机推荐

  1. poj2480-Longge's problem-(欧拉函数)

    Longge is good at mathematics and he likes to think about hard mathematical problems which will be s ...

  2. kangle请求控制添加的add_header怎么查看

    请求控制里添加的add header不会显示在浏览器的请求里,因为是发送给源的,你们要查看可以用phinfo查看.回应控制里添加的会显示在浏览器的回应里

  3. ORACLE grant权限

    oracle的系统和对象权限 本文转自: http://hi.baidu.com/zhaojing_boy/blog/item/0ffe95091266d939e824885f.html alter ...

  4. day25 面向对象之多态和鸭子类型

    1.封装方法 如何封装:给方法名称前面加上双下划线 # ATM 的取款功能 # 1.插入银行卡 2.输入密码 3.选择取款金额 4.取款 class ATM: def __insert_card(se ...

  5. TP3.23 与Laypage 结合进行分页

    demo地址:http://tp.ytlwin.top 控制器 <?php namespace Home\Controller; use Think\Controller; class Inde ...

  6. 103. Binary Tree Zigzag Level Order Traversal (Tree, Queue; BFS)

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  7. 6. ZigZag Conversion (字符串的连接)

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  8. wiper

    wiper - 必应词典 美['waɪpər]英['waɪpə(r)] n.手绢儿:搌布:揩布:(汽车风挡上的)雨刷器 网络刮水器:雨刮器:拭雨器 变形复数:wipers:

  9. 100-days: Five

    Title: Feel better now ? The rise and rise of the anxiety economy(焦虑经济) rise and rise 一直上升 anxiety n ...

  10. python第三方库requests简单介绍

    一.发送请求与传递参数 简单demo: import requests r = requests.get(url='http://www.itwhy.org') # 最基本的GET请求 print(r ...