第一轮 M

Milliard Vasya's Function
Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u
Submit Status

Description
Vasya is the beginning mathematician. He decided to make an important contribution to the science and to become famous all over the world. But how can he do that if the most interesting facts such as Pythagor’s theorem are already proved? Correct! He is to think out something his own, original. So he thought out the Theory of Vasya’s Functions. Vasya’s Functions (VF) are rather simple: the value of the Nth VF in the point S is an amount of integers from 1 to N that have the sum of digits S. You seem to be great programmers, so Vasya gave you a task to find the milliard VF value (i.e. the VF with N = 10 9) because Vasya himself won’t cope with the task. Can you solve the problem?

Input
Integer S (1 ≤ S ≤ 81).

Output
The milliard VF value in the point S.

Sample Input
input	output

1

10

/*************************************************************************
	> File Name: m.cpp
	> Author: yuan
	> Mail:
	> Created Time: 2014年11月10日 星期一 22时24分14秒
 ************************************************************************/

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<stdlib.h>
#include<algorithm>
#include<cmath>
#define MAX 1000000000
using namespace std;
char str[15];
//int ans[82];
int main()
{
   /* int t=MAX;
    printf("%d\n",t);
    memset(ans,0,sizeof(ans));
    for(int i=1;i<=MAX;i++)
    {
       memset(str,0,sizeof(str));
        sprintf(str,"%d",i);
        int l=strlen(str);
        int sum=0;
        for(int j=0;j<l;j++)
        {
            sum+=str[j]-'0';
        }
        ans[sum]++;
    }
    for(int i=1;i<=81;i++)
    {
        printf(",%d",ans[i]);
    }*/
    int ans[82]={0,10,45,165,495,1287,3003,6435,12870,24310,43749,75501,125565,202005,315315,478731,708444,1023660,1446445,2001285,2714319,3612231,4720815,6063255,7658190,9517662,11645073,14033305,16663185,19502505,22505751,25614639,28759500,31861500,34835625,37594305,40051495,42126975,43750575,44865975,45433800,45433800,44865975,43750575,42126975,40051495,37594305,34835625,31861500,28759500,25614639,22505751,19502505,16663185,14033305,11645073,9517662,7658190,6063255,4720815,3612231,2714319,2001285,1446445,1023660,708444,478731,315315,202005,125565,75501,43749,24310,12870,6435,3003,1287,495,165,45,9,1};
    int ll;
    while(~scanf("%d",&ll)){
        printf("%d\n",ans[ll]);
    }
    return 0;
}

时间: 2024-10-18 11:31:59

第一轮 M的相关文章

2014年百度之星程序设计大赛 - 初赛(第一轮) hdu Grids (卡特兰数 大数除法取余 扩展gcd)

题目链接 分析:打表以后就能发现时卡特兰数, 但是有除法取余. f[i] = f[i-1]*(4*i - 2)/(i+1); 看了一下网上的题解,照着题解写了下面的代码,不过还是不明白,为什么用扩展gcd, 不是用逆元吗.. 网上还有别人的解释,没看懂,贴一下: (a / b) % m = ( a % (m*b)) / b 笔者注:鉴于ACM题目特别喜欢M=1000000007,为质数: 当gcd(b,m) = 1, 有性质: (a/b)%m = (a*b^-1)%m, 其中b^-1是b模m的逆

第一轮迭代团队贡献分分配

经过我们团队的讨论,第一轮迭代团队贡献的分配方案如下: 团队成员 最终得分 高孟烨 64 邓亚梅 39 陈少杰 62 金鑫 57 雷元勇 36 王迪 37 郑培蕾 55 第一轮迭代的成绩让我们都不是很满意,所以成败就看M2阶段了,小伙伴们加油啦~ 暂定转会的成员是邓亚梅,明天上课的时候最后确定.

ZJOI2017第一轮游记

