[COCI2013]DLAKAVAC

时间:2022-09-26 23:55:51

[COCI2013]DLAKAVAC

题目大意:

有一个长度为\(m(m\le1500)\)的\(01\)串\(A\),进行\(k(k\le10^{18})\)次操作。一次操作完的串中若\(A_i=1\),当且仅当在原串中存在\(jk\%m=i\),且\(A_j=A_k=1\)。求所有操作完成后哪些位置为\(1\)。

思路:

快速幂。时间复杂度\(\mathcal O(m^2\log k)\)。

源代码:

#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
typedef long long int64;
inline int64 getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int64 x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
const int N=1500;
int64 k;
int m,n;
bool a[N],ans[N],tmp[N];
inline void mul(bool a[],bool b[]) {
memset(tmp,0,sizeof tmp);
for(register int i=0;i<m;i++) {
for(register int j=0;j<m;j++) {
tmp[(i*j)%m]|=a[i]&&b[j];
}
}
std::copy(&tmp[0],&tmp[m],a);
}
int main() {
k=getint(),m=getint(),n=getint();
for(register int i=0;i<n;i++) {
a[getint()]=true;
}
ans[1]=1;
for(;k;k>>=1) {
if(k&1) mul(ans,a);
mul(a,a);
}
for(register int i=0;i<m;i++) {
if(ans[i]) printf("%d ",i);
}
puts("");
return 0;
}

[COCI2013]DLAKAVAC的更多相关文章

  1. 【BZOJ 3482】 3482&colon; &lbrack;COCI2013&rsqb;hiperprostor (dij&plus;凸包)

    3482: [COCI2013]hiperprostor Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 277  Solved: 81 Descrip ...

  2. BZOJ3482 &colon; &lbrack;COCI2013&rsqb;hiperprostor

    对于每组询问,spfa求出f[i][j]表示从S出发,经过j条x边到达i的最短路. 若f[T][i]都为inf,则无解. 若f[T][0]为inf,则有无穷个解. 否则可以看作若干条直线,$O(n)$ ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

随机推荐

  1. sql server 中隐藏掉无关数据库

    先贴上我实际测试的效果 方法一: Problem I have a SQL Server instance that has hundreds of databases.  Navigating th ...

  2. css限制div字符超出部分,简单有方便

    text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-w ...

  3. JavaScript高级程序设计&lpar;三&rpar;:基本概念:数据类型

    特别注意:ECMAScript是区分大小写的. 一.变量 1.ECMAScript的变量是松散型的.所谓松散型就是可以用来保存任何类型的数据.即每个变量仅仅是一个用于保存值的占位符而已.定义变量时要使 ...

  4. PHP之关闭网页错误提示

    关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法 最简单的办法就是直接在php程序代码 ...

  5. Java SE &lpar;6&rpar;之 多线程

    package com.sunzhiyan03; /* * 演示多线程 * */ public class Demo3 { public Demo3() { // TODO Auto-generate ...

  6. pthread&lowbar;mutex&lowbar;init &amp&semi; 互斥锁pthread&lowbar;mutex&lowbar;t的使用

    pthread_mutex_init l         头文件: #include <pthread.h> l         函数原型: int pthread_mutex_init( ...

  7. cygwin&comma;在win中开发linux程序

    cygwin,在win中开发linux程序 http://www.cygwin.cn/site/info/show.php?IID=1001  很多用windows的朋友不习惯于用linux的开发环境 ...

  8. fast-json&period;jar的用法

    fast-json.jar 解析json数据:一种json数据解析方式是这种,点击这里下载jsonfast.jar+fastjsonAPI文档 [ { "id": 6378, &q ...

  9. 数学之美——HMM模型(二)解码和Forward算法

    上一篇讨论了HMM的基本概念和一些性质,HMM在现实中还是比较常见的,因此也带来一了一系列的HMM应用问题.HMM应用主要面向三个方面:预测.解码和学习.这篇主要讨论预测. 简单来说,预测就是给定HM ...

  10. Linux tcpdump命令

    一.简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据 ...

相关文章