#1 姚斯宇@2008-04-12 07:17:00
1278
回复
删除
新找到输入的数据中“1”的个数 t;
t=f[0];
观察:
原数据:
2 1 1 1 2 2 1
可能的结果:
2 2 2 2 2 2 2 f[0]=4;(需要调动的个数)
1 2 2 2 2 2 2 f[1]=5;
1 1 2 2 2 2 2 f[2]=4;
1 1 1 2 2 2 2 f[3]=3;
1 1 1 1 2 2 2 f[4]=2;
1 1 1 1 1 2 2 f[5]=3;
1 1 1 1 1 1 2 f[6]=4;
1 1 1 1 1 1 1 f[7]=3;
对于最终结果有n+1个不同答案
对于f[n];
如果这个位置是“1” : f[n]=f[n-1]-1;
如果这个位置是“2” : f[n]=f[n-1]+1;
这个只需要一遍O(N)的扫描……
1818181818大牛,不用我再废话了吧……