uva 10012
来源:互联网 发布:质量数据分析管理办法 编辑:程序博客网 时间:2024/06/03 23:00
#include <iostream>#include <cstring>#include <vector>#include <algorithm>#include <fstream>#include <stdlib.h>#include <math.h>using namespace std;int ball_num,rank[10];double circu[10],ans,temp;double data[10][3];bool flag[10];// 1 is x, 2 is y and circu;double calcula(double r1,double r2){ return sqrt(pow(r1+r2,2)-pow(r1-r2,2));}void dps(int n){ double x=0,y=0,temp1,temp2; // if okay if(n==ball_num){ double left_most=99999999,right_most=-99999999; for(int i=0;i<ball_num;i++){ temp1 = data[i][1]-data[i][2]; temp2 = data[i][1]+data[i][2]; if(temp1<left_most){left_most = temp1;} if(temp2>right_most){right_most = temp2;} } if(right_most-left_most<ans){ans = right_most-left_most;} //cout<<"find one "<<endl; /* for(int i =0;i<ball_num;i++){ cout<<data[i][1]<<" "<<data[i][2]<<endl; } */ return; } for(int i = 1;i<=ball_num;i++){ if(flag[i]==0){ if(n ==0){ x = y = circu[i]; } else{ double max_x=0,temp_num; for(int j = 0;j<n;j++){ temp_num = data[j][1]; //data[j][2] + circu[i] temp_num+=calcula(data[j][2],circu[i]); if(temp_num>max_x){max_x = temp_num;} } x = max_x; } y = circu[i]; data[n][1] = x; data[n][2] = y; flag[i] = 1; dps(n+1); flag [i] = 0; } }}int main() { //ifstream cin("ha.txt"); int t; cin>>t; while(t--){ cin>>ball_num; for(int i=1;i<=ball_num;i++){ cin>>circu[i]; } ans = 999999999; memset(flag,0,sizeof(flag)); dps(0); printf("%.3lf\n",ans); }}
0 0
- uva 10012
- uva 10012
- uva--10012
- uva 10012(暴力求解)
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- vim显示行号、语法高亮、自动缩进的设置
- PROC系列之---/proc/pid/stat
- 访问者模式之C++实现
- Next Permutation
- top命令详解
- uva 10012
- Merge Intervals 合并区间
- CF377B Preparing for the Contest [贪心+优先队列]
- liunx下lnmp环境安装
- A20内核编译错误undefined reference to `hwmon_device_register'
- 等腰三角形
- centos 打开or关闭防火墙
- 【转】可重入函数
- 今后的岁月,让我们一起了解,多少天长地久 会细水长流。