CodeForces 368B Sereja and Suffixes
2014-07-16 17:52
134 查看
题意:给你一个序列,问你从l位置到结尾有多少个不同的数字。
水题,设dp[i]表示从i位置到结尾不同数字的个数,那么dp[i] = dp[i+1] + (vis[a[i]] == 0),在O(n)时间内得出答案。
水题,设dp[i]表示从i位置到结尾不同数字的个数,那么dp[i] = dp[i+1] + (vis[a[i]] == 0),在O(n)时间内得出答案。
#include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int MAXN = 100010; int vis[MAXN], dp[MAXN], a[MAXN]; int main(){ int n, m, l; #ifndef ONLINE_JUDGE freopen("in.cpp", "r", stdin); #endif while(~scanf("%d%d", &n, &m)){ memset(dp, 0, sizeof dp); memset(vis, 0, sizeof vis); for(int i = 1;i <= n;i ++) scanf("%d", a + i); dp = 1, vis[a ] = 1; for(int i = n-1;i > 0;i --){ if(!vis[a[i]]){ dp[i] = dp[i+1] + 1; vis[a[i]] = 1; }else dp[i] = dp[i+1]; } for(int i = 0;i < m;i ++){ scanf("%d", &l); printf("%d\n", dp[l]); } } return 0; }
相关文章推荐
- Codeforces 510C - Fox And Names
- 【CodeForces】A. String Task
- codeforces 589B(两次排序 + 暴力 ) (重点在于思路)
- CodeForces 586D Phillip and Trains(搜索)
- CodeForces-731E Funny Game(DP+Games)
- codeforces730F - Ber Patio
- codeforces 510E Fox And Dinner 奇偶建图+最大流
- Codeforces 41D Pawn 简单dp
- CodeForces 705A(训练水题)
- 【Codeforces-402B】-Weird Rounding(数学,思维)
- CodeForces - 492D Vanya and Computer Game 二分
- Codeforces 906D:Power Tower-扩展欧拉定理
- CodeForces 208A
- CodeForces 607 B. Zuma(区间DP)
- CodeForces 510B Fox And Two Dots (DFS)
- CodeForces 599 C. Day at the Beach(贪心)
- codeforces 839d Winter is here
- Filya and Homework CodeForces - 714B
- 【CODEFORCES】 B. Wonder Room
- Codeforces 635A Orchestra 【水题】