poj 3050 Hopscotch【搜索、去重】

简介: 点击打开题目 Hopscotch Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2126   Accepted: 1524 Description The...

点击打开题目

Hopscotch
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 2126   Accepted: 1524

Description

The cows play the child's game of hopscotch in a non-traditional way. Instead of a linear set of numbered boxes into which to hop, the cows create a 5x5 rectilinear grid of digits parallel to the x and y axes. 

They then adroitly hop onto any digit in the grid and hop forward, backward, right, or left (never diagonally) to another digit in the grid. They hop again (same rules) to a digit (potentially a digit already visited). 

With a total of five intra-grid hops, their hops create a six-digit integer (which might have leading zeroes like 000201). 

Determine the count of the number of distinct integers that can be created in this manner.

Input

* Lines 1..5: The grid, five integers per line

Output

* Line 1: The number of distinct integers that can be constructed

Sample Input

1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 2 1
1 1 1 1 1

Sample Output

15

Hint

OUTPUT DETAILS: 
111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, and 212121 can be constructed. No other values are possible.

题目翻译:给出一个5*5的矩阵,每一点都有一个数字,让你分别从任意一个数字出发,向上下左右移动,移动6次,所走的路线组成一个字符串,

求:一共可以组成多少个不同的字符串?


结题思路:从每一个点开始搜索,把每走六步的字符串转化成数字放到set里面,至于去重,交给神奇的set吧!


#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
int a[6][6],s[][2]={1,0,-1,0,0,1,0,-1};
set<int>p;
void dfs(int i,int j,int v,int num){
    if(v==6){
        p.insert(num);
        return ;
    }
    if(i<1||j<1||i>5||j>5)return ;
    else{
        for(int k=0;k<4;k++)
            dfs(i+s[k][0],j+s[k][1],v+1,num*10+a[i][j]);
    }
}
int main()
{
    int i,j;
    for(i=1;i<6;i++)
        for(j=1;j<6;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<6;i++)
        for(j=1;j<6;j++)
            dfs(i,j,0,0);
    printf("%d\n",p.size());
    return 0;
}



目录
相关文章
|
安全 Java 编译器
阿里巴巴Dragonwell
阿里巴巴Dragonwell
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
356 1
|
前端开发 JavaScript 定位技术
HTML中target的使用注意点
`target` 属性在 HTML 中主要用于 `&lt;a&gt;` 和 `&lt;form&gt;` 元素,指定链接打开或表单提交的位置。常见值包括 `_self`(当前窗口)、`_blank`(新窗口)、`_parent`(父框架)和 `_top`(整个窗口)。使用 `target=&quot;_blank&quot;` 时应加 `rel=&quot;noopener noreferrer&quot;` 以提高安全性。JavaScript 可动态设置 `target`,CSS 可增强样式。尽管 `target` 主要用于链接和表单,但在特定场景下也可应用于其他元素。
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
存储 缓存 数据处理
计算机随机访问存储器 (RAM)
【8月更文挑战第1天】
4473 5
|
SQL 数据可视化 大数据
【开源项目推荐】Apache Superset——最优秀的开源数据可视化与数据探索平台
【开源项目推荐】Apache Superset——最优秀的开源数据可视化与数据探索平台
880 33
|
.NET 开发框架
Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据
转载:http://www.cnblogs.com/zq281660880/archive/2012/09/26/2704836.html 今天在使用linq处理一下需求时碰到一点小问题,特此记录。   需求:     按照品名相同的进行汇总,数量相加、表号按分号分割显示   1、组织...
1453 0
EMQ
|
运维 网络协议 JavaScript
MQTT X CLI 正式发布:强大易用的 MQTT 5.0 命令行工具
下载桌面客户端、使用终端命令行或是在桌面浏览器上都可快速完成对 MQTT 的连接测试。
EMQ
520 0
MQTT X CLI 正式发布:强大易用的 MQTT 5.0 命令行工具
|
网络协议 网络安全 CDN
用全站 CDN 部署 Discourse 论坛
本文详细地讲述了如何使用 Cloudflare 和 Discourse 服务自建论坛的过程。
2532 0
用全站 CDN 部署 Discourse 论坛

热门文章

最新文章