网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
多重数列
成绩 | 0 | 开启时间 | 2013年02月21日 星期四 23:02 |
折扣 | 0.8 | 折扣时间 | 2013年02月28日 星期四 23:02 |
允许迟交 | 是 | 关闭时间 | 2013年02月28日 星期四 23:02 |
输入文件 | linesum.in | 输出文件 | linesum.out |
给出n个长度为m的数字序列S1,S2..Sn,找出一个子序列S',使得S'的各项和最大,
且S'中的相邻两个元素在原串中的位置差必须是2^k+1(k>0),
比如说,选取了第1个元素,下一个只能选取第4个,第6个,第10个…(距离相差2^1+1,2^2+1,2^3+1…)
如果选取了原串中第k个元素,则可以从S1[k],S2[k],S3[k]...Sn[k]中任选一个加入S'
输入格式:
第一行有两个整数n,m
第2到n+1行,每行有一个长度为m的数字序列
输出格式:
一行,最大的子序列和值
样例输入:
2 10
1 0 -1 3 2 1 -4 10 1 3
2 3 -2 -7 3 4 1 2 4 9
样例输出
16
(第2个序列的第2个,第5个和第一个序列的第8个)
数据规模:
对于30%的数据,m<=10000
对于100%的数据 m<=1000000,n<=5,答案不超过longint/int范围