POJ 3340 & HDU 2410 Barbara Bennett's Wild Numbers(数学)「建议收藏」

POJ 3340 & HDU 2410 Barbara Bennett's Wild Numbers(数学)

大家好,又见面了,我是全栈君。

题目链接:

PKU:http://poj.org/problem?id=3340

HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2410

Description

wild number is a string containing digits and question marks (like 36?1?8). A number X matches a wild number W if they have the same length, and every non-question mark character in X is equal to the character in the same position in W (it means that you can replace a question mark with any digit). For example, 365198 matches the wild number 36?1?

8, but 360199, 361028, or 36128 does not. Write a program that reads a wild number W and a number X from input, both of length n, and determines the number of n-digit numbers that match W and are greater than X.

Input

There are multiple test cases in the input. Each test case consists of two lines of the same length. The first line contains a wild number W, and the second line contains an integer number X. The length of input lines is between 1 and 10 characters. The last line of input contains a single character #.

Output

For each test case, write a single line containing the number of n-digit numbers matching W and greater than X (n is the length of W and X).

Sample Input

36?

1?

82364288?3910?5#

Sample Output

100
0
4

Source

题意:

给出两个数字字符串,串一中有’?’,问在‘?’位置填数字共同拥有多少中填法,保证串一大于串二!


代码例如以下:

#include <cstdio>
#include <cstring>
#include <cmath>
const int maxn = 17;
typedef __int64 LL;
int cont;
LL ans;
char s1[maxn];
char s2[maxn];
LL POW(LL n, LL k)
{
    LL s = 1;
    for(LL i = 0; i < k; i++)
    {
        s*=n;
    }
    return s;
}
void solve(int len, int k)
{
    for(int i = 0; i < len; i++)
    {
        if(s1[i] == '?

') { ans+=(9-(s2[i]-'0'))*POW(10,--cont); } else if(s1[i] < s2[i]) return ; else if(s1[i] > s2[i]) { ans+=POW(10,cont); return ; } }}int main(){ while(~scanf("%s",s1)) { ans = 0; cont = 0; if(s1[0] == '#') break; scanf("%s",s2); int len = strlen(s1); for(int i = 0; i < len; i++) { if(s1[i] == '?') cont++; } solve(len,0); printf("%I64d\n",ans); } return 0;}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116429.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 考研数学二常用公式_考研数学写公式有分吗

    考研数学二常用公式_考研数学写公式有分吗面(体)积公式一元二次方程基础极坐标方程与直角坐标转换切线与法线方程因式分解公式阶乘与双阶乘函数的奇偶性排列组合等差数列等比数列常用数列前n项和不等式三角函数公式诱导公式平方关系两角和与差的三角函数积化和差公式和差化积公式倍角公式半角公式万能公式其他公式反三角函数恒等式极限相关公式数列极限递推式重要极限公式常用等价无穷小1^∞型导数相关公式导数定义微分定义连续,可导及可微关系一元函数多元函数导数四则运算复合函数求导反函数求导参数方程

  • 旋转太极八卦

    旋转太极八卦太极八卦图,以同圆内的圆心为界,画出相等的两个阴阳鱼表示万物相互关系。阴鱼用黑色,阳鱼用白色,这是白天与黑夜的表示法。阳鱼的头部有个阴眼,阴鱼的头部有个阳眼,表示万物都在相互转化,互相渗透,阴中有阳,阳中有阴,阴阳相合,相生相克,即现代哲学中和矛盾对立统一规律表示法。哈哈,装了个逼。其实我就是想教大家用css3画出旋转太极八卦。仅此而已。实现效果如下图:Html的代码很简单,就一行…

  • 灰色关联度模型matlab_灰色关联分析法的适用范围

    灰色关联度模型matlab_灰色关联分析法的适用范围matlab之灰色关联分析法https://blog.csdn.net/m0_37286282/article/details/79183333

    2022年10月26日
  • android 磨皮原理,Android平台Camera实时滤镜实现方法探讨(九)–磨皮算法探讨(一)

    android 磨皮原理,Android平台Camera实时滤镜实现方法探讨(九)–磨皮算法探讨(一)上一篇开头提到了一些可用于磨皮的去噪算法,下面我们实现这些算法并且观察效果,咱不考虑实时性的问题该算法利用图像局部统计特性进行滤波处理,例如NXM像素的灰度图,首先计算点(i,j)所在窗口内(大小为(2n+1)(2m+1))的平均值m(i,j)以及均方差:得到加性去噪后的结果为:其中:1.根据原文提出的优化方法,首先是建立两个积分图,如图所示,点4的积分即为Sum(Ra)+Sum(Rb)+…

  • Springboot+Seata整合以及事务模式分析

    Springboot+Seata整合以及事务模式分析分布式事务一、分布式事务的组成部分事务参与者:对应的一个一个的微服务资源服务器:对应一个个微服务的数据库事务管理器:决策各个事务参与者的提交和回滚两阶段提交:准备阶段:向事务管理器向事务参与者发送预备请求,事务参与者在写本地的redo和undo日志,但是不提交,并且返回准备就绪的信息,最后提交的动作交给第二阶段来进行提交阶段:如果事务协调者收到失败或者超时的信息,直接给每个参与者发送回滚消息;否则提交消息,最后根据协调者的指令释放所有事务处理过程中使用的资源锁二、项目例子当前依赖,

  • pythoncharm怎么改字体大小_pycharm更改字体大小

    pythoncharm怎么改字体大小_pycharm更改字体大小pycharm在File->settings中设置font大小时发现size框无法输入。查了下资料点击下上面的saveas按钮创建一个信息的模块名称就可以了。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号