我的第一篇模拟退火,先是看资料,发现太高深,又去搜博客什么的,在一个地方看到了比较通俗的解读。至今还只是会写,不懂得原理是什么,能ac也是碰巧,发现太高深而且又属于YY型的算法,果断过一题放弃掉。下面贴上代码:
View Code
#include#include #include #include #include #include #include #include #include #define P 0.6#define INF 0x7fffffffusing namespace std;const int N=1001;const int maxn=10;const int maxd=25;struct node{ double x; double y; double dis;}p[N],tr[maxn];int x,y,n;inline int max(int x,int y){ return x t_min) { for(int i=0;i =0&&tmp.x<=x&&tmp.y>=0&&tmp.y<=y) { tmp.dis=get_dis(tmp); if(tmp.dis>tr[i].dis) tr[i]=tmp; } } } t=t*P; } int max=0; for(int i=1;i tr[max].dis) max=i; } return tr[max];}int main(){ int t; node ans; scanf("%d",&t); while(t--) { scanf("%d %d %d",&x,&y,&n); for(int i=0;i
也不想解释什么了,也是基本照搬别人东西,也觉得自己比较猥琐。不会呀,伤不起。。