CF1445E four points
2021/9/1 23:10:35
本文主要是介绍CF1445E four points,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们不妨枚举四个点的移动方向。
那我们可以直接算出在该情况的最优的答案。
#include<iostream> #include<cstdio> #include<algorithm> #define LL long long using namespace std; int a[4], b[4], c[4]; int main() { int _; scanf("%d", &_); while (_--) { for (int i = 0; i < 4; i++) { scanf("%d%d", &a[i], &b[i]); c[i] = i; } LL ans = 1e18; while (1) { LL x0 = a[c[0]], y0 = b[c[0]]; LL x1 = a[c[1]], y1 = b[c[1]]; LL x2 = a[c[2]], y2 = b[c[2]]; LL x3 = a[c[3]], y3 = b[c[3]]; LL now = abs(x0 - x2) + abs(x1 - x3) + abs(y0 - y1) + abs(y2 - y3); LL r1 = max(x1, x3) - min(x0, x2), l1 = min(x1, x3) - max(x0, x2); LL r2 = max(y0, y1) - min(y2, y3), l2 = min(y0, y1) - max(y2, y3); now += 2 * max(0LL, max(l1, l2) - min(r1, r2)); if (r1 >= 0 && r2 >= 0) ans = min(ans, now); if (next_permutation(c, c + 4) == 0) break; } cout << ans << endl; } return 0; }
这篇关于CF1445E four points的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享