Tyvj1091

题目链接

分析:
最近做的区间dp挺多
最简单的:n^3枚举,显然TLE
其实有一个很显然的dp状态:
f[i][j]表示结尾是i,j的等差数列的数量:
f[i][j]=Σ(f[k][j]+1) (a[i]-a[j]=a[j]-a[k])
但是这样的复杂度也是n^3

这是我们要注意到题目中a[i]的范围只有+-500
那我们就可以设计状态:
f[i][j]表示结尾是i,公差是j的等差数列的个数

然而真正的转移方程长这样:

f[i][a[i]-a[j]]=Σ(f[j][a[i]-a[j]]+1)

这样可以同时保证公差一定是序列中存在的,而且复杂度为n^2
//+1是i和j组成的一个等差数列

最后的答案要加上n

tip

这道题的转移较为新颖,没有直接枚举公差,而是枚举最后两个数,
但是状态的转移还是根据公差,
这样就可以直接把dp降下一维了

c++的下标从0开始,这是需要特别注意的一点

从此题可以看出
某一类具有一定阶段性的计数题目也可以用dp来解决

这里写代码片
#include<cstdio>
#include<iostream>
#include<cstring>using namespace std;const int mod=9901;
const int N=1010;
int n;
int a[N],f[N][N*3],ans=0,mx,mn;void doit()
{int i,j,k;memset(f,0,sizeof(f));for (i=2;i<=n;i++)   //长度为一的我们在dp中不算 for (j=1;j<i;j++)   //{f[i][a[i]-a[j]+1000]+=f[j][a[i]-a[j]+1000]+1;f[i][a[i]-a[j]+1000]%=mod;}ans=n;for (i=1;i<=n;i++)for (j=0;j<=3000;j++) ans+=f[i][j],ans%=mod;  
}int main()
{scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&a[i]);doit();printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/wutongtong3117/p/7673272.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更多框架

文章目录关于框架Caffe基于层的设计思路Protocol Buffer 技术prototxt .caffemodel文件caffe的训练主要特点TorchLUA语言主要特点Tensorflowcomputation graphsMXNET关于框架 Caffe 依赖大量第三方库 为了读取图像&#xff0c;以及简单的图像处理&#xff0c;连接很重的Openc…

.net的label的背景如何设置成为透明_css如何设置背景图片?background属性添加背景图片...

在前端开发过程中&#xff0c;为了页面的美观&#xff0c;往往都会给html页面添加背景图片。那么如何利用css设置html中用图片做背景&#xff1f;本章就给大家介绍css怎样设置背景图片。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。程…

苹果uwb定位技术

昨天的文章简单说明了手机定位的技术&#xff0c;文章写的比较简单&#xff0c;但是阅读量却还可以&#xff0c;这篇文章转一个uwb定位技术的文章&#xff0c;让更多的人了解这项技术。相关阅读&#xff1a;手机是怎么确定位置信息的&#xff1f;载波和LoRa#前言关于昨天的文章…

斗地主游戏小结

文章目录程序简介程序的实现程序中使用到的类Card&#xff1a;一副扑克牌。CardGroup&#xff1a;Player&#xff1a;玩家Game&#xff1a;游戏主程序Scene&#xff1a;游戏界面人工智能部分实现分析选牌牌型分析手牌并拆分成有效牌型出牌/跟牌分析拆牌原则&#xff1a;程序简介…

201671010144 2016-2017 《java程序设计》--对象与类!

随着学习的逐渐深入&#xff0c;java语言的独特之处与其他语言的区别慢慢显现了出来。我认为java的独特之处就在于它处理事件的思维&#xff0c;即面向对象&#xff0c;而非面向过程。初次接触到类的概念&#xff0c;比较难懂&#xff0c;后面练习过几次后&#xff0c;有了初步…

springboot导包显示不存在_(一)SpringBoot搭建基本后端应用

boot在计算机术语中是启动的意思&#xff0c;SpringBoot也就是Spring的启动器。稍有经验的JavaWeb程序员对于传统SSM结构的MVC应用&#xff0c;大多数最不好的体验就是搭建一个项目需要进行大量的配置。稍有不慎就可能采坑。更关键的是有些配置基本就不会去进行定制化修改。为了…

为什么需要超出48K的音频采样率,以及PCM到DSD的演进

网上很多观点说&#xff0c;根据采样定理&#xff0c;48K的音频采样率即可无损的表示音频模拟信号&#xff08;人耳最多可以听到20K的音频&#xff09;&#xff0c;为何还需要96K&#xff0c; 192K等更高的采样率呢&#xff1f;最先我也有这样的疑问&#xff0c;毕竟采样定理是…

171. Excel Sheet Column Number (Easy)

Given a column title as appear in an Excel sheet, return its corresponding column number. For example: A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 思路&#xff1a;1.26进制转化为十进制&#xff0c;ord()函数&#xff1b;2.逐个读入字符串中的每…

