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的更多相关文章
随机推荐
- Python3实现打格点算法的GPU加速
技术背景 在数学和物理学领域,总是充满了各种连续的函数模型.而当我们用现代计算机的技术去处理这些问题的时候,事实上是无法直接处理连续模型的,绝大多数的情况下都要转化成一个离散的模型再进行数值的计算.比 ...
- HashMap 为什么线程不安全?
作者:developer http://cnblogs.com/developer_chan/p/10450908.html 我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线 ...
- Appium问题解决方案(4)- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException
背景 操作步骤 运行 uiautomatorviewer.bat 点击左上角的 Device ScreensShot 报错 截图 解决方法 网上还是有很多方法的,可能造成的原因不同,我是第六种方法解决 ...
- Object类、Date类、Calendar类、System类、StringBuilder类和基本类型包装类
一.Object类--toString方法 1.普通类重写toString方法,不然打印出来是存在栈内存的对象引用名称的堆内存中该对象的地址值: 2.equals方法: String比较equals是 ...
- 在linux查询本机的公网IP
linux服务器查看公网IP信息的方法 最近在解决网络问题时,需要查看本机的出口公网IP信息,所以在网络上搜索和请求运维达人,获得如下两个方法: curl ifconfig.me 在linux系统中输 ...
- 1 行Python代码能干哪些事,这 13个你知道吗?
首先你要了解一下Python之禅,一行代码输出"The Zen of Python": python -c "import this"""& ...
- CodeForce-792C Divide by Three(数学)
Divide by Three CodeForces - 792C 有一个正整数 n 写在黑板上.它有不超过 105 位. 你需要通过删除一些位使得他变成一个美丽的数,并且需要删除尽量少的位数.删除的 ...
- Java Web实现登录验证码(Servlet+jsp)
1.生成验证码图片(Servlet) import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import j ...
- React框架的基本使用和了解
React: React详解: 安装react 脚手架工具: npm install -g create-react-app create-react-app 项目名称 cnpm react-dom ...
- ecshop刷新页面出现power by ecshop和链接的解决办法
当小伙伴在使用echop模板进行修改的时候,如果你删掉底部自带版权后,再调试程序刷新界面的时候,时不时就会冒出一个power by ecshop,而且是带有链接的,很不舒服,所以需要去掉,下面是最简单 ...