Codeforces 509C Sums of Digits
http://codeforces.com/contest/509/problem/C
题目大意:
给出一个序列,代表原序列对应位置数的每一位的数字之和,原序列单调递增,问原序列的最后一个数最小的方案每一个数是多少。
思路:贪心,从1到n,我们尽量让每个数最小就可以了。
1 #include<cstdio> 2 #include<cmath> 3 #include<algorithm> 4 #include<cstring> 5 #include<iostream> 6 int g[200005],n,a[200005]; 7 int read(){ 8 int t=0,f=1;char ch=getchar(); 9 while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} 10 while ('0'<=ch&&ch<='9'){t=t*10+ch-'0';ch=getchar();} 11 return t*f; 12 } 13 void work(int x,int y){ 14 if (x==y){ 15 g[1]++; 16 int i=1; 17 while (i<=g[0]||g[i]>9){ 18 g[i+1]+=g[i]/10; 19 g[i]%=10; 20 i++; 21 } 22 while (i>1&&g[i]==0) i--; 23 g[0]=i; 24 x=0; 25 for (int i=1;i<=g[0];i++) 26 x+=g[i]; 27 } 28 if (x>y){ 29 int j=0,i; 30 for (i=1;i<=g[0]&&x-j>=y;i++) j+=g[i]; 31 while (g[i]==9) i++; 32 for(g[i--]++;i;i--) g[i]=0; 33 int k=1; 34 while (k<=g[0]||g[k]>9){ 35 g[k+1]+=g[k]/10; 36 g[k]%=10; 37 k++; 38 } 39 while (k>1&&g[k]==0) k--; 40 g[0]=k; 41 x=0; 42 for (int i=1;i<=g[0];i++) 43 x+=g[i]; 44 } 45 int i; 46 for (i=1;x<y;i++) 47 if (9-g[i]+x>=y) g[i]+=y-x,x=y; 48 else x+=9-g[i],g[i]=9; 49 if (g[0]<i-1) g[0]=i-1; 50 } 51 int main(){ 52 n=read(); 53 for (int i=1;i<=n;i++) a[i]=read(); 54 for (int i=1;i<=n;i++){ 55 work(a[i-1],a[i]); 56 for (int j=g[0];j>=1;j--) 57 printf("%d",g[j]); 58 puts(""); 59 } 60 return 0; 61 }
转载于:https://www.cnblogs.com/qzqzgfy/p/5630012.html
Codeforces 509C Sums of Digits相关推荐
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- CodeForces - 1373E Sum of Digits(贪心)
题目链接:点击查看 题目大意:设 f( x ) 为 x 的数位之和,给出一个 n 和一个 k ,求 的最小 x ,若不存在,输出 -1 题目分析:因为 n 和 k 比较小,所以可以打表,当 k 为 ...
- 【CodeForces - 260A】Adding Digits (思维构造)
题干: Vasya has got two number: a and b. However, Vasya finds number a too short. So he decided to rep ...
- codeforces E. Sum of Digits
这题可以暴力打本地表... 等正解出来再搞正解 对于k=0 我们让9尽量多就行 这个可以特判 对于k=1 暴力打表到1e9 对于k>=2 暴力打表到1e6(发现1e6以上就没有变化了) 当然这 ...
- 【数位DP】CF 54C,509C,431D,628D,855E,1245F,95D
这一次有题解了!! T1:CF54C First Digit Law title solution code T2:CF509C Sums of Digits title solution code ...
- codefroces13A
题目链接http://codeforces.com/problemset/problem/13/A Numbers Problem Description Little Petya likes num ...
- CS61A Lab 1
更好的阅读体验 Lab 1: Variables & Functions, Control lab01.zip What Would Python Display? (WWPD) Q1: WW ...
- Codeforces 348C:Subset Sums
Codeforces 348C:Subset Sums 题目链接:http://codeforces.com/contest/348/problem/C 题目大意:给出$n$个数,$m$个集合(每个集 ...
- codeforces 1060b Maximum Sum of Digits(思维题)
You are given a positive integer n Let S(x) be sum of digits in base 10 representation of x, for exa ...
最新文章
- 用最少的时间学最多的数据挖掘知识(附教程数据源)| CSDN博文精选
- Android studio 不显示自定义View 的提示
- Linux内核网络数据包发送(三)——IP协议层分析
- 开发日记-20190702 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 8
- 怎么样才能让自己自律起来_一个人如何才能高度自律(深度好文)
- Python学习笔记(四)Python函数
- 216. Combination Sum III
- 指针的指针(二级指针)本质
- 手把手教你 如何安装 Ubuntu(乌班图)
- H3C无线控制器做用户隔离和DHCP Relay的注意事项
- 响应式2022英文企业官网源码,感觉挺有创意的
- 硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等
- 什么是MCU、MPU、DSP与FPGA
- “李记餐厅”微信点餐小程序+后台管理系统
- 【Python教程】十八、这根本就不是我的错嘛~Python的异常处理
- RabbitMQ 下载安装 (window) 百度网盘
- 使用U盘重装win10系统
- 网易im 会话列表不显示的问题
- 主属性,范式,超码,码,非主属性,全码
- 数据清洗中异常值(离群值)的判别和处理方法
热门文章
- Reddit大热,伯克利PPT带你丝滑入门机器学习:知识点全面覆盖,笔记可搭配食用...
- 活动推荐 | 首届“中新人工智能高峰论坛”,与周志华、李德毅等大咖对话未来...
- 芯片大神Jim Keller从特斯拉离职,转投“宿敌”英特尔
- 旷视科技Face++进军机器人业务
- Mysql你应该要懂索引知识
- 《例说8051:单片机程序设计案例教程》——第 2 章 输出口的应用
- !!!SQL sever 函数表达
- Exchange server 2010系列教程之四 如何卸载exchange server 2010
- 安装VxWorks 6.6有感
- Redis 常用命令(学习笔记二)