codeforce 595B-Pasha and Phone(数学)
今天补题,昨天是我太猖狂了,在机房吹牛,然后说着说着忘了时间,后来楼长来了,我们走了,CF没打成。
不扯了,下面说题;

题目的意思是给你n和k,
n代表最后得出的号码有n为,然后k能被n整除,就是把n这串号码分成k分,然后每份有n/k个数位。
在下面一行有n/k个数ai,第三行为n/k个数bi;
然后不是有n/k个数位么,这里面对应填的就是 是ai的整数倍,位数不超过k位且这个数开头不能以bi开头。
问一共有多少种不同的号码能组成。
那么先求每个数位上符合要求的有多少个,共k个数位,每个数位上的个数记为c[i],那么最后的结果就是k个c[i]相乘对1e9+7取余。
每个空格上的符合要求的元素是ai的倍数且首位不能是bi,如果bi!=0要求的每格元素要是n/k位,所以如果是ai的倍数且不足n/k位的首位是不是就是0了,就都符合要求,
因为要n/k位那么最大能取到的数就是t=1e(n/k)-1,那t/ai+1,就是在1到t间ai的倍数的个数,那么要减不合要求的就是bi*(1e(n/k)-1)-1到(bi+1)*(1e(n/k)-1)-1之间能整除ai数的个数,
因为在这区间里都是以bi开头。
如果bi为0,那么不合要求的是不是就是那些以0开头的,就是在k=1e(n/k-1)-1,k/ai+1,就是不合要求的个数。
最后每格合要求的个数就是t-不合要求的。
1 /*sjy*/
2 #include<stdio.h>
3 #include<algorithm>
4 #include<iostream>
5 #include<string.h>
6 #include<stdlib.h>
7 const long long N=1e9+7;
8 typedef long long ll;
9 using namespace std;
10 ll a[100005];
11 ll b[100005];
12 int main(void)
13 {
14 ll i,j,k,p,q,s,pp;
15 while(scanf("%I64d %I64d",&p,&q)!=EOF)
16 {
17 k=p/q;
18 pp=1;
19 for(i=0; i<k; i++)
20 scanf("%I64d",&a[i]);
21 for(i=0; i<k; i++)
22 scanf("%I64d",&b[i]);
23 for(i=0; i<k; i++)
24 {
25 ll sum=0;
26 ll cn=1;
27 for(j=0; j<q-1; j++)
28 {
29 cn*=10;
30 }
31 if(b[i]!=0)
32 {
33 ll x1=cn*(b[i]+1)-1;//(bi+1)*(1e(n/k)-1)-1
34 ll x2=cn*b[i]-1;//bi*(1e(n/k)-1)-1
35 sum=x1/a[i]-x2/a[i];
36 sum=(cn*10-1)/a[i]+1-sum;//(t=cn*10-1)
37 }
38 else if(b[i]==0)
39 {
40 sum+=(cn-1)/a[i];//首位为零的个数
41 sum=(cn*10-1)/a[i]-sum;
42 }
43
44 pp=(pp%N*sum%N)%N;
45 }
46 printf("%I64d\n",pp);
47 }
48 return 0;
49 }
codeforce 595B-Pasha and Phone(数学)的更多相关文章
- Codeforces 595B - Pasha and Phone
595B - Pasha and Phone 代码: #include<bits/stdc++.h> using namespace std; #define ll long long # ...
- Codeforces Round #337 (Div. 2) A. Pasha and Stick 数学
A. Pasha and Stick 题目连接: http://www.codeforces.com/contest/610/problem/A Description Pasha has a woo ...
- Codeforces 595B. Pasha and Phone 容斥
B. Pasha and Phone time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- codeforce Gym 100418K Cards (概率,数学)
题意:麦田的故事,n张牌,取x张牌,记住前x张牌最大的值m,继续往后取,遇到第一张比m大的牌就停下来.求一个x使得最后的牌在整副牌里是最大的期望最大. 假设最大的牌是A,A在各种位置出现的概率就是相等 ...
- Codeforce 370A Rook, Bishop and King 数学规律
这个题目挺有意思的,给定 起终点,要你求车,象,王分别最少要走多少步 车横竖都能走,而且每步任意走几格,所以它是最容易处理的,如果在同行或者同列,就是1,否则就是2 象要找下规律,象任意对角线都能走, ...
- 数学思想:为何我们把 x²读作x平方
要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...
- 速算1/Sqrt(x)背后的数学原理
概述 平方根倒数速算法,是用于快速计算1/Sqrt(x)的值的一种算法,在这里x需取符合IEEE 754标准格式的32位正浮点数.让我们先来看这段代码: float Q_rsqrt( float nu ...
- MarkDown+LaTex 数学内容编辑样例收集
$\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...
- 深度学习笔记——PCA原理与数学推倒详解
PCA目的:这里举个例子,如果假设我有m个点,{x(1),...,x(m)},那么我要将它们存在我的内存中,或者要对着m个点进行一次机器学习,但是这m个点的维度太大了,如果要进行机器学习的话参数太多, ...
随机推荐
- 『与善仁』Appium基础 — 17、元素定位工具(一)
目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...
- C#表头固定
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="info.ascx.cs& ...
- springcloud - alibaba快速上手 - 更新完毕
1.简单对比一下springcloud与springcloud-alibaba 2.准备知识 官网:https://nacos.io/zh-cn/ 查看cloud和springboot的对应关系 ht ...
- IPFS是什么?IPFS原理、IPFS存储
以下内容调研截止到2021/11/5日 IPFS简介 IPFS是一种内容可寻址.点对点.分布式文件系统.IPFS采用内容-地址寻址技术,即通过文件内容进行检索而不是通过文件的网络地址.简单来说,就是对 ...
- TCP的慢启动、拥塞避免、重传、快恢复乱七八糟总是记不清?11个连环问让你一次性打通任督二脉
摘要:如果你的开发过程涉及数据传输,一直在重传.超时之类的方案里有困惑的话,不妨重新学一学可靠性最精致的TCP协议. 本文分享自华为云社区<TCP的慢启动.拥塞避免.重传.快恢复乱七八糟总是记不 ...
- 12-gauge/bore shotgun
12-gauge/bore shotgun不是弹夹(magazine)容量为12发的霰(xian)弹枪.[LDOCE]gauge - a measurement of the width or thi ...
- A Child's History of England.49
But he was shipwrecked in the Adriatic Sea, and was fain [happy, willing] to pass through Germany, u ...
- Android Menu的基本用法
使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签作为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项和分组 ...
- linux如何安装缺失依赖
这里要提到一个网站https://pkgs.org/,他是linux系统的一个相关网站,里面都是相关内容 Warning: RPMDB altered outside of yum. ** Found ...
- go goroutines 使用小结
go +方法 就实现了一个并发,但由于环境不同,需要对并发的个数进行限制,限制同一时刻并发的个数,后面称此为"并发限流". 为什么要并发限流? 虽然GO M+P+G的方式号称可以轻 ...