4.24 子序列

子序列

https://ac.nowcoder.com/acm/problem/17065

这是一道类似导弹拦截的dp题
首先式子可化为 log(a[j])/j<log(a[i])/i
然后用dp[i] 来表示以i位为结尾的子序列的个数

#include <bits/stdc++.h>
#define ll long long
int const N=110;
int const mod=1e9+7;
using namespace std;
int n,a[N],dp[N],ans;
int main()
{
  cin>>n;
  for(int i=1;i<=n;++i)cin>>a[i];
  for(int i=1;i<=n;++i)
  {
      for(int j=1;j<i;++j)
        if(log(a[j])/j<log(a[i])/i) dp[i]+=dp[j]%mod;
     dp[i]++;
  }
  for(int i=1;i<=n;++i) ans+=dp[i]%mod;
  cout<<ans<<endl;
    return 0;
}
每日一题题解 文章被收录于专栏

每日一题题解的汇集

全部评论

相关推荐

04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务