牛学奥林匹克

[复制链接]
查看11 | 回复2 | 2012-5-21 10:19:41 | 显示全部楼层 |阅读模式
农夫约翰合牛国(The United Cows of Farmer John,UCFJ)将要选派一个代表队参加国际牛学奥林匹克(International bOvine olympIad,IOI)。
有 N 头奶牛参加了代表队选拔(12 的奶牛 l... r。选定区间内的三头奶牛将会被指定为领队。出于法律原因,最边上的两头奶牛必须是领队。此外,为了避免种内冲突,每一名领队都必须与代表队的其他成员(包括领队)品种不同。
请帮助 UCFJ 求出(由于纳税原因)他们可以选派参加 IOI 的代表队的方法数。如果两个代表队拥有不同的成员或不同的领队,则被认为是不同的。
输入格式(从终端 / 标准输入读入):
输入的第一行包含 N。
第二行包含 N 个整数 b_1,b_2,...,b_N,均在范围 [1,N] 之间。
输出格式(输出至终端 / 标准输出):
输出可能的代表队的数量。
注意这个问题涉及到的整数大小可能需要使用 64 位整数型存储(例如,C/C++ 中的 long long)。
输入样例:
7
1 2 3 4 3 2 5
输出样例:
9
每一代表队对应以下的一组领队:
(1,2,3),(1,2,4),(1,3,4),(1,4,7),(2,3,4),(4,5,6),(4,5,7),(4,6,7),(5,6,7).
测试点性质:
测试点 1-2 满足 N0:

print(s1)

for y in x:

print("lead",(b+1,b+y+1,e+1))

cnt+=c
print("cnt=",cnt)

lp(s)

[1, 2, 3]
lead (1, 2, 3)
[1, 2, 3, 4]
lead (1, 2, 4)
lead (1, 3, 4)
[1, 2, 3, 4, 3, 2, 5]
lead (1, 4, 7)
[2, 3, 4]
lead (2, 3, 4)
[4, 3, 2]
lead (4, 5, 6)
[4, 3, 2, 5]
lead (4, 5, 7)
lead (4, 6, 7)
[3, 2, 5]
lead (5, 6, 7)
cnt= 9
[Program finished]
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
上述代码50头牛还可以,100头就很慢
回复

使用道具 举报

千问 | 2012-5-21 10:19:41 | 显示全部楼层
主要是求in费时,把每个位置的最长允许左子串,右子串位置记下来,凡是在区间内的,都允许
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行