HDU 5496 Beauty of Sequence 线性DP
来源:互联网 发布:淘宝上春药叫什么名字 编辑:程序博客网 时间:2024/05/22 16:53
HDU 5496
题意:定义子序列的价值为:若该子序列有连续相同的数,则保留第一个,剩下的数之和即为价值
i.e 子序列b={1,1,1,1} 价值为1 b={1,2,1,2} 价值为6.
给出长度为n的序列a 求出其所有子序列价值的之和. n<=1e5,a[i]<=1e9.
设d[i]为以i结尾的 子序列价值累加和(不重复计算连续相同的数),f[i]为以i结尾的子序列个数.f[i]=2^(i-1).
假如n个数都不同 d[i]= ∑(d[j] j<i) + f[i]*a[i].
题意:定义子序列的价值为:若该子序列有连续相同的数,则保留第一个,剩下的数之和即为价值
i.e 子序列b={1,1,1,1} 价值为1 b={1,2,1,2} 价值为6.
给出长度为n的序列a 求出其所有子序列价值的之和. n<=1e5,a[i]<=1e9.
设d[i]为以i结尾的 子序列价值累加和(不重复计算连续相同的数),f[i]为以i结尾的子序列个数.f[i]=2^(i-1).
假如n个数都不同 d[i]= ∑(d[j] j<i) + f[i]*a[i].
若a[i]=a[j] 则 d[i]= d[i] +d[j] -f[j]*a[i]. 用一个cnt[x]来记录a[i]的重复个数即可.cnt[x]+=a[i]*f[i]
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+5,mod=1e9+7;int n,a[N];ll d[N],f[N];map<ll,ll> cnt;int main(){f[0]=1;for(int i=1;i<N;i++)f[i]=(f[i-1]*2ll)%mod;int T;while(scanf("%d",&T)!=EOF){while(T--){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);memset(d,0,sizeof(d));cnt.clear();ll pre=0,ans=0;for(int i=1;i<=n;i++){d[i]=(pre+a[i]*f[i-1]%mod)%mod;d[i]=(d[i]-cnt[a[i]]+mod)%mod;pre=(pre+d[i])%mod;cnt[a[i]]=(cnt[a[i]]+f[i-1]*a[i]%mod)%mod;}for(int i=1;i<=n;i++)ans=(ans+d[i])%mod;printf("%I64d\n",ans);}}return 0;}
阅读全文
0 0
- HDU 5496 Beauty of Sequence 线性DP
- HDU 5496(Beauty of Sequence-DP)
- hdu 5496 Beauty of Sequence
- HDU 5496 Beauty of Sequence
- HDU 5496 Beauty of Sequence
- hdu 5496 Beauty of Sequence 枚举
- hdu 5496 Beauty of Sequence (map维护)
- hdu 5496 Beauty of Sequence 组合数学
- hdu 5496 Beauty of Sequence(高效)
- HDU 5496 - Beauty of Sequence (序列 + 统计贡献)
- hdu 5496 Beauty of Sequence bc#58 组合 离散化
- hdoj 5496 Beauty of Sequence
- hdu5496 Beauty of Sequence
- hdu Beauty of Sequence (好题_集合问题)
- HDU5496--Beauty of Sequence(水题)
- HDOJ 题目5496 Beauty of Sequence(数学)
- ZOJ3872 Beauty of Array【DP】
- 哈希+前缀和 hdu5496 Beauty of Sequence
- HDU 1114 Piggy-Bank(完全背包)
- gradle发布jar到nexus和本地
- 【poj】 2456
- (vb)机房收费系统之——调用excel 表格(引用)
- Ubuntu vim使用
- HDU 5496 Beauty of Sequence 线性DP
- 数据结构预算法分析计算后缀表达式(可计算小数)
- CSP
- LeetCode 53. Maximum Subarray (Easy)
- 迭代器前置式递增比后置式递增效率要高
- 【ios笔记】顶部信息JDStatusBarNotification及自定义颜色
- reduce计算数组中元素出现的次数
- HTML5表单
- 浅谈Python3.6版本的几种拷贝方式