360推后棉花糖看花题构想代码
主题
链接: https://www.now coder.com/question terminal/1 D6 F8 E0 e 16 de 49 d 094 d 16057 c 92 d 49 de? f=discussion
来源:牛客网
落后的棉花糖有花园,花园里有m朵花,每朵花都不一样。 落后的棉花糖每朵花用1~m的整数表示。
他很喜欢看这些花,有一天他看了n次,按时间顺序记录了n次看的花的种类是什么。
记录用a[i]表示,表示第I次他看到了一朵叫a[i]的花。
rzdy很好奇,她问了q个问题,[l,r]时间内,落后的棉花糖一共看到了多少朵不同的花? 迟到的棉花糖很享受他的花,所以希望你能回答这些问题。
输入说明:
输入2个个数n、m; (1=n=2000,1=m=100 ); 分别表示看n次花,m表示共有m朵花。
然后输入n个a[1]~a[n]。 a[i]表示第I次在落后的棉花糖上看到的花的种类。
输入一个数q(1=q=1000000 ); 表示rzdy的问题数。
在q行的每一行中输入两个个数l,r(1=l=r=n ); rzdy表示,从第l次到第r次,他想知道落后的棉花糖总共看到了多少不同的花。
输出说明:
一共q行
每行输出一个数表示落后的棉花糖在[l,r]的时间内看到了多少花。
例1
输入
5 3
1 2 3 2 2
3
1 4
2 4
1 5
输出功率
3
2
3
这个主题看起来很华丽,但其实核心很简单,从输入输出来看吧。
第一行: n,m。 看n次,有m的花;
第2行: n个,表示每次看到哪个圈;
第三行:常见的表现形式有几个数据的q;
后面的q行:起点和终点,l,r。
也就是说,所谓主题,其实就是在列表中,从第l个个数到第r个个数之间有多少个不重复。 这里考虑的是,首先选择列表中的数,用集合set ) )进行python上的强制型变换,求出得到的set的长度就可以了。
但是,还是老问题时间复杂度太大,不知道为什么最终结果没有通过。
代码n,m=tuple(list(map(int,input ).split ) ) flower=list (int, input ).split ) ) ) q=int input(.split ) () ) ) RES=flower [ l-1: r ] print (len ) set ) ) )