f12获取网页文本_8招教你快速搞定网页内容禁止复制粘贴,想怎么复制就怎么复制...

大家平时在搜索资料、浏览网页时&#xff0c;经常会复制一些内容。尤其是文字比较多时&#xff0c;比起一个个字手打&#xff0c;复制能省下不少功夫。可有时候好不容易找到资料了&#xff0c;却发现有些网站上的内容文本复制不了&#xff1f;甚至右键菜单都打不开&#xff01;…

为什么需要超过48k的采样音频?

最近在看音频的事情&#xff0c;随便拿点东西出来聊一下&#xff0c;如果说的不对&#xff0c;请用棒槌来打我&#xff0c;这样我晚上睡觉就不用数绵羊了。我播放一个20HZ~20KHZ的音频&#xff0c;如下图我使用16K的采样率来采集它是声音信号&#xff0c;获取音频如下图我使用4…

HDU 2859 Phalanx(二维DP)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2859 题目大意&#xff1a;对称矩阵是这样的矩阵&#xff0c;它由“左下到右”线对称。 相应位置的元素应该相同。 例如&#xff0c;这里是3 * 3对称矩阵&#xff1a; cbx     cpb     zcc 给出任意的…

Linux io内存存在的意义~

今天是母亲节&#xff0c;首先祝各位读者的母亲节日快乐&#xff0c;祝你们的母亲年轻健康。母亲节是一个亘古的话题&#xff0c;我本来想写个文章&#xff0c;但是想起来这周就一个周末&#xff0c;要花点时间陪下家人&#xff0c;昨天我们老大开会&#xff0c;特别说了&#…

imx6 配置串口波特率_RS232串口多机通信

一、基本原理1、主从多机通信拓扑图2、主从多机通信的具体过程 1)使所有的从机的SM2位置1&#xff0c;以便接收主机发来的地址&#xff1b;2)主机发出一帧地址信息&#xff0c;其中包括8位需要与之通信的从机地址&#xff0c;第9位为1&#xff1b;3)所有从机接收到地址帧后&…

android设置访问internet权限

如果在app中访问网络&#xff0c;提示internet permission denied&#xff0c;即是没有设置访问网络的权限 在AndroidManifest.xml文件中添加如下一行即可 <uses-permission android:name"android.permission.INTERNET" />转载于:https://www.cnblogs.com/Awan…

一个故事讲完CPU的工作原理

上二年级的小明正坐在教室里。现在是数学课&#xff0c;下午第一节&#xff0c;窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时&#xff0c;刘老师在黑板上写下一个问题&#xff1a;6324 244675 &#xff1f;小明抬头看了一眼&#xff0c;觉得这两个数字挺眼熟。他昨天翘…

axure弹窗关闭_干货来袭,Axure插入图标的几种办法

前言在日常绘制原型的时候&#xff0c;经常会需要插入相应的图标&#xff08;icon&#xff09;到Axure中&#xff0c;但是看似好像很简单的事情也给蛮多小伙伴造成了困扰。现在很多开发团队都会用一些比较常见的前端框架来搭建后台管理系统&#xff0c;例如常见的Element-UI&am…

用指针实现高低位倒序,疯了吧

昨晚在微信群看到一个读者发的面试题目&#xff0c;从网上截图出来的&#xff0c;我百思不得其解&#xff0c;题目如图。幸好&#xff0c;我学过栈栈&#xff0c;C语言实现然后我写了个小程序第一个方法比较笨&#xff0c;当我写完自己的代码后&#xff0c;看到有同学发了自己的…

部署nexus服务

一、安装和启动 官网下载nexus-2.12安装包&#xff0c;地址&#xff1a;https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.12.0-01-bundle.tar.gz 此版本需要预先安装jdk1.7 解压后&#xff0c;用命令【./bin/nexus start】来启动 nexus有如下一些控制命令&…

天然气表怎么看多少方_上海考大学难度怎么样?看2019上海高考“成绩分布表”和“本科分数线”就知道了!...

参加高考的同学和家长们注意了~上海市教育考试院近日发布本市普通高等学校秋季招生本科各批次录取控制分数线和成绩分布表。艺术类、体育类本科文化控制分数线也同步公布。&#xff08;鲁申君注&#xff1a;上海2019年高考本科总分660&#xff0c;专科总分450&#xff0c;不分文…

关于Linux内核代码不使用typedef的讨论?

C语言关键字 -&#xff08;typedef关键字&#xff09;typedef有点像火隐忍者里面的万花筒写轮眼&#xff0c;用起来非常炫酷有型&#xff0c;使你的代码更加简短&#xff0c;让你穿上你亲妈都认不出你的马甲…比如这样一段代码typedef struct point{int x, y;} Points;Points f…