• [CERC2015]Digit Division


    题目描述

    We are given a sequence of n decimal digits. The sequence needs to be partitioned into one or more contiguous subsequences such that each subsequence, when interpreted as a decimal number, is divisible by a given integer m.

    Find the number of different such partitions modulo 10^9 +7. When determining if two partitions are different, we only consider the locations of subsequence boundaries rather than the digits themselves, e.g. partitions 2|22 and 22|2 are considered different.

    输入输出格式

    输入格式:

    The first line contains two integers n and m (1≤n≤300000, 1≤m≤1000000) – the length of the sequence and the divisor respectively. The second line contains a string consisting of exactly n digits.

    输出格式:

    Output a single integer – the number of different partitions modulo 109 +7.

    输入输出样例

    输入样例#1: 
    4 2
    1246
    输出样例#1: 
    4
    输入样例#2: 
    4 7
    2015
    输出样例#2: 
    0

    说明

    Central Europe Regional Contest 2015 Problem D

    我们发现分出来的每段的末尾i 的前缀数字 s[i] 都必须是 m的倍数, 否则中间肯定有一段%m!=0(想一想为什么),然后这就是个SB题了233

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int ha=1000000007;
    int n,m,T,num;
    char ch;
    
    inline int add(int x,int y){
    	x+=y;
    	return x>=ha?x-ha:x;
    }
    
    inline int C(int y){
    	int an=1,x=2;
    	for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha;
    	return an;
    }
    
    int main(){
    	scanf("%d%d",&n,&m);
    	const int M=m;
    	for(int i=1;i<=n;i++){
    		ch=getchar();
    		while(!isdigit(ch)) ch=getchar();
    		num=((num*10)+ch-'0')%M;
    		if(!num) T++;
    	}
        if(num) puts("0");
    	else printf("%d
    ",C(T-1));
    	return 0;
    }
    

      

  • 相关阅读:
    could not read data from '/Users/lelight/Desktop/ViewControllerLife/ViewControllerLife/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
    NSNotification 消息通知的3种方式
    按钮点击播放音效
    字符串变枚举变量
    Flutter的使用教学笔记
    UI控件的位置
    博客园大佬主页跳转
    retain, copy, assign区别
    OC自定义文档头部注释
    OC语言自定义打印
  • 原文地址:https://www.cnblogs.com/JYYHH/p/8678330.html
Copyright © 2020-2023  润新知