ZOJ 3872 Beauty of Array (The 12th Zhejiang Provincial Collegiate Programming Contest )
2015-04-26 08:12
555 查看
【题目链接】click here~~
【题目大意】定义Beauty数是一个序列里所有不相同的数的和,求一个序列所有字序列的Beauty和
1 <= N <= 100000
【解题思路】由于数据比较大,常规方法求字序列和肯定是行不通的,我们不妨这样想:因为要区别于不同的数
,可以看成序列里的数是一个一个加进去的,每次加入一个数,统计前面序列里第一次出现新加入的这个数的位置,表达的不好,
举个例子:
1 2 3
定义dp(当前元素前面(包括自己)所有包含自己的字序列的和)
定义sum(当前元素前面所有字序列的和,包括此元素)
//输入 1 2 3
//dp 1 5 14
//sum 1 6 20
//a[i] 1 2 3
理解了思路,代码很容易实现,也是比较短,精髓都在for循环里,因为只用了一个for循环,每次新加入一个元素,就可以求出当前所有字序列的Beauty和,所以复杂度为O(n),弱弱把代码贴上,对于没有过掉的可以看一下思路,秒过掉的大神们可以直接无视~~
代码:
【题目大意】定义Beauty数是一个序列里所有不相同的数的和,求一个序列所有字序列的Beauty和
1 <= N <= 100000
【解题思路】由于数据比较大,常规方法求字序列和肯定是行不通的,我们不妨这样想:因为要区别于不同的数
,可以看成序列里的数是一个一个加进去的,每次加入一个数,统计前面序列里第一次出现新加入的这个数的位置,表达的不好,
举个例子:
1 2 3
定义dp(当前元素前面(包括自己)所有包含自己的字序列的和)
定义sum(当前元素前面所有字序列的和,包括此元素)
//输入 1 2 3
//dp 1 5 14
//sum 1 6 20
//a[i] 1 2 3
理解了思路,代码很容易实现,也是比较短,精髓都在for循环里,因为只用了一个for循环,每次新加入一个元素,就可以求出当前所有字序列的Beauty和,所以复杂度为O(n),弱弱把代码贴上,对于没有过掉的可以看一下思路,秒过掉的大神们可以直接无视~~
代码:
#include <bits/stdc++.h> using namespace std; #define LL unsigned long long LL a[100010]; int main() { int n,m; scanf("%d",&n); while(n--){ scanf("%d",&m); memset(a,0,sizeof(a)); LL sum=0,dp=0; for(int i=1;i<=m;i++){ int x; scanf("%d",&x); dp=(i-a[x])*x+dp; sum+=dp; a[x]=i; } printf("%llu\n",sum); } return 0; }
相关文章推荐
- ZOJ 3872 Beauty of Array (The 12th Zhejiang Provincial Collegiate Programming Contest )
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Beauty of Array
- ZOJ 3869 Ace of Aces (The 12th Zhejiang Provincial Collegiate Programming Contest)
- ZOJ 3870 Team Formation (The 12th Zhejiang Provincial Collegiate Programming Contest 数位DP+二分)
- ZOJ 3878 Convert QWERTY to Dvorak (The 12th Zhejiang Provincial Collegiate Programming Contest)
- ZOJ 3875 Lunch Time (The 12th Zhejiang Provincial Collegiate Programming Contest )
- zjuoj The 12th Zhejiang Provincial Collegiate Programming Contest Ace of Aces
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Demacia of the Ancients
- Ace of Aces【The 12th Zhejiang Provincial Collegiate Programming Contest】
- ZOJ 3876 May Day Holiday (The 12th Zhejiang Provincial Collegiate Programming Contest)
- ZOJ 3878 The 12th Zhejiang Provincial Collegiate Programming Contest - J
- ZOJ 146 - The 13th Zhejiang Provincial Collegiate Programming Contest - C Defuse the Bomb
- The 12th Zhejiang Provincial Collegiate Programming Contest - I Earthstone Keeper浙江省赛
- zoj-5707题 Very Happy Great BG (签到题)The 13th Zhejiang Provincial Collegiate Programming Contest
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(浙江省赛2015)
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(第二部分)
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(第二部分)
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(2015浙江省赛)
- The 12th Zhejiang Provincial Collegiate Programming Contest -- 第七场选拔赛
- Convert QWERTY to Dvorak【The 12th Zhejiang Provincial Collegiate Programming Contest 】