Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

WA到死了···帮我看看,有注释!

Posted by xiaohanhoho at 2009-07-25 13:00:45 on Problem 3340
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

__int64 res;
char s1[1000];
char s2[1000];
int flag;
int len;

__int64 dfs(int t,int cnt,int k)               //k代表当前的大小关系 K=0表示等于   k=1表示s1大于s2 初始化为k=0 
{
	if(t==len)
 	{	
 	    res = cnt;
        return res;
    }    
    if(k==0)                       //若前面相等 
    {
    	if(s1[t]!='?')
    	{
    	    if(s1[t]<s2[t])           //当前小于,无解 
     			return 0; 
 			if(s1[t]>s2[t])                 //当前大于,保留结果向后递归 ,更改为大于 
 				return dfs(t+1,cnt,1);
	        if(s1[t]==s2[t])                 //当前等于,保留结果向后递归 ,更改为等于
	        	return dfs(t+1,cnt,0);
   		}  		
        else if(s1[t]=='?')
        	return dfs(t+1,((cnt==0)?1:cnt)*(9-s2[t]+'0'),1) + dfs(t+1,cnt,0);    
    }
    if(k==1)                      //若前面s1大于s2 
    {
    	 if(s1[t] !='?')
      		return dfs(t+1,cnt,1);
         else
         	return dfs(t+1,((cnt==0)?1:cnt)*10,1);  
    } 
}

int main()
{
    while(1)
    {
    	scanf("%s",s1);
     	if(!strcmp(s1,"#"))
      		break;
        scanf("%s",s2);
        len = strlen(s2);
        res = dfs(0,0,0);
        printf("%I64d\n",res);    
    }
    system("pause");
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator