题目链接

题意:给n个数a[i], 要求b[i]每位数的和等于a[i], 并且b[i]要严格递增 求最小的b[i]

b[0]最小一定是X9999...这样的形式

后面的b[i]位数一定大于等于前一个

用ans[i][0]记录b[i]的位数

也就是 每次从ans[i-0][0]位开始 若不满足b[i]>b[i-1] 则位数加1

位数加1之后 必定满足b[i]>b[i-1] 则之后只需用递归遍历各位即可

 int a[];
int ans[][];
bool dfs(int i, int num, int sum, bool f)
{
// printf("**********\n%d %d %d %d\n**********\n", i, num, sum, f);
if(!num)
return f;
for(int j=(f? (num==ans[i][]? :):ans[i-][num]);j<=;j++)
if(j+*(num-)>=sum && sum>=j && dfs(i, num-, sum-j, f || j>ans[i-][num]))
{
ans[i][num]=j;
return true;
}
return false;
}
int main()
{
int n;
while(~scanf("%d", &n))
{
for(int i=;i<=n;i++)
scanf("%d", &a[i]);
memset(ans, , sizeof(ans));
while(a[]>)
a[]-=, ans[][++ans[][]]=;
ans[][++ans[][]]=a[];
for(int i=ans[][];i>;i--)
printf("%d", ans[][i]);
printf("\n");
for(int i=;i<=n;i++)
{
ans[i][]=ans[i-][];
while(ans[i][]*<a[i])
ans[i][]++;
if(!dfs(i, ans[i][], a[i], ans[i][]>ans[i-][]))
{
ans[i][]++;
dfs(i, ans[i][], a[i], true);
}
for(int j=ans[i][];j>;j--)
printf("%d", ans[i][j]);
printf("\n");
}
}
return ;
}

Codeforces 509C

[模拟]Codeforces509C Sums of Digits的更多相关文章

  1. [codeforces 509]C. Sums of Digits

    [codeforces 509]C. Sums of Digits 试题描述 Vasya had a strictly increasing sequence of positive integers ...

  2. cf509C Sums of Digits

    C. Sums of Digits time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  3. Sums of Digits CodeForces - 509C (贪心,模拟)

    大意: 一个未知严格递增数组$a$, 给定每个数的数位和, 求$a[n]$最小的数组$a$ #include <iostream> #include <algorithm> # ...

  4. CodeForces 509C Sums of Digits(贪心乱搞)题解

    题意:a是严格递增数列,bi是ai每一位的和,告诉你b1~bn,问你怎样搞才能让an最小 思路:让ai刚好大于ai-1弄出来的an最小.所以直接模拟贪心,如果当前位和前一个数的当前位一样并且后面还能生 ...

  5. 【codeforces 509C】Sums of Digits

    [题目链接]:http://codeforces.com/contest/509/problem/C [题意] 给你一个数组b[i] 要求一个严格升序的数组a[i]; 使得a[i]是b[i]各个位上的 ...

  6. Codeforces 509C Sums of Digits

    http://codeforces.com/contest/509/problem/C  题目大意: 给出一个序列,代表原序列对应位置数的每一位的数字之和,原序列单调递增,问原序列的最后一个数最小的方 ...

  7. Codeforces 509C Sums of Digits 贪心

    这道题目有人用DFS.有人用DP 我觉得还是最简单的贪心解决也是不错的选择. Ok,不废话了,这道题目的意思就是 原先存在一个严格递增的Arrary_A,然后Array_A[i] 的每位之和为Arra ...

  8. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  9. AtCoder Beginner Contest 083 (AB)

    A - Libra 题目链接:https://abc083.contest.atcoder.jp/tasks/abc083_a Time limit : 2sec / Memory limit : 2 ...

随机推荐

  1. XML DOM操作,适用目前流行的浏览器

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  2. http协议与内容压缩

    为了加快网络上的传输的速度,可以将服务器传输的内容进行压缩,服务器的压缩方式有gzip压缩 deflate压缩 compress压缩 content-length:压缩后的长度 如何启动压缩功能 1, ...

  3. postgresql crosstab 行转列函数

    http://blog.csdn.net/hexin373/article/details/19242833

  4. 使用 Spring 2.5 基于注解驱动的 Spring MVC

    http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/ 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Sp ...

  5. C#学习笔记9:C#中的变量、转义符、显式转换和隐式转换

    1.变量的特性:可以重复的赋值 int a=4;  a=9; 2.常量:const int  number=10:这个常量不可变 如果你声明的变量,不想被其他人修改,那么就修饰为常量 声明在类的下面, ...

  6. HW--漂亮度

    描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和.每个字母都有一个“漂亮度”,范围在1到26之间.没有任何两个字母拥有相同的“漂亮度”.字母忽略大小 ...

  7. Android Metro风格的Launcher开发系列第二篇

    前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客http://www.cnblogs.com/2010wuhao/p ...

  8. ###STL学习--vector

    点击查看Evernote原文. #@author: gr #@date: 2014-08-11 #@email: forgerui@gmail.com vector的相关问题.<stl学习> ...

  9. UIButton 未响应原因分析

    1.父视图响应者链被阻断;例如:在 UILabel,UIImageView 控件添加UIButton,因为UILabel(userInteractionEnabled属性值为NO) 阻断了响应者链,所 ...

  10. 转:EF调用存储过程、函数

    EF调用存储过程.函数 2014-04-02 09:12:20|  分类: ORM框架|举报|字号 订阅          一.ef4.1 codeFirst 修改表结构 增加字段等 EF code ...