P1242 新汉诺塔
此题的最后一个数据点不适用于贪心算法,所以每次将大的优先移到目标位置有很小的概率不是最优解,但是毕竟是最优解的概率还是很大的。所以用模(yi)拟(tong)退(luan)火(gao)就可以了,反正也是随机碰碰运气的。概率嘛~~~~,只要你的srand能过,那就能过啦。
//退火算法,洛谷hack掉了贪心,无语了。 #include<cstdio> #include<cstdlib> #include<iostream> using namespace std; #define MAXN 100 #define MAXM 1000000 #define INF 2000000000 int n,m,x,ans=INF,tans,cnt; int A[MAXN],B[MAXN],tA[MAXN],tB[MAXN]; int tI[MAXM],tX[MAXM],tY[MAXM],I[MAXM],X[MAXM],Y[MAXM]; char p[5]={'