题目的意思是给你一些数字a[i](首位相连),现在要你选出一些连续的数字连续的每一位单独地作为一个数位。现在问你有多少种选择的方式使得选出的数字为k的一个倍数。

其实题目是很简单的。由于k不大(200),总共的数字个数为50000,所以我们对于当前走到的每一个数字最多的状态数目也只有50000*200个。

同时由于是循环的,我们可以使长度增倍,这样就可以保证序列是循环的了。

不过注意,增倍后空间是开不下的,所以需要使用循环的滚动数组。

同时注意递推的细节,还有有的a[i]不止一位数,不能直接取模。

#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 50050
typedef long long ll;
using namespace std; int a[*maxn],f[*maxn],n,m,k,tep,cur,w[*maxn];
int s[maxn][];
ll ans; void init_(int x)
{
for (int i=; i<k; i++) s[x][i]=;
} int count(int x)
{
if (x<) return ;
if (x<) return ;
if (x<) return ;
return ;
} int get(int x)
{
if (x==) return ;
if (x==) return %k;
if (x==) return %k;
return %k;
} int power(int x,int y)
{
int tot=;
while (y)
{
if (y&) tot=(tot*x)%k;
y>>=;
x=(x*x)%k;
}
return tot;
} int main()
{
while (scanf("%d%d",&n,&k)!=EOF)
{
ans=;
w[]=,f[]=;
for (int i=; i<=n; i++)
{
scanf("%d",&a[i]);
a[i+n]=a[i];
w[i]=count(a[i]);
w[i+n]=count(a[i+n]);
}
for (int i=; i<=*n; i++) f[i]=(f[i-]*get(w[i])+a[i])%k;
for (int i=; i<=*n; i++) w[i]+=w[i-];
for (int i=; i<=n; i++)
{
init_(i);
s[i][a[i]%k]++;
for (int j=; j<k; j++) s[i][(get(w[i]-w[i-])*j+a[i])%k]+=s[i-][j];
}
for (int i=n+; i<=*n; i++)
{
int qq=i-n-;
if (qq==) qq=n;
init_(i-n);
s[i-n][a[i]%k]++;
for (int j=; j<k; j++) s[i-n][(get(w[i]-w[i-])*j+a[i])%k]+=s[qq][j];
cur=(f[i-n-]*power(,w[i]-w[i-n-]))%k;
cur=((f[i]-cur)%k+k)%k;
s[i-n][cur]--;
ans+=s[i-n][];
}
printf("%I64d\n",ans);
}
return ;
}

HDU4669_Mutiples on a circle的更多相关文章

  1. [翻译svg教程]svg中的circle元素

    svg中的<circle> 元素,是用来绘制圆形的,例如 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink= ...

  2. 设计一个程序,程序中有三个类,Triangle,Lader,Circle。

    //此程序写出三个类,triangle,lader,circle:其中triangle类具有类型为double的a,b,c边以及周长,面积属性, //具有周长,面积以及修改三边的功能,还有判断能否构成 ...

  3. c++作业:Circle

    Circle Github链接

  4. Modified Least Square Method and Ransan Method to Fit Circle from Data

    In OpenCv, it only provide the function fitEllipse to fit Ellipse, but doesn't provide function to f ...

  5. [javascript svg fill stroke stroke-width circle 属性讲解] svg fill stroke stroke-width circle 属性 绘制圆形及引入方式讲解

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

  6. (1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量x,

    package com.hanqi.test; //创建接口 public interface ShapePara { //获取面积的方法 double getArea(); //获取周长的方法 do ...

  7. 东大oj-1591 Circle of friends

    题目描述 Nowadays, "Circle of Friends" is a very popular social networking platform in WeChat. ...

  8. svg学习(四)circle

    <circle> 标签 < <?xml version="1.0" standalone="no"?> <!DOCTYPE ...

  9. 后缀数组 --- WOj 1564 Problem 1564 - A - Circle

    Problem 1564 - A - Circle Problem's Link:   http://acm.whu.edu.cn/land/problem/detail?problem_id=156 ...

随机推荐

  1. 20155231 信息安全技术概论实验二 Windows口令破解

    20155231 信息安全技术概论实验二 Windows口令破解 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 实验人数 每组一人 系统环境 windo ...

  2. 2016-2017-2 20155322 实验三 敏捷开发与XP实践

    2016-2017-2 20155322 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点 敏捷开发(Agile Development)是一种以人为核心.迭代.循序 ...

  3. 莫队算法&BZOJ2038

    题目传送门 今天看了分块,顺便把基本的莫队学习了一下. 莫队算法是一种离线算法,复杂度可以达到O((M+N)*Sqrt(N)); 对于询问区间的左端点分块,块内的右端点从小到大排列. 对区间进行偏移操 ...

  4. .net core 无法获取本地变量或参数的值,因为它在此指令指针中不可用,可能是因为它已经被优化掉了

    使用vs 发布.net CORE 项目,调试遇到了“无法获取本地变量或参数的值,因为它在此指令指针中不可用,可能是因为它已经被优化掉了”这个问题,弄了半天才发现是发布的时候没有设置为debug,做个总 ...

  5. springmvc @Valid 接收实体类时出现bean为null的问题

    这是因为传到后端之后,全部以全小写形式处理了 所以前端也需要把name设置为全小写,否则后端不识别,导致接收不到,导致为null

  6. Django模型层:单表操作

    一 ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装

  7. Sqlserver新增自增列

    if exists(select * from syscolumns where id=object_id('表名') and name='列名') begin alter table 表名 drop ...

  8. html学习第一天

    由于之后想做个网站,所以web前端的也要学习一下. 昨天看了一下html,今天做一下记录. 首先是安装工具,用文本编辑器有点麻烦,我选择的是强大的 Dreamweaver CS6,不过大家喜欢文本编辑 ...

  9. IDEA 配置Junit4

    Junit4 主要用来执行java程序的单元测试: 1 安装junit4插件 因为我安装过了,没有安装的再输入框搜索,然后安装就行 2 选择默认使用Junit4 3 红框中的test去掉,变为“$en ...

  10. WebGL射线拾取模型——八叉树优化

    经过前面2篇WebGL射线拾取模型的文章,相信大家对射线和模型面片相交的原理已经有所了解,那么今天我们再深入探究关于射线拾取的一个问题,那就是遍历场景中的所有与射线相交的模型的优化问题.首先我们来复习 ...