hdu 4932 /bestcoder B题 #4 /思维题
来源:互联网 发布:知乎 日本留学 编辑:程序博客网 时间:2024/06/04 23:31
题意:给一个数列(整数),用一些不相交的区间去覆盖(只能是用端点去覆盖,端点可以交)。而且区间出度相等。求最大区间长度。
开始一下就敲了,枚举每个区间长度,判断合法,更新最大。但是后来一看小数,感觉不行,改为二分,后来还是挂了。。。
赛后才知道,二分的时候,答案必需要满足单调性啊,这里小的数据不行,大的数据可以行!如 0 1 5 6 10, 3不行,4行。
后来才知道,枚举时,每个差值的一半也是可以的:仔细想想很容易证明。(水,坑)
#include<iostream>#include<vector>#include<cstdio>#include<algorithm>using namespace std;vector<int>v; int n;bool ok(double tmax){ int fl=-1; for(int j=1;j<n-1;j++) { if(fl==-1) //之前的放在前 { if(v[j]-tmax<v[j-1]) //放前面不行,放后面: { if(v[j]+tmax<=v[j+1]) //放后面 { fl=1; if(v[j]+tmax==v[j+1]) //下一个免了 { j++; fl=-1; } } else //否则不行 return 0; } else //放前面 fl=-1; } else //之前的在后面, { if(v[j]-tmax<v[j-1]+tmax) //放前面放不来 { if(v[j]+tmax<=v[j+1]) { fl=1; if(v[j]+tmax==v[j+1]) { j++; fl=-1; } } else { return 0; } } else { fl=-1; } } } return 1;}vector<double>dis;int main(){ int T; cin>>T; while(T--) { cin>>n; int tx=0; v.clear(); dis.clear(); for(int i=0;i<n;i++) { cin>>tx; v.push_back(tx); } sort(v.begin(),v.end()); for(int i=0;i<n-1;i++) { double d=v[i+1]-v[i]; dis.push_back(d); dis.push_back(d/2.0); } sort(dis.begin(),dis.end()); for(int i=dis.size()-1;i>=0;i--) { if(ok(dis[i])) { printf("%.3lf\n",dis[i]); break; } } } return 0;}
0 0
- hdu 4932 /bestcoder B题 #4 /思维题
- hdu 4908 BestCoder Sequence (思维题)
- HDU-4908-BestCoder Sequence【思维题】
- hdu 5777 domino(BestCoder Round #85——思维题)
- HDU 4908 BestCoder Sequence 思维
- hdu 5776 sum(BestCoder Round #85——思维题)
- B. Permutation----思维题
- BestCoder Round #8 B题 Reading comprehension
- hdu5340&Bestcoder(#49)b题
- codeforce 4B(思维水题)
- codeforce 10B 思维题
- codeforce 11B 思维题
- CF 527B 思维题
- codeforces 361B 思维题
- CodeForces - 417B (思维题)
- Codeforces 599B-----思维题
- B. The Queue----思维题
- BestCoder Round #59 B HDU 5500
- linux ubuntu 安装 matlab 2010 及破解 详细图解
- LeetCode 077 Combinations
- hdu 1300 Pearls (dp)
- 将字符串切割成数组 componentsSeparatedByString
- HDU 4932 Miaomiao's Geometry 暴力
- hdu 4932 /bestcoder B题 #4 /思维题
- 连续子数组的最大和
- hdu 2187 悼念512汶川大地震遇难同胞——老人是真饿了
- Android中BroadCastReceiver使用(整理)
- java excel导入导出
- C++ 之 运算符重载
- 二分图匹配
- Android 手势滑动事件判断
- 网站用户体验的76个体验点