link:http://codeforces.com/problemset/problem/340/C 开始一点也没思路,赛后看别人写的代码那么短,可是不知道怎么推出来的啊! 后来明白了. 首先考虑第一个数字,就是和0想减的内个.那么剩下的n-1个数字有(n-1)!个排列方式.所以呢,在n!个式子里面,第一个位置的和就是:a1 * (n-1)! + a2 * (n-1)! + ...... + an * (n-1)!: 然后考虑其它位置:对于ai , aj . 并且相邻.那么剩下 n - 2 个…