Even Three is Odd

题意:

问题是对于所有的长度为n,且$1<=ai<=n$的整数序列求 $\prod_{i=1}^{n-2}{max \{w_i,w_{i+1},w_{i+2}}\}$ 之和。

 

解法:

首先设dp状态为 $f(i,j,k)$ ,长度为$i+3$的,最大值为k,且最大值出现的位置集合为j的序列的乘积和。

显然可以由 $f(i-1,j2,k2)$ 转移到 $f(i,j,k)$,做前缀和优化,总效率$O(n^2 * 2^6)$

重新设计dp状态,改变j的定义,j表示最大值最后出现的位置。

这样对于状态 $f(i,j,k)$,我们确定了长度为$i+j$的序列的值,并且确定了$a(i+j+1)...a(i+2)<k$ 。

假设之前的三个数字最大值为$k2$,之后的最大值为k,这样的的话只要分为 $k>k2, k<k2, k=k2$ 讨论即可得出答案。

再加以前缀和优化,总效率$O(n^2)$。

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 
 5 #define LL long long
 6 #define N 2010
 7 #define P 1000000007LL
 8 
 9 using namespace std;
10 
11 int n;
12 LL w[N],S[N],S2[N],f[N][3][N];
13 
14 LL sum(LL S[],int l,int r)
15 {
16     if(l>r) return 0LL;
17     LL ans = S[r]+P-S[l-1];
18     if(ans>=P) ans-=P;
19     return ans;
20 }
21 
22 int main()
23 {
24 //    freopen("test.txt","r",stdin);
25     while(~scanf("%d",&n))
26     {
27         for(int i=1;i<=n;i++) scanf("%lld",&w[i]);
28         for(int i=0;i<=n-2;i++)
29             for(int k=1;k<=n;k++)
30                 f[i][0][k]=0, f[i][1][k]=0, f[i][2][k]=0;
31         for(int x1=1;x1<=n;x1++)
32             for(int x2=x1;x2<=n;x2++) f[0][2][x2]++;
33         for(int x1=1;x1<=n;x1++) f[0][1][x1]=1;
34         for(int i=1;i<=n-2;i++)
35         {
36             for(int k=1;k<=n;k++)
37             {
38                 S[k]  = S[k-1] +f[i-1][0][k];
39                 S2[k] = S2[k-1]+f[i-1][0][k]*(k-1)*(k-1);
40                 S2[k] += f[i-1][1][k]*(k-1);
41                 S2[k] += f[i-1][2][k];
42             }
43             for(int k=1;k<=n;k++)
44             {
45                 f[i][2][k] += sum(S2,1,k-1);
46                 f[i][1][k] += f[i-1][2][k];
47                 f[i][0][k] += f[i-1][1][k];
48                 f[i][2][k] += f[i-1][0][k]*(k-1)*(k-1);
49                 f[i][2][k] += f[i-1][1][k]*(k-1);
50                 f[i][2][k] += f[i-1][2][k];
51                 f[i][0][k] += sum(S,k+1,n);
52                 f[i][1][k] += sum(S,k+1,n)*k;
53                 f[i][2][k] += sum(S,k+1,n)*k*k;
54                 f[i][0][k] = f[i][0][k]%P * w[k]%P;
55                 f[i][1][k] = f[i][1][k]%P * w[k]%P;
56                 f[i][2][k] = f[i][2][k]%P * w[k]%P;
57             }
58         }
59         LL ans=0;
60         for(int k=1;k<=n;k++)
61         {
62             ans += f[n-2][0][k]*(k-1)*(k-1);
63             ans += f[n-2][1][k]*(k-1);
64             ans += f[n-2][2][k];
65             ans %= P;
66         }
67         cout << ans << endl;
68     }
69     return 0;
70 }
View Code

 

转载于:https://www.cnblogs.com/lawyer/p/6444890.html

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

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

相关文章

中国图书评论协会2019年度“中国好书”

来源&#xff1a;腾讯网2019.12.16第1127次推送为读者发现好书&#xff0c;为好书寻找读者。“中国好书”月榜由我国权威的图书评测机构中国图书评论学会发布&#xff0c;志达书店经整理编辑&#xff0c;为您呈现“中国好书”2019年度榜单&#xff08;1-10月&#xff09;。寒假…

pythonfor循环列表排序_Python使用for循环对列表内元素进行排序方法

这篇文章介绍Python使用for循环对列表内元素进行排序方法list [13, 22, 6, 99, 11]for m in range(len(list)-1):for n in range(m1, len(list)):if list[m]> list[n]:temp list[n]list[n] list[m]list[m] tempprint list结果&#xff1a;[6, 11, 13, 22, 99]分析&#…

a标签居中 img vue,让html img图片垂直居中的三种方法

三种让img元素图片在盒子内垂直居中的方式教程&#xff0c;依据代码与文章教程熟习掌握并加以应用。一、使用flex完成垂直居中操纵css flex实现垂直居中。flex或许不是完成垂直居中最好的选择&#xff0c;由于IE8,9其实不赞成它。那时&#xff0c;为了用flex实现垂直居中&#…

python——面向对象相关

其他相关 一、isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 123456class Foo(object):passobj Foo()isinstance(obj, Foo)二、issubclass(sub, super) 检查sub类是否是 super 类的派生类 1234567class Foo(object):passclass Bar(Foo):passissubclass(Bar, Foo)三、异…

德国工业4.0眼里“工业互联网”与“智能制造”

来源&#xff1a;智造智库工业4.0在德国被认为是第四次工业革命&#xff0c;主要是指&#xff0c;在“智能工厂”利用“智能备”将“智能物料”生产成为“智能产品”&#xff0c;整个过程贯穿以“网络协同”&#xff0c;从而提升生产效率&#xff0c;缩短生产周期&#xff0c;降…

