【贪心】HDU 4932 Miaomiao's Geometry
2014-08-11 15:50
369 查看
从大到小排序 两点的差和两点差的一半
看能否满足题目条件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <set>
#include <map>
#define IN freopen ("in.txt" , "r" , stdin);
#define OUT freopen ("out.txt" , "w" , stdout);
typedef long long LL;
const int MAXN = 100999;//点数的最大值
const int MAXM = 1000010;//边数的最大值
const LL INF = 1152921504;
double a[55];
int n;
vector <double> v;
bool good(double x)
{
bool best=false;
for(int i=2;i<n;i++)
{
if((!best&&(a[i]-a[i-1])>=x)||(best&&(a[i]-a[i-1])/2>=x||a[i]-a[i-1]==x))
best=false;
else if(a[i+1]-a[i]>=x)
best=true;
else return 0;
}
return 1;
}
int main()
{
int t;
// IN
scanf("%d",&t);
while(t--)
{
v.clear();
scanf("%d",&n);
for(int i = 1; i <= n; i++)
scanf("%lf",&a[i]);
sort(a+1,a+n+1);
for(int i=1;i<n;i++)
{
v.push_back(a[i+1]-a[i]);
v.push_back((a[i+1]-a[i])/2);
}
sort(v.begin(),v.end());
for(int i=v.size()-1;i>=0;i--)
{
if(good(v[i]))
{
printf("%.3lf\n",v[i]);
break;
}
}
}
return 0;
}
看能否满足题目条件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <set>
#include <map>
#define IN freopen ("in.txt" , "r" , stdin);
#define OUT freopen ("out.txt" , "w" , stdout);
typedef long long LL;
const int MAXN = 100999;//点数的最大值
const int MAXM = 1000010;//边数的最大值
const LL INF = 1152921504;
double a[55];
int n;
vector <double> v;
bool good(double x)
{
bool best=false;
for(int i=2;i<n;i++)
{
if((!best&&(a[i]-a[i-1])>=x)||(best&&(a[i]-a[i-1])/2>=x||a[i]-a[i-1]==x))
best=false;
else if(a[i+1]-a[i]>=x)
best=true;
else return 0;
}
return 1;
}
int main()
{
int t;
// IN
scanf("%d",&t);
while(t--)
{
v.clear();
scanf("%d",&n);
for(int i = 1; i <= n; i++)
scanf("%lf",&a[i]);
sort(a+1,a+n+1);
for(int i=1;i<n;i++)
{
v.push_back(a[i+1]-a[i]);
v.push_back((a[i+1]-a[i])/2);
}
sort(v.begin(),v.end());
for(int i=v.size()-1;i>=0;i--)
{
if(good(v[i]))
{
printf("%.3lf\n",v[i]);
break;
}
}
}
return 0;
}
相关文章推荐
- [BestCoder Round #4] hdu 4932 Miaomiao's Geometry (贪心)
- hdu 4932 Miaomiao's Geometry(暴力)
- hdu 4932 Miaomiao's Geometry(思路,枚举)
- HDU 4932 Miaomiao's Geometry
- 【CUGBACM15级BC第四场 B】hdu 4932 Miaomiao's Geometry
- HDU 4932 Miaomiao's Geometry(推理)
- HDU-4932-Miaomiao's Geometry
- HDU-4932-Miaomiao's Geometry【暴力枚举】
- HDU 4932 贪心
- HDU4932——二分——Miaomiao's Geometry
- 【HDU4932】Miaomiao's Geometry(贪心)
- HDU 4932 贪心
- hdu 4932 Miaomiao's Geometry 暴力枚举
- HDU4932 - Miaomiao's Geometry(贪心)
- HDU—— 4932 Miaomiao's Geometry
- 【贪心】HDU 4932 Miaomiao's Geometry
- 【HDU】4932 Miaomiao's Geometry 暴力
- HDU 4932/BC 4B Miaomiao's Geometry
- HDU 2037 今年暑假不AC (贪心)
- hdu 6060 RXD and dividing (树 + 贪心)