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的更多相关文章
随机推荐
- 各种插值法的python实现
一维插值 插值不同于拟合.插值函数经过样本点,拟合函数一般基于最小二乘法尽量靠近所有样本点穿过.常见插值方法有拉格朗日插值法.分段插值法.样条插值法. 拉格朗日插值多项式:当节点数n较大时,拉格朗日插 ...
- 洛谷P1088——火星人(全排列+数学模拟)
题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学 ...
- 使用metaweblog API实现通用博客发布 之 本地图片自动上传以及替换路径
使用metaweblog API实现通用博客发布 之 本地图片自动上传以及替换路径 通过metaweblog API 发布博文的时候,由于markdown中的图片路径是本地路径,将导致发布的文章图片不 ...
- video.js视频播放插件
1 初始化 Video.js初始化有两种方式. 1.1 标签方式 一种是在<video>标签里面加上class="video-js"和data-setup='{}'属性 ...
- Zookeeper分布式安装部署
1. 解压安装 1.1 解压Zookeeper安装包到/opt/module/目录下 tar -zxvf /opt/software/apache-zookeeper-3.6.2-bin.tar.gz ...
- 怎么通俗的理解Netty呢?
目录 Netty(3.X) 简单体验 Netty的事件驱动机制 Netty的源码阅读 Netty(3.X) 有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,W ...
- 使用 FIO 对 Kubernetes 持久卷进行 Benchmark:读/写(IOPS)、带宽(MB/s)和延迟
工具 Dbench https://github.com/leeliu/dbench 用法 编辑 dbench.yaml 文件中的 storageClassName 以匹配你自己的 Storage C ...
- ActiveQq的代码实现
]从java代码开始再过渡到springboot Java代码的实现 1.activemq这个消息中间件有两种形式 1. p2p(生产者,消费者) 特点: 生产者: package com.lqh; ...
- Ajax与Gson
1. ajax的底层操作方法: 代码get请求 Get请求 2. Post请求 $("#chufa").click(function () { var val = $(" ...
- CF39C-Moon Craters【dp】
正题 题目链接:https://www.luogu.com.cn/problem/CF39C 题目大意 坐标轴上有\(n\)个圆,给出每个圆的位置\(c_i\)和半径\(r_i\). 要求选出最多的圆 ...