背景

广东汕头聿怀初中 Train#3 Problem 3

描述

等差数列的定义是一个数列S,它满足了(S[i]-S[i-1]) = d (i>1)。显然的一个单独的数字或者两个数字也可以形成一个等差数列。
经过一定的学习小C发现这个问题太简单了,等差数列的和不就是(Sn+S1)*n/2?因为这个问题实在是太简单了,小C不屑于去解决它。这让小C的老师愤怒了,他就找了另外一个问题来问他。
小C的老师给了他一个长度为N的数字序列,每个位置有一个整数,他需要小C帮他找到这个数字序列里面有多少个等差数列。
……
这个问题似乎太难了,小C需要你的程序帮他来解决这个问题。

输入格式

第一行一个整数N,表示老师给出的数字序列的长度。
第二行有N个整数A[i],表示数字序列每个数字的大小。

输出格式

输出只有一行一个整数,表示这个序列中的等差数列的个数(mod 9901)。

测试样例1

输入


1 4 2 3 7

输出

17

备注

对于30%的数据,N <= 100
对于70%的数据,N <= 500
对于100%的数据,N <= 1000;-500 <= A[i] <= 500

代码

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#define block 1010
using namespace std;
int cnt,N,f[1010][2020],a[1010];
int main(){
//    freopen("01.txt","r",stdin);scanf("%d",&N);for(int i=1;i<=N;i++) scanf("%d",&a[i]);for(int i=1;i<=N;i++){cnt=(cnt+i)%9901;for(int j=i-1;j>=1;j--){int x=a[i]-a[j];cnt=(cnt+f[j][x+block])%9901;f[i][x+block]=(f[i][x+block]+f[j][x+block]+1)%9901;}}printf("%d\n",cnt);return 0;
}

几个点:

题目要求mod 9901

block 是因为有负数,所以向右平移1010个单位来记入到f数组

下面第一句话不能改成2,想想看为什么

1,cnt=(cnt+f[j][x+block])%9901;
2,cnt=(cnt+f[i][x+block])%9901;

转载于:https://www.cnblogs.com/radiumlrb/p/5792618.html

TYVJ P1091 等差数列 Label:dp相关推荐

  1. TYVJ P1051 选课 Label:多叉转二叉树形dp(虐心♥)

    描述 学校实行学分制.每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分.学校开设了N(N<300)门的选修课程,每个学生可选课程的数量M是给定的.学生选修了这M门课并考核通过就能获得 ...

  2. TYVJ P1088 treat Label:鞭笞人的DP

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 广东汕头聿怀初中 Train#2 Problem2 描述 给出长度为N的数列{A_i},每次可以从最左边或者最 ...

  3. LeetCode 1027. 最长等差数列(DP)

    1. 题目 给定一个整数数组 A,返回 A 中最长等差子序列的长度. 回想一下,A 的子序列是列表 A[i_1], A[i_2], ..., A[i_k] 其中 0 <= i_1 < i_ ...

  4. bzoj 3357: [Usaco2004]等差数列(DP+map)

    3357: [Usaco2004]等差数列 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 485  Solved: 226 [Submit][Sta ...

  5. 【NOIP 模拟题】[T1] 等差数列(dp)

    [题解][dp] [f[i][j]表示以i为结尾,j为公差的子序列个数] [要注意有负数,所以将公差+1000] #include<cstdio> #include<cstring& ...

  6. tyvj 1067 合唱队形 dp LIS

    P1067 合唱队形 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2004 提高组 第三道 描述 N位同学站成一排,音乐老师要请其中的(N-K)位 ...

  7. JoyOI(TYVJ)1071-LCIS【线性dp,LIS,LCS】

    正题 题目链接:http://www.joyoi.cn/problem/tyvj-1071 题目大意 求两个序列的最长公共上升子序列. code 我们先回顾一下LIS和LCS LIS: fi=max{ ...

  8. LeetCode 1691. 堆叠长方体的最大高度(排序+最大上升子序DP)

    文章目录 1. 题目 2. 解题 2.1 暴力超时解 2.2 排序+最长上升子序 463 / 3709,前 12.5% 1240 / 9290,前13.3% 1. 题目 给你 n 个长方体 cuboi ...

  9. Leetcode 413. 等差数列划分

    思路:等差数列的性质 A[i] - A[i - 1] == A[i - 1] - A[i - 2] 方法1:暴力,一旦当前区间不满足等差数列了,那就不需要继续判断了. class Solution { ...

最新文章

  1. Knockout应用开发指南(完整版) 目录索引
  2. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门
  3. [deviceone开发]-Star分享的优惠券商户管理端App开源
  4. 高并发编程-自定义简易的线程池(2),体会原理
  5. 计算机桌面是是在哪个盘,电脑虚拟内存是设置在哪个盘的
  6. DCMTK:DIMSE_dumpMessage()的测试程序
  7. c语言 常量字符串数组,C语言常量以及字符串数组
  8. SAP Fiori smart template技术里CDS view的注解和UI元素对应关系
  9. spring BeanFactory加载xml配置文件示例
  10. 使用Express在Node.js中实现非常基本的路由
  11. 程序调试经验~认证基盘测试程序初期调试~。
  12. [Spring cloud 一步步实现广告系统] 5. 投放系统配置+启动+实体类
  13. endnoteX9英文参考文献格式下载和导入
  14. echarts 生成 迁徙图_Echarts世界级迁徙图
  15. 新手php环境一键安装包,PHP运行环境一键安装包(phpStudy2013)
  16. 用PhotoShop压缩PNG图片
  17. qq能上网浏览器不可以
  18. 爬虫学习笔记 - day02
  19. java生成不重复8位数字_如何生成8位随机不重复的数字编号
  20. 《使用机器视觉从照片中确定西瓜质量》论文笔记

热门文章

  1. [一个小问题]Mainfest配置文件的version问题小结
  2. python开发工具
  3. 微软终于想通把Script56文档更新了
  4. 【融云分析】如何实现分布式场景下唯一 ID 生成?
  5. CentOS Firewall防火墙设置规则
  6. 在Fabric ChainCode中导入第三方包(以状态机为例)
  7. Tomcat unable to start within 45 seconds.
  8. DNSBIND——DNS的子域授权和定义转发服务器
  9. 关于程序猿的学习方法的一些总结
  10. 程序员应该具备的十个项目习惯