HDU 5400 Arithmetic Sequence
来源:互联网 发布:mysql免安装版安装教程 编辑:程序博客网 时间:2024/05/15 06:15
Problem Description
A sequence b1,b2,⋯,bn are called (d1,d2) -arithmetic sequence if and only if there exist i(1≤i≤n) such that for every j(1≤j<i),bj+1=bj+d1 and for every j(i≤j<n),bj+1=bj+d2 .
Teacher Mai has a sequencea1,a2,⋯,an . He wants to know how many intervals [l,r](1≤l≤r≤n) there are that al,al+1,⋯,ar are (d1,d2) -arithmetic sequence.
Teacher Mai has a sequence
Input
There are multiple test cases.
For each test case, the first line contains three numbersn,d1,d2(1≤n≤105,|d1|,|d2|≤1000) , the next line contains n integers a1,a2,⋯,an(|ai|≤109) .
For each test case, the first line contains three numbers
Output
For each test case, print the answer.
Sample Input
5 2 -20 2 0 -2 05 2 32 3 3 3 3
Sample Output
125这题注意一下d1==d2的情况#pragma comment(linker, "/STACK:1024000000,1024000000") #include<set>#include<map>#include<queue>#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<string>#include<cstring>#include<algorithm>#include<functional>using namespace std;typedef long long LL;const LL base = 1e9 + 7;const int maxn = 105;LL T, n, m, f[maxn], a[maxn][maxn];inline void read(int &x){ char ch; while ((ch = getchar())<'0' || ch>'9'); x = ch - '0'; while ((ch = getchar()) >= '0' && ch <= '9') x = x * 10 + ch - '0';}int main(){ //read(T); for (int i = f[0] = 1; i <= 100; i++) f[i] = f[i - 1] * i % base; while (scanf("%I64d%I64d", &n, &m) != EOF) { LL tot = 0, ans = 1; for (int i = 1; i <= m; i++) { scanf("%I64d", &a[i][1]); if (a[i][1] == -1) tot++; else for (int j = 2; j <= n; j++) { scanf("%I64d", &a[i][j]); for (int k = j - 1; k; k--) if (a[i][j] == a[i][k]) ans = 0; } } for (int i = 1; i < tot; i++) ans = ans * f[n] % base; if (tot == 0) { for (int i = 1; i <= n; i++) a[0][i] = i; for (int i = m; i; i--) for (int j = 1; j <= n; j++) a[0][j] = a[i][a[0][j]]; for (int i = 1; i <= n; i++) if (a[0][i] != i) ans = 0; } printf("%I64d\n", ans); } return 0;}
0 0
- HDU 5400 Arithmetic Sequence
- hdu 5400 Arithmetic Sequence
- HDU 5400 Arithmetic Sequence
- HDU 5400 Arithmetic Sequence
- HDU 5400 Arithmetic Sequence
- hdu 5400 Arithmetic Sequence
- hdu 5400 Arithmetic Sequence
- hdu 5400 Arithmetic Sequence
- HDU-5400 Arithmetic Sequence(数学 || DP)
- hdu 5400 Arithmetic Sequence(计数)
- HDU 5400(Arithmetic Sequence-暴力找区间)
- HDU 5400 Arithmetic Sequence(数学,容斥)
- Hdu 5400 Arithmetic Sequence 数学推理
- 【HDOJ 5400】Arithmetic Sequence
- hdu 5400 Arithmetic Sequence(水题一道)
- hdu(5400)——Arithmetic Sequence(想法题)
- hdu 5400 Arithmetic Sequence(重构数组)
- 2015多校第九场 HDU 5400 Arithmetic Sequence 数学
- hdoj 1873 看病要排队
- Ubuntu 的网络配置静态IP
- 圆周运动js
- MapReduce工作原理图文详解
- 关于ACM以及如何学习
- HDU 5400 Arithmetic Sequence
- hdu 2647
- SVN不能提交,让更新,更新完还是不能提交的解决办法
- 轻松项目管理02-项目启动
- iOS 扫描上的层及其样式(三)
- 设计模式六大原则
- LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的问题
- 杭电 HDU 1002 A + B Problem II Java 大数的初级用法
- linux动态链接代码调用dlopen