重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

codejamProblemC.RecycledNumbers-创新互联

http://code.google.com/codejam/contest/1460488/dashboard#s=p2codejamProblemC.
RecycledNumbers

我做模拟题是一向不行的 这道题搞了我m久 发现我对数字真的是非常不敏感~

创新互联坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。10年网站建设经验创新互联是成都老牌网站营销服务商,为您提供成都网站设计、网站建设、网站设计、H5网站设计、网站制作、品牌网站建设小程序开发服务,给众多知名企业提供过好品质的建站服务。

只是解决了small data而已 large data模拟肯定是不行的

这道题 有一个点我觉得很巧妙

而且终于将sprintf sscanf strncpy 用了一下 挺好用哒~

#include 
#include
#include

using namespace std;
#define MAX 2000000
int vis[MAX];
int m,n;
int count( int num )
{
int  val, i, sum = 0;
char tmp[10]={0}, head[10]={0}, str[10];
    sprintf(str,"%d", num);
int len = strlen(str);
for( i=0; i num 简化了计算呐!! 就是循环得到的数比num小就忽略 因为肯定已经加过了
// vis[val]!=num 是避免重复计算 题目要求   if( val>=m && val<=n && val>num  && vis[val]!=num )
        {
            sum++,  vis[val] = num;
        }
    }
return sum;
}
int main()
{
int nCase = 1, i, cas, tot;
    freopen("./new.in", "r", stdin);
    freopen("./new.out", "w", stdout);
    scanf("%d", &cas);
while( cas-- )
    {
        tot= 0;
        scanf("%d %d", &m, &n);
        memset(vis,-1, sizeof(vis));
for( i=m; i<=n; i++ )
        {
            tot+= count(i);
        }
        printf("Case #%d: %d
", nCase++, tot);
    }
return 0;
}


当前题目:codejamProblemC.RecycledNumbers-创新互联
标题路径:http://cqcxhl.cn/article/djggci.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP