BZOJ 3680 模拟退火
2016-12-27 17:55
267 查看
思路:
退火就好了……
1.强烈建议题目名称改为“吊打出题人”
2.这种题放oj上啥心态。。。—–hzwer
二分TLE和WA 终于AC了……
退火就好了……
1.强烈建议题目名称改为“吊打出题人”
2.这种题放oj上啥心态。。。—–hzwer
二分TLE和WA 终于AC了……
//By SiriusRen #include <cmath> #include <cstdio> #include <algorithm> using namespace std; int n,XX=-100001,YY=100001; double l,r,w=50000,jyx,jyy; struct Point{double x,y,wei;}point[10050],b,ans,t; double dis(Point a){ double res=0; for(int i=1;i<=n;i++){ jyx=(a.x-point[i].x),jyy=(a.y-point[i].y); res+=sqrt(jyx*jyx+jyy*jyy)*point[i].wei; }return res; } int main(){ srand(1005730820),scanf("%d",&n),ans.wei=0x3fffffff; for(int i=1;i<=n;i++)scanf("%lf%lf%lf",&point[i].x,&point[i].y,&point[i].wei); b.wei=dis(b); while(w>1e-4){ for(int j=1;j<=30;j++){ double ran=rand(); t.x=b.x+w*sin(ran),t.y=b.y+w*cos(ran),t.wei=dis(t); if(t.x<XX||t.x>YY||t.y<XX||t.y>YY)continue; if(t.wei<b.wei)b=t; } if(b.wei<ans.wei)ans=b; w=w*0.9; } printf("%.3lf %.3lf\n",t.x,t.y); }
相关文章推荐
- bzoj3680: 吊打XXX(模拟退火)
- [BZOJ3680]吊打XXX(模拟退火)
- [省选前题目整理][BZOJ 3680]吊打XXX(模拟退火)
- BZOJ 3680 模拟退火
- bzoj 3680 吊打xxx 模拟退火
- bzoj 3680 吊打xxx 模拟退火
- 模拟退火(bzoj 3680: 吊打XXX)
- BZOJ 3680 吊打XXX 模拟退火
- 【BZOJ3680】吊打XXX(模拟退火)
- BZOJ 3680 模拟退火
- 【BZOJ3680】吊打XXX(模拟退火)
- [bzoj3680] 吊打XXX:模拟退火 or 模拟力学情景
- [BZOJ 3680]吊打XXX(广义费马点、模拟退火搜索)
- 模拟退火 BZOJ-3680
- BZOJ_3680_吊打XXX_模拟退火
- BZOJ3680 : 吊打XXX
- BZOJ3680 吊打xxx
- BZOJ 3680 吊打XXX 计算几何 模拟退火 广义费马点
- bzoj3680: 吊打XXX
- [BZOJ2428] [HAOI2006]均分数据 && 模拟退火