ZJOI2017第一轮:2017.3.20---3.23 Day 0 有好多天没做作业了,感觉不错. 温州还是不错的,宾馆也很满意. 感觉明天会听不懂. Day1 第一节课的前半部分还能勉强听懂,后面和下午一脸懵逼. 第一节课是有XJ中学的周子鑫学长上的搜索题,下面是一点总结. part 1:折半搜索 比如说双向广搜之类的,主要是从起点和终点交替搜或者是同时搜,可以降低搜索复杂度. 如果答案容易合并,或者搜索的操作可逆,可以考虑折半搜索. 还有一个技巧,要算方案数时,将折半的两边都存入hash数

2014第六届华为编程大赛初赛第一轮

/*********************************************************************** 1.投票问题 输入若干候选人,以及投票,格式如下,输出(按输入候选人输入顺序)候选人以及得票,以及 无效票数. Input: addCandidate xx1 addCandidate xx2 addCandidate xx3 addCandidate xx4 addCandidate xx5 addCandidate xx6 vote xx2 vot

第一轮面试题汇总

1.描述下数据库中的事务--ACID各个的特点 原子性(Atomicity):事务中的操作要么全部成功要么全部失败. 一致性(Consistency):事务前后数据的完整性必须保持一致. 隔离性(Isolation):多个并发的事务之间是相互隔离的,互不干扰的. 持久性(Durability):事务提交后,数据是永久改变的. 2.什么是springboot?你们公司是用的哪个版本? SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快

Microsoft Interview第一轮

上来随意交谈了一小会儿,开了点小玩笑,chat了一些关于他们recruter行程的话题,缓和了一下气氛. 进入正题,问了做的research的方向,我说是DLT,然后大概给他讲解了一下具体是什么, 跟平行计算很像,举了一个例子:矩阵乘法如何划分使并行效率最高.他表示理解.然后他又问我有没有过end to end的experience, front end back end那种, 我跟他简单介绍了一个简历上的social database设计的project,简单介绍了我们front end和ba

羊年在即,第一轮资源大放送!

新年新气象,现将平时积攒的开发资源献给大家,希望对于大家平时的工作或学习有所帮助,本人从事开发和架构多年,以后大家有什么问题都可以跟我交流,我也乐于给大家提供力所能及的帮助! 大家拿起手机扫一扫本人微信号吧,以后有更多优质资源送出,希望大家关注: 第一拨资源主要是jquery前端开发资源,附带可运行示例: 178图库jQuery相册代码:点击下载 2款基于jQuery实现的页面预加载动画特效源码:点击下载 360°三维视图jquery插件:点击下载 360音乐歌手切换jQuery选项卡:点击下载

面经:Bloomberg Internship第一轮

上来先问了一个系统设计的问题,一个front end, 一个back end. front end有很多UI,一个UI对10个多customers,back end有许多processor,或者processor有多个进程.线程.问应该怎么设计这个并行分布运算的系统,才能让独立的任务得到优化. 完全那这个系统设计没有办法,需要有相应的经验才能答这种题.不知道为什么new grad也要问系统设计 这其中问了一些父子进程.线程各自的优劣 第一个算法题是给个String,比如AABBBCCCDD,问怎

[算法第一轮复习] kruskal求最小生成树算法

最小生成树算法即MST,有kruskal,prim两种算法,这里主要介绍kruskal 什么是最小生成树? 对于一个图,保证其中每个点都可以连通的最小的花费 1.算法核心 贪心+并查集 2.算法实现过程 克鲁斯卡尔算法 假设 WN=(V,{E}) 是一个含有 n 个顶点的连通网,则按照克鲁斯卡尔算法构造最小生成树的过程为:先构造一个只含 n 个顶点,而边集为空的子图,若将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有 n 棵树的一个森林.之后,从网的边集 E 中选取一条权值最小的边,若该

[算法第一轮复习] 最短路算法之dijkstra

1.算法描述 dijkstra,一种求单源正权图上的最短路的算法 主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止 Dijkstra算法思想为:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将 加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中.在加入的过程中,总保持从源