python常用模块教程_盘点Python常用的模块和包

模块1.定义计算机在开发过程中&#xff0c;代码越写越多&#xff0c;也就越难以维护&#xff0c;所以为了编写可维护的代码&#xff0c;我们会把函数进行分组&#xff0c;放在不同的文件里。在python里&#xff0c;一个.py文件就是一个模块。2.优点&#xff1a;提高代码的可维护…

php 正则匹配静态资源,Struts2 配置静态资源文件不经过Strut处理(正则匹配)

Struts2框架有两个核心配置文件&#xff1a;struts.xml和Struts2默认属性文件default.properties(在struts2-core-2.3.20.jar中)default.properties可以通过自己在classpath下写一个struts.properties文件进行定制改写为什么是struts.properties&#xff0c;这可以看org.apache…

全球数字孪生市场大预测:2025 年的 358 亿美元,年复合增长率(CAGR)高达 37.8%...

来源&#xff1a;云头条 数字孪生市场估计将从2019年的38亿美元猛增到2025年的358亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;高达37.8%。推动数字孪生需求增长的几个因素包括&#xff1a;越来越广泛地采用物联网和云计算之类的技术用于实施数字孪生&#xff…

matlab 小波中心频率,小波频域特性Matlab实现.pdf

小波频域特性Matlab实现小波频域特性– Matlab实现东北大学信号与信息处理研究所栾峰 副教授/luanfeng/luanfeng编程示例例下面给出了一个信号的连续小波变换的例子。这个信号的第一个时间段包含了一个低频成分&#xff0c;最后一个时间段包含了高频成分&#xff0c;中间的时间…

yii3正式版什么时候发布_事业单位联考结束,成绩什么时候发布?合格分数线怎么算?...

今天上午&#xff0c;2020下半年全国事业单位联考笔试结束了。笔试刚刚结束&#xff0c;很多考生问图图有没有此次联考的答案&#xff0c;那肯定得有啊。为了帮助各位考生更好估分&#xff0c;华图教育推出估分系统&#xff0c;各位考生只需点击文末“了解更多”即可参与估分。…

Open Live Writer测试

************************我是可爱的分界线***************************转载于:https://www.cnblogs.com/elijahxb/p/6473105.html

德勤全球智慧城市2.0报告!中国占了世界一半

来源&#xff1a;德勤全球智慧城市新发展全球城市化的进程依然以不可阻挡的趋势向前推进&#xff0c; 到2050年&#xff0c; 接近70%的世界人口将生活在城市。人口大国中国和印度所在的亚洲将成为全球城市化最快的地区。在城市急速扩张的过程中&#xff0c; 先进的技术将帮助城…

python神经网络作用_Python · 神经网络(三*)· 网络

(这里是最终成品的 GitHub 地址)(这里是本章用到的 GitHub 地址)推荐先修章节&#xff1a;Python 神经网络(二*) 层Python 神经网络(三) 网络由于分形这个东西是在 tensorflow 的基础上实现的且相当麻烦、所以我就没在我自己的结构里面实现分形。因此&#xff0c;我自己实现的…

大公司里怎样开发和部署前端代码

作者&#xff1a;张云龙链接&#xff1a;https://www.zhihu.com/question/20790576/answer/32602154来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。没人邀请&#xff0c;看到这个问题不错&#xff0c;路过怒答。&#x…

5G产业发展最新进展深度解析(144页PPT)

来源&#xff1a;吴东升本报告对不同区域&#xff08;全球、美国、中国、日本、欧洲等&#xff09;的5G产业发展做了深入、全面的分析&#xff1b;对5G产业链和生态链以及主要产业应用状况做了系统盘点分析&#xff1b;对5G技术进展、投资环境和投资机会等也做了详细梳理。是5G…

php layui table,Layui table组件相关介绍

出现的问题&#xff1a;1、使用 Layui 官方提供的 【转换静态表格】 方式初始化加载时报 id 找不到的错误(自己的锅)2、传递参数问题使用的 table 加载刷新方案有一个页面&#xff0c;左侧是一个 tree&#xff0c;右侧是一个 table&#xff0c;默认 table 加载全数据&#xff0…

python中setpos_如何用类初始化Python中的多个turtle

only one turtle shown on screen. Two are defined in the code below.the turtles heading and coordinates arent being initialized.我相信问题是你定义了一次随机的位置和方向&#xff0c;在海龟创造循环之外&#xff0c;所以它们都从同一个地方开始&#xff0c;以相同的速…

存内计算能否成为下一代AI芯片的关键

来源&#xff1a;半导体行业观察随着人工智能的落地和大规模应用&#xff0c;AI芯片也成为了常见的芯片品类。AI芯片相比传统芯片来说&#xff0c;主要的竞争优势就在于高算力和高能效比。高算力是指能够比传统芯片更快地完成AI计算&#xff0c;而高能效比则是指能比传统芯片用…

[转载]sql server 分布式查询

--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset--查询示例select * from openrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)在跨库查询时需要启用Ad Hoc Distributed Queries启用Ad Hoc Distributed Queries&#xff1a;exec sp…

python中复选框取消修改_python – 如何在PySide / PyQt中设置“只读复选框”

我迟到了 – 看起来你有一个有效的解决方案.为了将来参考,您可以采用的另一种方式是使用鼠标事件 – 这可以保持所有信号的工作方式&#xff1a;from PyQt4 import QtGui, QtCoreclass MyCheckBox(QtGui.QCheckBox):def __init__( self, *args ):super(MyCheckBox, self).__ini…