【CS Round #39 (Div. 2 only) C】Reconstruct Sum
【Link】:https://csacademy.com/contest/round-39/task/reconstruct-sum/
【Description】
给你一个数字S;
让你找有多少对A,B
满足A+B=S
然后再给你一个01串,表示某一位在算加法的时候有没有进位;
在上面的A,B中筛选出符合这个01串的A,B;
输出对数.
【Solution】
对S的每一位考虑;
从后往前
如果该位x的后一位进了一位到这一位;
则两个加数在这一位上的需要的数字为x=x-1,否则仍为x
然后看看这一位会不会产生进位;
如果产生了进位;
则把x加上10;
即x+=10
我们考虑A在这一位的数字;
假设是t
则
0<=t<=9
0<=x-t<=9
则有
x-9<=t<=x
对x 分类讨论;
若
①x>=10
则
x-9<=t<=9
②x<=9
则
0<=t<=x;
乘法原理做一下就好;
(对于x<0的情况,直接输出无解)
【NumberOf WA】
0
【Reviw】
【Code】
#include <bits/stdc++.h>
#define int long long
char s1[20],s2[20];
int a1[20],a2[20];
int len;
main(){
scanf("%s",s1+1);
len = strlen(s1+1);
for (int i = 1;i <= len;i++)
a1[i] = s1[i]-'0';
for (int i = 1;i <= len-1;i++)
scanf("%lld",&a2[i]);
a2[len] = 0;
int x = 0,ans = 1;
for (int i2 = 1,i1 = len;i2 <= len;i2++,i1--){
int temp;
temp = a1[i1]-x;
if (a2[i2]==1) {
temp+=10;
x = 1;
}else x = 0;
if (temp<0) return puts("0"),0;
if (temp <= 9)
ans = ans*(temp+1);
else
ans = ans*(9-(temp-9)+1);
}
printf("%lld\n",ans);
return 0;
}
【CS Round #39 (Div. 2 only) C】Reconstruct Sum的更多相关文章
- 【CS Round #39 (Div. 2 only) D】Seven-segment Display
[Link]:https://csacademy.com/contest/round-39/task/seven-segment-display/ [Description] 0..9各自有一个数字, ...
- 【CS Round #39 (Div. 2 only) B】Circle Elimination
[Link]:https://csacademy.com/contest/round-39/task/circle-elimination/ [Description] [Solution] 把n个点 ...
- 【CS Round #39 (Div. 2 only) A】Removed Pages
[Link]: [Description] [Solution] 每读入一个x; 把a[(x-1)/2]置为1即可; 统计1的个数 [NumberOf WA] [Reviw] [Code] /* */ ...
- 【CS Round #37 (Div. 2 only) D】Reconstruct Graph
[Link]:https://csacademy.com/contest/round-37/task/reconstruct-graph/statement/ [Description] 给你一张图; ...
- 【CS Round #36 (Div. 2 only) A】Bicycle Rental
[题目链接]:https://csacademy.com/contest/round-36/task/bicycle-rental/ [题意] 让你从n辆车中选一辆车; 每一辆车有3个属性 1.到达车 ...
- 【CS Round #37 (Div. 2 only) B】Group Split
[Link]:https://csacademy.com/contest/round-37/task/group-split/ [Description] 让你把一个数分成两个数a.b的和; (a,b ...
- 【CS Round #37 (Div. 2 only) A】Boring Number
[Link]:https://csacademy.com/contest/round-37/task/boring-number/ [Description] 让你找离平均数最近的一个数的下标; [S ...
- 【CS Round #46 (Div. 1.5) E】Ultimate Orbs
[链接]链接 [题意] n个人从左到右站在一条直线上.每个人都有一个能力值g[i],然后每个人可以将相邻的一个人打败. 然后它的能力值能够增加相应的能力值(就是打败了的那个人的能力值). A能够打败B ...
- 【CS Round #46 (Div. 1.5) C】Set Subtraction
[链接]h在这里写链接 [题意] 一开始有n个数字,然后有一个数字X,把每个数字都减去X,又生成N个新的数字. 然后把这2*N个数字混在一起. 告诉你这2*N个数字是什么.让你复原出原来的N个数字,以 ...
随机推荐
- zabbix2.4.5安装zatree插件
一.关于zatree zatree 是来自国内58公司开发的监控软件zabbix的一个插件,主要功能是提供host group的树形展示和在item里指定关键字查询及数据排序. 项目地址:https: ...
- MVC-easyui-EF
easyui+jQuery+MVC+EF的一个演示 环境:visual studio 2013+sql server 创建新项目:visual C# -> Web -> visual st ...
- Linux 中挂载 ISO 文件
在 Linux 中挂载 ISO 文件 用 mount 命令,在终端中输入如下命令即可: sudo mount -o loop filename.iso /cdrom 其中 filename.iso 是 ...
- 【Codeforces Round #422 (Div. 2) D】My pretty girl Noora
[题目链接]:http://codeforces.com/contest/822/problem/D [题意] 有n个人参加选美比赛; 要求把这n个人分成若干个相同大小的组; 每个组内的人数是相同的; ...
- Java基础学习总结(22)——异常处理
一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要. package cn.javastudy.summary; public ...
- ti-sdk-evm-am335x-05.07 uboot分析(MLO跳转到u-boot之前)
-------------------------------------------------------------------------------- ...
- 【 Beginning iOS 7 Development《精通iOS7开发》】05 Autorotation and Autosizing
一.旋转后相对位置不变 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0 ...
- phpMyAdmin出现找不到mysql扩展和Cannot log in to the MySQL server问题
环境:Centos6.5,Apache2.4, PHP5.5, MySql5.6. phpMyAdmin版本:https://files.phpmyadmin.net/phpMyAdmin/4.4.1 ...
- spring security oauth2 架构---官方
原文地址:https://projects.spring.io/spring-security-oauth/docs/oauth2.html Introduction This is the user ...
- Excel 文本内容拆分
1.首先把文本数据粘贴到excel-->在旁边插入空白列..选择数据-->分列-->固定宽度 2.数据预览点击下一步 3.最后分好的数据就在 归去来兮,田园将芜胡不归?既自以心为形役 ...