洛谷 2312 / bzoj 3751 解方程——取模
题目:https://www.luogu.org/problemnew/show/P2312
https://www.lydsy.com/JudgeOnline/problem.php?id=3751
惭愧……先听了同学讲它,又看了题解,才A。
取一些模数就能限制时间复杂度并有一些概率正确。取模后常数也能取模,就不用高精度了!而且m以内的数只用算 0~模数-1 的值,表示取模后是该值的数在模该值意义下答案是否为0。
bzoj上的数据需要精心选取模数。据说2e4左右的效果最好?试了几次终于A了。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,M=1e4+,A=1e6+,K=,C=,D=4e4+;
int n,m,a[N][M],nm[N],c[N],ans[A],cnt;
bool fx[N],flag;
int zs[K]={,,,,,,};
bool vis[K][D];
void solve(int p)
{
for(int i=;i<=n;i++)
{
c[i]=;
for(int j=;j<=nm[i];j++) c[i]=(c[i]*+a[i][j])%p;
if(fx[i]) c[i]=(-c[i]+p)%p;
}
}
void calc(int bh,int x,int p)
{
int cr=;
for(int i=n;i>=;i--)
cr=(cr*x%p+c[i])%p;
vis[bh][x]=(!cr);
}
int main()
{
scanf("%d%d",&n,&m); char ch=getchar();
for(int i=;i<=n;i++)
{
while(ch>''||ch<''){ if(ch=='-') fx[i]=; ch=getchar();}
while(ch>=''&&ch<='') a[i][++nm[i]]=ch-'',ch=getchar();
}
for(int i=;i<C;i++)
{
solve(zs[i]);
for(int j=;j<zs[i]&&j<=m;j++)
calc(i,j,zs[i]);
}
for(int i=;i<=m;i++)
{
flag=;
for(int j=;j<C;j++)
if(!vis[j][i%zs[j]]) {flag=;break;}
if(!flag) ans[++cnt]=i;
}
printf("%d\n",cnt);
for(int i=;i<=cnt;i++) printf("%d\n",ans[i]);
return ;
}
洛谷 2312 / bzoj 3751 解方程——取模的更多相关文章
- 洛谷 P2312 & bzoj 3751 解方程 —— 取模
题目:https://www.luogu.org/problemnew/show/P2312 https://www.lydsy.com/JudgeOnline/problem.php?id=3751 ...
- 洛谷 题解 P2312 【解方程】
Problem P2312 [解方程] >>> record 用时: 1166ms 空间: 780KB(0.76MB) 代码长度: 2.95KB 提交记录: R9909587 > ...
- 洛谷 4106 / bzoj 3614 [HEOI2014]逻辑翻译——思路+类似FWT
题目:https://www.luogu.org/problemnew/show/P4106 https://www.lydsy.com/JudgeOnline/problem.php?id=3614 ...
- 洛谷 P2827 BZOJ 4721 UOJ #264 蚯蚓
题目描述 本题中,我们将用符号表示对c向下取整,例如:. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现在共有n只蚯蚓(n为正整数).每只 ...
- 洛谷 P2155 BZOJ 2186 codevs 2301 [SDOI2008]沙拉公主的困惑
题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...
- 洛谷 P2046 BZOJ 2007 海拔(NOI2010)
题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...
- 洛谷 P2587 BZOJ 1034 [ZJOI2008]泡泡堂
题目描述 //不知道为什么BZOJ和洛谷都没有这幅图了,大牛们几年前的博客上都有这幅图的,把它贴上来吧 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省 ...
- 洛谷 P5206: bzoj 5475: LOJ 2983: [WC2019] 数树
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \ ...
- 洛谷 P4128: bzoj 1815: [SHOI2006]有色图
题目传送门:洛谷 P4128. 计数好题,原来是 13 年前就出现了经典套路啊.这题在当年应该很难吧. 题意简述: \(n\) 个点的完全图,点没有颜色,边有 \(m\) 种颜色,问本质不同的图的数量 ...
随机推荐
- Arrays数组工具类中存在的坑!
以下是一个坑: 看到使用asList时候,可以返回一个集合,当然集合拥有CRUD的特性: 代码中使用 了add和remove时候均报错:Exception in thread "main&q ...
- javascript中apply和call的区别
请补充 136页 pdf 高级javascript设计
- linux 如何查找命令的路径
linux 下,我们常使用 cd ,grep,vi 等命令,有时候我们要查到这些命令所在的位置,如何做呢? linux下有2个命令可完成该功能:which ,whereis which 用来查看当 前 ...
- rails常用函数
1.rails g controller Users rails g model User 2.user.reload.email reload 使用数据库中的数据重新加载对象
- 20145229吴姗珊 《Java程序设计》第8周学习总结
20145229吴姗珊 <Java程序设计>第8周总结 教材学习内容总结 第十四章 NIO与NIO2 NIO: InputStream.OutputStream的输入输出,基本上是以字节为 ...
- Android进程间通信(IPC)机制Binder简要介绍和学习计划【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6618363 在Android系统中,每一个应用程序都是由一些Activity和Ser ...
- 用Delphi模拟键盘输入
在Windows大行其道的今天,windows界面程序受到广大用户的欢迎.对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制.有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入, ...
- Struts基本原理 + 实现简单登录(二)
MVC 概念 MVC全名是Model View Controller,是模型(model)—视图(view)—控制器(controller)的缩写,知道这么多就够了. 大家都知道SUN公司对于MVC模 ...
- ELK常用API使用方法
以下ELK系列文章参考自http://www.tianyiqingci.com/ 总目录: Monitor API ElasticSearch聚合分析API Elasticsearch信息检索API ...
- 剑指offer之 从上往下打印二叉树
import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode { int val = 0; Tr ...