【bzoj4071】[Apio2015]巴邻旁之桥 三分套三分
来源:互联网 发布:淘宝李宁乒乓球运动服 编辑:程序博客网 时间:2024/04/30 14:42
三分一下第一座桥,三分一下第二座桥,貌似就解决了。
UOJ跑的死慢,bz也T掉了。
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#include<iostream>#define maxn 100010 #define inf 1000000000000000using namespace std;struct yts{int op1,x1,op2,x2;}a[maxn];int n,m,k,mx;long long ans;char s[10];long long calc(int x,int y){long long ans=0;for (int i=1;i<=n;i++) if (a[i].op1==a[i].op2) ans+=abs(a[i].x2-a[i].x1); else ans+=min(abs(a[i].x2-x)+abs(a[i].x1-x),abs(a[i].x2-y)+abs(a[i].x1-y))+1;return ans;}long long solve(int x){long long ans=0;if (k==1){for (int i=1;i<=n;i++) if (a[i].op1==a[i].op2) ans+=abs(a[i].x2-a[i].x1); else ans+=abs(a[i].x2-x)+abs(a[i].x1-x)+1;}else{int l=0,r=mx;while (r-l>=3){int mid=l+(r-l)/3,midmid=r-(r-l)/3;if (calc(x,mid)<=calc(x,midmid)) r=midmid; else l=mid;}ans=inf;for (int i=l;i<=r;i++) ans=min(ans,calc(x,i));}return ans;}int main(){scanf("%d%d",&k,&n);for (int i=1;i<=n;i++){scanf("%s%d",s,&a[i].x1);if (s[0]=='A') a[i].op1=0; else a[i].op1=1;scanf("%s%d",s,&a[i].x2);if (s[0]=='A') a[i].op2=0; else a[i].op2=1;mx=max(mx,max(a[i].x1,a[i].x2));}int l=0,r=mx;while (r-l>=3){int mid=l+(r-l)/3,midmid=r-(r-l)/3;if (solve(mid)<=solve(midmid)) r=midmid; else l=mid;}ans=inf;for (int i=l;i<=r;i++) ans=min(ans,solve(i));printf("%lld\n",ans);return 0;}
0 0
- 【bzoj4071】[Apio2015]巴邻旁之桥 三分套三分
- bzoj4071【APIO2015】巴邻旁之桥
- BZOJ4071: [Apio2015]巴邻旁之桥
- BZOJ4071: [Apio2015]巴邻旁之桥
- bzoj1857 三分套三分
- 【BZOJ1857】三分套三分
- 【三分套三分】传送带
- hdu3400(三分套三分)
- hdu5017 Ellipsoid 三分套三分
- hdu 3400-三分套三分
- bzoj1857 [ SCOI2010 ] -- 三分套三分
- 三分套三分(bzoj4885)
- bzoj1857 [Scoi2010]传送带 [三分套三分]
- BZOJ 1857 [Scoi2010]传送带 三分套三分
- 1857: [Scoi2010]传送带 三分套三分
- BZOJ_P1857 [SCOI2010]传送带(三分套三分)
- 【模版】bzoj1857[Scoi2010]传送带 三分套三分
- 【BZOJ1857】[Scoi2010]传送带【三分套三分】
- hw14+16
- 在Image切换时利用CrossFadeImage来产生动画特效
- pickerView使用心得,有不对的大家指正
- POJ 2676 Sudoku (DFS回溯剪枝)
- hdu2089 不要62 数位DP
- 【bzoj4071】[Apio2015]巴邻旁之桥 三分套三分
- 软工大作业·源物语(三)
- zhiliti
- 报错:The resource name must start with a letter
- 八皇后问题 回溯
- Arrayfire学习笔记(一)安装
- VC DAO 操作数据库
- Android4.2.2源码目录结构分析
- [leetcode 121] Best Time to Buy and Sell Stock---只能买卖股票一次的最大收益