[模拟]Codeforces509C Sums of Digits
题意:给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的更多相关文章
- [codeforces 509]C. Sums of Digits
[codeforces 509]C. Sums of Digits 试题描述 Vasya had a strictly increasing sequence of positive integers ...
- cf509C Sums of Digits
C. Sums of Digits time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Sums of Digits CodeForces - 509C (贪心,模拟)
大意: 一个未知严格递增数组$a$, 给定每个数的数位和, 求$a[n]$最小的数组$a$ #include <iostream> #include <algorithm> # ...
- CodeForces 509C Sums of Digits(贪心乱搞)题解
题意:a是严格递增数列,bi是ai每一位的和,告诉你b1~bn,问你怎样搞才能让an最小 思路:让ai刚好大于ai-1弄出来的an最小.所以直接模拟贪心,如果当前位和前一个数的当前位一样并且后面还能生 ...
- 【codeforces 509C】Sums of Digits
[题目链接]:http://codeforces.com/contest/509/problem/C [题意] 给你一个数组b[i] 要求一个严格升序的数组a[i]; 使得a[i]是b[i]各个位上的 ...
- Codeforces 509C Sums of Digits
http://codeforces.com/contest/509/problem/C 题目大意: 给出一个序列,代表原序列对应位置数的每一位的数字之和,原序列单调递增,问原序列的最后一个数最小的方 ...
- Codeforces 509C Sums of Digits 贪心
这道题目有人用DFS.有人用DP 我觉得还是最简单的贪心解决也是不错的选择. Ok,不废话了,这道题目的意思就是 原先存在一个严格递增的Arrary_A,然后Array_A[i] 的每位之和为Arra ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- AtCoder Beginner Contest 083 (AB)
A - Libra 题目链接:https://abc083.contest.atcoder.jp/tasks/abc083_a Time limit : 2sec / Memory limit : 2 ...
随机推荐
- XML DOM操作,适用目前流行的浏览器
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- http协议与内容压缩
为了加快网络上的传输的速度,可以将服务器传输的内容进行压缩,服务器的压缩方式有gzip压缩 deflate压缩 compress压缩 content-length:压缩后的长度 如何启动压缩功能 1, ...
- postgresql crosstab 行转列函数
http://blog.csdn.net/hexin373/article/details/19242833
- 使用 Spring 2.5 基于注解驱动的 Spring MVC
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/ 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Sp ...
- C#学习笔记9:C#中的变量、转义符、显式转换和隐式转换
1.变量的特性:可以重复的赋值 int a=4; a=9; 2.常量:const int number=10:这个常量不可变 如果你声明的变量,不想被其他人修改,那么就修饰为常量 声明在类的下面, ...
- HW--漂亮度
描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和.每个字母都有一个“漂亮度”,范围在1到26之间.没有任何两个字母拥有相同的“漂亮度”.字母忽略大小 ...
- Android Metro风格的Launcher开发系列第二篇
前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客http://www.cnblogs.com/2010wuhao/p ...
- ###STL学习--vector
点击查看Evernote原文. #@author: gr #@date: 2014-08-11 #@email: forgerui@gmail.com vector的相关问题.<stl学习> ...
- UIButton 未响应原因分析
1.父视图响应者链被阻断;例如:在 UILabel,UIImageView 控件添加UIButton,因为UILabel(userInteractionEnabled属性值为NO) 阻断了响应者链,所 ...
- 转:EF调用存储过程、函数
EF调用存储过程.函数 2014-04-02 09:12:20| 分类: ORM框架|举报|字号 订阅 一.ef4.1 codeFirst 修改表结构 增加字段等 EF code ...