HDU 2410 Barbara Bennett's Wild Numbers (想法题)

来源:互联网 发布:网络公选课上课时间 编辑:程序博客网 时间:2024/06/01 17:11

题目链接:HDU 2410 Barbara Bennett's Wild Numbers

题意:给出两串数w,s(长度相同),第一串中有“?”,问“?”取的值使w对应的数大于s对应的数 的最大方案数。

思路:W,S一一对应比较;

遇到第一个’?‘之前比较情况

1.w[i]<s[i] 方案数0种;break;

2.w[i]>s[i] break。之后有n个‘’?‘ 方案数就有10的n次方种。

3.w[i]=s[i] 继续比较,重复1.2两个条件。

遇到’?‘

1.能取数个数是 ’9‘-x[i]。之后10的n次方。

2.取等于x[i] ,继续比较。


AC代码:


#include<stdio.h>#include<string.h>char w[20],x[20];int get(int i,int temp,int len){    int j;    for(j=i+1; j<len; j++)    {        if(w[j]=='?')            temp*=10;    }    return temp;}int main(){    int len,i,j;    while(scanf("%s",w)!=EOF)    {        if(strcmp(w,"#")==0)            break;        scanf("%s",x);        len=strlen(w);        int ans=0;        for(i=0; i<len; i++)        {            if(w[i]=='?')                ans+=get(i,'9'-x[i],len);            else            {                if(w[i]==x[i])                    continue;                if(w[i]>x[i])                    ans+=get(i,1,len);                break;            }        }        printf("%d\n",ans);    }    return 0;}/*12?4?1235412?5?12354*/


1 0
原创粉丝点击