BZOJ3751 NOIP2014 解方程(Hash)
题目链接 BZOJ3751
这道题的关键就是选取取模的质数。
我选了4个大概几万的质数,这样刚好不会T
然后统计答案的时候如果对于当前质数,产生了一个解。
那么对于那些对这个质数取模结果为这个数的数也要统计进答案。
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i)
#define dec(i, a, b) for (int i(a); i >= (b); --i) const int N = 2e4 + 10;
const int M = 1e6 + 10; const int p[6] = {0, 26833, 15259, 19249, 26681}; int n, m;
char ch[N];
int a[10][N], fg;
int s[M], len, ans; int main(){ scanf("%d%d", &n, &m);
rep(i, 0, n){
scanf("%s", ch + 1);
len = strlen(ch + 1);
fg = 1;
if (ch[1] == '-') fg = -1, ch[1] = '0';
rep(j, 1, 4){
rep(k, 1, len) a[j][i] = (a[j][i] * 10 + ch[k] - 48) % p[j];
a[j][i] = (a[j][i] * fg + p[j]) % p[j];
}
} rep(i, 1, 4){
rep(j, 0, p[i] - 1){
int x = a[i][n];
dec(k, n - 1, 0) x = (x * j + a[i][k]) % p[i];
if (!x) for (int k = j; k <= m; k += p[i]) ++s[k];
}
} ans = 0;
rep(i, 1, m) if (s[i] == 4) ++ans;
printf("%d\n", ans);
rep(i, 1, m) if (s[i] == 4) printf("%d\n", i);
return 0;
}
BZOJ3751 NOIP2014 解方程(Hash)的更多相关文章
- [BZOJ3751][NOIP2014] 解方程
Description 已知多项式方程:a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). Input 第一行包含2个整数n.m,每两个 ...
- [BZOJ3751] [NOIP2014] 解方程 (数学)
Description 已知多项式方程:$a_0+a_1*x+a_2*x^2+...+a_n*x^n=0$ 求这个方程在[1,m]内的整数解(n和m均为正整数). Input 第一行包含2个整数n.m ...
- [BZOJ3751][NOIP2014]解方程(数学相关+乱搞)
题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式: 输入文件名为equation .i ...
- 【秦九韶算法】【字符串哈希】bzoj3751 [NOIP2014]解方程
在模意义下枚举m进行验证,多设置几个模数,而且小一些,利用f(x+p)%p=f(x)%p降低计算次数.UOJ AC,bzoj OLE. #include<cstdio> #include& ...
- LOJ2503 NOIP2014 解方程 【HASH】
LOJ2503 NOIP2014 解方程 LINK 题目大意就是给你一个方程,让你求[1,m]中的解,其中系数非常大 看到是提高T3还是解方程就以为是神仙数学题 后来研究了一下高精之类的算法发现过不了 ...
- 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】
3751: [NOIP2014]解方程 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4856 Solved: 983[Submit][Status ...
- BZOJ 3751: [NOIP2014]解方程 数学
3751: [NOIP2014]解方程 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3751 Description 已知多项式方程: ...
- bzoj 3751: [NOIP2014]解方程 同余系枚举
3.解方程(equation.cpp/c/pas)[问题描述]已知多项式方程:a ! + a ! x + a ! x ! + ⋯ + a ! x ! = 0求这个方程在[1, m]内的整数解(n 和 ...
- bzoj3751 / P2312 解方程
P2312 解方程 bzoj3751(数据加强) 暴力的一题 数据范围:$\left | a_{i} \right |<=10^{10000}$.连高精都无法解决. 然鹅面对这种题,有一种常规套 ...
随机推荐
- json_encode() 避免转换中文
json_encode() 避免转换中文 我们都知道,json_encode()可以将数据转换为json格式,而且只针对utf8编码的数据有效,而且在转换中文的时候,将中文转换成不可读的”\u***” ...
- 【linux】【rpm】确定程序是否 rpm 安装
执行 rpm -qf 文件名如果结果显示出安装包那就说明是rpm (或者yum)安装 详情参看 rpm -v (或者 man rpm)
- unix cc编译过程
1.编译并链接一个完全包含与一个源文件的C程序: cc program.c 这条命令产生一个称为a.out的可执行程序.中间会产生一个名为program.o的目标 ...
- LeetCode(234) Palindrome Linked List
题目 Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) t ...
- hdu-2544 最短路(最短路)
Time limit1000 ms Memory limit32768 kB 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到 ...
- POJ:2109-Power of Cryptography(关于double的误差)
Power of Cryptography Time Limit: 1000MS Memory Limit: 30000K Description Current work in cryptograp ...
- Win7里IIS7部署WebService
最近忙于一个Web的Bug修正,是先人写的一个东东,架构很简单,一个前端的项目,一个WebService的项目,以及后台的一些dll.之前一直很排斥这个产品,因为它没法启动,印象中没有跑得起来过的时候 ...
- python中json操作了解
什么是接口? 交换数据 http://openweathermap.org/current json简介 JSON 是存储和交换文本信息的语法.类似 XML JSON 语法是 JavaScript 语 ...
- pip 设置国内源提高速度
临时使用: 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna. ...
- [git 学习篇]版本回退
再次修改readme.txt ,并将其提交成功 $ git add readme.txt $ git commit -m "append GPL" [master ] append ...