题目及题解可以参见BYV大牛的,很详细
http://www.byvoid.com/blog/noi-2008-design/
自己的一些想法:
实现的时候不需要求第一问的解是多少,只需要找到第一个a[i,b]>0的b,然后前面的a[i,b1] b1<b都是等于0的。所以这个定义<=b的方案数就是=b的方案数。
要熟悉这种利用辅助递推,前缀乘积,后缀乘积,以及固定一个指针,划另外一个为1维的题。
至于不超过10,要大胆猜测,就路径剖分来说,路径上的轻边不超过log2n条,至于这个题的特殊性,答案为log3n。
一个优化:可以迭代b,暂时不管>b的东西。因为b涉及到的只有b和b-1,找到一个了就输出。
离NOI还有距离,努力!