【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个数字,以 ...
随机推荐
- POJ-1182 食物链 并查集(互相关联的并查集写法)
题目链接:https://cn.vjudge.net/problem/POJ-1182 题意 中文题目,就不写了哈哈 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃 ...
- mac打包python3程序
1. 下载安装py2app pip3 install py2app 2. 创建setup.py文件 py2applet --make-setup XXX.py 3. 发布应用 python3 setu ...
- Linux Network配置
/etc/sysconfig/network [root@mytest ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=mytest /e ...
- ruby redis的集群管理器
#========================================================================================== # => ...
- X的追求道路
X的追求道路 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 X在大家的帮助下最终找到了一个妹纸,于是開始了漫漫的追求之路,那 ...
- Please ensure that adb is correctly located at 'D:\Android\android-sdk\platform-tools\adb.exe' and
1.启动任务管理器 2.找到百度安全组件杀掉进程. 3.一般都是组件给禁止了.
- 在Fedora18上配置个人的Hadoop开发环境
在Fedora18上配置个人的Hadoop开发环境 1. 背景 文章中讲述了类似于"personalcondor"的一种"personal hadoop" ...
- BZOJ5204: [CodePlus 2018 3 月赛]投票统计
[传送门:BZOJ5204] 简要题意: 有n个选手,每个选手会选择一道题投票,求出投票最多的题目个数和这些题目的编号,如果所有题目的投票数相同,则输出-1 题解: 直接搞 离散化,然后判断就可以了 ...
- quartz-misfire 错失、补偿执行
调度(scheduleJob)或恢复调度(resumeTrigger,resumeJob)后不同的misfire对应的处理规则 misfire产生的条件是:到了该触发执行时上一个执行还未完成,且线程池 ...
- spring xml配置文件根元素(文件头文件)说明
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...