sgu158
来源:互联网 发布:百度免费域名 编辑:程序博客网 时间:2024/06/05 15:57
枚举+二分
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;inline int read(){ int x = 0, f = 1, t = getchar(); while(t < 48 || t > 57) t == 45 ? f = -1 : 0, t = getchar(); while(t >= 48 && t <= 57) x = (x<<1) + (x<<3) + t - 48, t = getchar(); return x * f;}const int maxm = 305, maxn = 305, maxl = 5005;int l, m, n, ans, ansd;int p[maxm], d[maxn];bool better(int pos){ int res = 0; for(int i = 1; i <= m; ++i) { int pp = p[i] - pos; int j = lower_bound(d + 1, d + n + 1, pp) - d; if(j >= 2) res += min(abs(pp - d[j-1]), abs(pp - d[j])); else res += abs(pp - d[j]); } ansd = max(ansd, res); return ansd == res;}void write(int x, int ch = 10){ printf("%d", x >> 1); if(x & 1) printf(".5"); putchar(ch);}int main(){#ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);#endif l = read() << 1, m = read(); for(int i = 1; i <= m; ++i) p[i] = read() << 1; n = read(); for(int i = 2; i <= n; ++i) d[i] = read() << 1; for(int i = l - d[n]; i >= 0; --i) if(better(i)) ans = i; write(ans, ' '), write(ansd);#ifndef ONLINE_JUDGE fclose(stdin), fclose(stdout);#endif return 0;}
0 0
- sgu158
- sgu158:Commuter Train
- sgu158 Commuter Train 枚举+二分
- iOS开发 ----- vim配色
- 数据采集系统开发流程-1
- 关机重启命令
- 【动态规划】【状态压缩DP】[UVa 1354]Mobile Computing
- 1028. List Sorting
- sgu158
- POJ3979
- 背单词App开发日记1
- 热身赛
- MySQL导入及常用命令
- POJ2299 Ultra-QuickSort
- Android Studio中使用Android5.0新特性CardView
- leetCode 73.Set Matrix Zeroes (矩阵置0) 解题思路和方法
- 【Qt移植到linux】问题6 file not recognized is a directory