网易2017春招笔试 分饼干
来源:互联网 发布:docker ubuntu 镜像 编辑:程序博客网 时间:2024/04/28 02:29
易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值
输入描述:
输入包括两行:
第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多个模糊的数位)
第二行为小朋友的人数n
输出描述:
输出k可能的数值种数,保证至少为1
输入例子:
9999999999999X
3
输出例子:
4
测试用例:
9XXXXXXXXXXXXXXXXX
1
对应输出应该为:
100000000000000000
测试用例:
3X8XXX99X04XXXXX7X
8543
对应输出应该为:
11705428
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>using namespace std;//核心:动态规划.从低位到高位,自底向上求解. 原理:若c=a+b,则c%n = (a%n + b%n) % n int main(){ int n; string s;//第一行输入的饼干数 cin>>s; scanf("%d",&n);//第二行输入的人数 long long dp[n+1],temp[n+1];//dp[i]表示余数为i的总共的可能数目.temp是dp的备份,防止状态转移混乱 memset(dp,0,sizeof(dp));//dp数组置0 //先假设X位为0,根据其他已定位计算饼干数num //之后再调整X long long num=0; int le=s.size()-1;//le为s长度 for(int i=le;i>=0;i--){ if(s[i]!='X') num=(s[i]-'0')*(long long)pow(10.0,le-i)+num;//num表示所有X位都默认为0的饼干数 } int i=le; //从低位向高位找第一个为X的位置,用于dp初始化 for(;i>=0;i--) if(s[i]=='X')break; for(int j=0;j<=9;j++){//遍历X从0到9的情况 long long tmp=(j*(long long)pow(10.0,le-i)); int pos=(num+tmp)%n;//取余 dp[pos]+=1;//余数为pos的计数+1 } i--; //调整X //从低位向高位继续遍历,找数位为X的位 for(;i>=0;i--){ if(s[i]=='X'){ memset(temp,0,sizeof(temp));//temp数组置0 for(int j=0;j<=9;j++){//遍历X从0到9的情况 long long tmp=(j*pow(10.0,le-i));//计算增量 int pos=tmp%n;//计算增量的模n余数 //遍历dp[] for(int p=0;p<n;p++){ temp[(p+pos)%n]+=dp[p];//核心,递归方程 } } for(int p=0;p<n;p++)//对一个X迭代完成后,temp写入dp dp[p]=temp[p]; } } cout<<dp[0]<<endl; return 0;}
5 0
- 网易2017春招笔试 分饼干
- 网易2017春招笔试编程题 分饼干
- 2017网易春招 分饼干(DP)
- 网易笔试 分饼干
- 网易2017春招[编程题]分饼干@Java
- 网易2017春招编程题:分饼干 [python]
- 【网易2017实习生编程题】分饼干
- 2017网易实习数据挖掘工程师笔试在线编程题《分饼干》
- 网易2017春招笔试详解
- 网易2017春招笔试(调整队形)
- 网易春招笔试题
- 网易2017校招笔试
- 网易面试题——分饼干
- 2017春招网易数据分析工程师笔试小结
- 网易2017春招笔试 双核处理 01背包
- 双核处理(网易2017春招笔试题)
- 魔力手环(网易2017春招笔试题)
- 工作安排(网易2017春招笔试题)
- 震动传感器设计
- 服务发现
- The Galactic Olympics ///dp
- Centos7修改ssh端口
- visual studio 2010 + sdl2 + glm + glew安装
- 网易2017春招笔试 分饼干
- jQuery之简单的表单验证
- 汇编程序:求平均成绩(用汇编玩结构体)
- 弄懂JDK、JRE和JVM到底是什么
- scikit-learn 机器学习介绍
- 对象序列化与反序列化
- 微信小程序入门八头像上传
- 英汉新闻评论语篇宏观结构和发展模式对比研究
- 基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(2)