luogu 4933

题目背景

建筑大师最近在跟着数学大师 ljt12138 学数学,今天他学了等差数列,ljt12138 决定给他留一道练习题。

题目描述

ljt12138 首先建了 n 个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为 1 到 n ,第 i 个电塔的高度为 h[i] 。

建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去。这时候,如果留在地上的电塔的高度,从左向右构成了一个等差数列,那么这个选择方案就会被认为是美观的。

建筑大师需要求出,一共有多少种美观的选择方案,答案模 998244353 。

注意,如果地上只留了一个或者两个电塔,那么这种方案也是美观的。地上没有电塔的方案被认为是不美观的。

同时也要注意,等差数列的公差也可以为负数。

输入格式

第一行一个正整数 n 。

第二行 n 个非负整数,第 i 个整数是第 i 个电塔的高度 h[i] 。

输出格式

输出一个整数,表示美观的方案数模 998244353 的值。

输入输出样例

输入 #1
8
13 14 6 20 27 34 34 41 
输出 #1
50
输入 #2
100
90 1004 171 99 1835 108 81 117 141 126 135 144 81 153 193 81 962 162 1493 171 1780 864 297 180 532 1781 189 1059 198 333 1593 824 207 1877 216 270 225 1131 336 1875 362 234 81 288 1550 243 463 1755 252 406 261 270 279 288 1393 261 1263 297 135 333 872 234 881 180 198 81 225 306 180 90 315 81 81 198 252 81 297 1336 1140 1238 81 198 297 661 81 1372 469 1132 81 126 324 333 342 81 351 481 279 1770 1225 549 
输出 #2
11153

说明/提示

设 v 为最高的电塔高度。

对于前 30% 的数据,n20 。

对于前 60% 的数据,n100,v2×10^3 。

对于另外 20% 的数据,所有电塔的高度构成一个等差数列。

对于 100% 的数据,n10^3,v2×10^4 。

____________________________________________

f[i][d]表示以第i个数结尾的等差为d的等差数列的方案

f[i][a[i]-a[j]]=\sum f[j][a[i]-a[j]]+1

当然,还可以只有一个数,所以,ans=n+\sum f[][]

____________________________________________

复制代码
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn=1010;
 5 const int maxm=4e4+10;
 6 const int mod=998244353;
 7 ll n,a[maxn];
 8 ll f[maxn][maxm];
 9 
10 int main()
11 {
12     scanf("%lld",&n);
13     for(int i=1;i<=n;++i)scanf("%lld",a+i);
14     for(int i=1;i<=n;++i)
15     {
16         for(int j=1;j<i;++j)
17             f[i][a[i]-a[j]+20001]=(f[i][a[i]-a[j]+20001]+f[j][a[i]-a[j]+20001]+1)%mod;
18     }
19     ll ans=0;
20     for(int i=1;i<=n;++i)
21         for(int j=0;j<maxm;++j)
22             ans=(ans+f[i][j])%mod;
23     cout<<(ans+n)%mod<<endl;
24     return 0;
25 }
View Code
复制代码

 

posted on   gryzy  阅读(109)  评论(2编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2019-06-05 HDU1814和平委员会
2017-06-05 POJ2029 二维线段树
2017-06-05 POJ1195 二维线段树
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示