Codeforces1575D
思路分析
- 此题采用dfs,注意X选中了之后所有的X值相同,所以需要一个flag来存储X的值。
- 注意前导0要单独讨论,然后就是当'X'或者'_'在第一位时不能选0,其它位可以选0 - 9 任意一个数。
代码如下
//now-当前位数 flag-X的值 num-当前数的大小
#include <bits/stdc++.h>
using namespace std;
string s;
int ans;
void dfs(int now, int flag, int num)
{
if (now == s.size())
{
if (num % 25 == 0)
{
ans++;
}
return;
}
if (s[now] != 'X' && s[now] != '_')
{
//如果当前位为数,那就dfs下一位
dfs(now + 1, flag, num * 10 + s[now] - '0');
}
else if (s[now] == 'X')
{
if (flag != -1)
dfs(now + 1, flag, num * 10 + flag);
//如果前面已经选好了X的值,那么加上这个值即可
else
{
int down = 0;
if (now == 0 && s.size() > 1)
down = 1;
for (int i = down; i <= 9; i++)
{
dfs(now + 1, i, num * 10 + i);
}
//第一次出现X,有两种情况,第一种是在第一位,那么只能选1-9,否则可以选0-9
}
}
else if (s[now] == '_')
{
int down = 0;
if (now == 0 && s.size() > 1)
{
down = 1;
}
for (int i = down; i <= 9; i++)
{
dfs(now + 1, flag, num * 10 + i);
}
//与X同理
}
}
int main()
{
cin >> s;
if (s[0] == '0' && s.size() > 1)
{
cout << 0 << endl;
return 0;
}
else
{
dfs(0, -1, 0);
cout << ans << endl;
return 0;
}
}
Codeforces1575D的更多相关文章
随机推荐
- Kubernetes-Pod介绍(-)
前言 本篇是Kubernetes第四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战.从现在开始都是重要的核心概念,此篇偏一些Pod的概念介绍,后续每篇都会有实战. Kubernetes系列 ...
- MySQL版本浅介
一.关于MySQL发行版介绍: 1. MySQL官方发行版 MySQL是最流行的数据库,主要特点: 简单:MySQL使用很简单,可以无师自通地参照文档安装运行和使用MySQL,几乎没有什么门槛. 开源 ...
- elsa-core:4.ASP.NET Core Server with Elsa Dashboard
在本快速入门中,我们将了解一个最小的 ASP.NET Core 应用程序,该应用程序承载 Elsa Dashboard 组件并将其连接到 Elsa Server. ElsaDashboard + Do ...
- noip模拟43
A. 第一题 儿子遍历顺序按深度由小到大即可 B. 第二题 二分最小值,以点权作为初始距离跑最长路即可 直接用大根堆跑 \(dij\) 会 \(T\),考虑初始权值可以处理,且边权一定,用类似蚯蚓的方 ...
- 性能测试必备命令(1)- free
性能测试必备的 Linux 命令系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1819490.html 介绍 显示系统的内存使用情况 语 ...
- IPsec 9个包分析(主模式+快速模式)
第一阶段:ISAKMP协商阶段 1.1 第一包 包1:发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP,该协议提供的是一个框架,里面的负载Next payload类似模块,可 ...
- C# List集合类常用操作:三、查找
List集合查询数据 List<Employees> employees = new List<Employees>(); employees.Add(new Employee ...
- Spring Boot中使用@Async的时候,千万别忘了线程池的配置!
上一篇我们介绍了如何使用@Async注解来创建异步任务,我可以用这种方法来实现一些并发操作,以加速任务的执行效率.但是,如果只是如前文那样直接简单的创建来使用,可能还是会碰到一些问题.存在有什么问题呢 ...
- MySQL-技术专题-MySQL主从架构以及[半同步机制]模式大全
MySQL的主从复制 一般在大规模的项目上,都是使用MySQL的复制功能来创建MySQL的主从集群的. 主要是可以通过为数据库服务器配置一个或多个备库的方式来进行数据同步. 复制的功能不仅有利于构建高 ...
- UVA 1572 Self-Assembly(拓扑排序)
1 // 把一个图的所有结点排序,使得每一条有向边(u,v)对应的u都排在v的前面. 2 // 在图论中,这个问题称为拓扑排序.(toposort) 3 // 不难发现:如果图中存在有向环,则不存在拓 ...