UESTC--1256

来源:互联网 发布:网络关系成瘾 编辑:程序博客网 时间:2024/05/19 16:33

昊昊爱运动

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
 

昊昊喜欢运动

N天内会参加M种运动(每种运动用一个[1,m]的整数表示)

舍友有Q个问题

问昊昊第l天到第r天参加了多少种不同的运动

Input

输入两个数NM (1N20001M100);

输入N个数ai表示在第i天昊昊做了第ai类型的运动;

输入一个数Q(1Q106);

输入Q行 每行两个数 lr(1lrn);

Output

一共Q

每一行输出一个数 表示昊昊在第l天到第r天一共做了多少种活动

Sample input and output

Sample InputSample Output
5 31 2 3 2 231 42 41 5
323

Source

第七届ACM趣味程序设计竞赛第二场(正式赛)

解体思路:前缀和思想,但还是659s过,不知道人家0s是怎么写出来的,希望大神赐教.

<pre name="code" class="cpp">#include<stdio.h>#include<string.h>int pre[2005][105];//表示[1,i]区间里,j出现的次数 int main(){int n,m,x,t,l,r,ans;while(scanf("%d%d",&n,&m)!=EOF){memset(pre,0,sizeof(pre));for(int i=1;i<=n;i++){scanf("%d",&x);pre[i][x]=1;for(int j=1;j<=m;j++)pre[i][j]+=pre[i-1][j];}scanf("%d",&t);for(int i=1;i<=t;i++){ans=0;scanf("%d%d",&l,&r);for(int j=1;j<=m;j++)ans+=(pre[r][j]>pre[l-1][j]);printf("%d\n",ans);}}return 0;}



0 0
原创粉丝点击