商品关联次数统计

提交数: 987, 通过率: 42.55%, 平均分: 46.4

题目描述:

人们通过研究发现,将某些不同商品(比如休闲食品和饮料)陈列在一起销售,能使相关商品的销售量增长20%到30%(比如“啤酒和尿布”的故事)。为了寻找这些能相互促进销量的商品,就需要进行商品的关联分析。

为了统计相关商品的关联次数,需要对每个购物篮中的清单进行统计。

输入格式:

第一行,三个数,表示商品的种类n,购物篮的个数m,询问的次数T。

接下来,m行,每行包括若干商品的名称,每两种商品名称之间用一个逗号隔开,每种商品名前只有一个x字符,后面跟数字编号。

接下来,T行,每行两个整数x,y,表示询问x商品与y商品的关联次数。

输出格式:

共T行。

每行一个数,表示根据询问,回答的相应次数。

样例输入:

9 3 4
x1,x2,x3,x4,x5,x6
x1,x4,x7,x8,x9
x2,x5,x6,x7,x9
1 4
5 6
7 8
3 8

样例输出:

2
2
1
0

提示:

教材必修1的P102。

算法提示:

1.对每个购物篮分析:该购物篮中的商品,两两之间有一次关联。

2.二维数组的初始化:

a = [ [ 0  for j in range( n) ] for i in range(m) ]  #使用列表生成式,建立m行,n列的二维列表(数组)

或者用下列的方法建立二维列表
b=[]
for i in range( n ):
     b.append(0)
a=[]
for i in range( m ):
    a.append( b )
print(a)

 

3.请完善本题的程序:

n, m, T = map( int, input().split( ) )
a = [ [ 0 for i in range( n ) ] for j in range( n ) ]
for i in range( m ):
    s = input( ).split(',')
    for j in range( len( s) ):
        s[ j ] = int( s[ j ][ 1: ]  )
    #登记每个篮子中两两商品的关联
    
for i in range( T ):
    x,y = map( int , input().split( ) )
    print( a[ x-1 ] [ y-1 ] )
时间限制: 1000ms
空间限制: 256MB

来源: 必修1教材P59