2015 多校赛 第二场 1002 (hdu 5301)
2015-08-04 20:22
225 查看
Description
Your current task is to make a ground plan for a residential building located in HZXJHS. So you must determine a way to split the floor building with walls to make apartments in the shape of a rectangle. Each built wall must be paralled to the building's sides.
The floor is represented in the ground plan as a large rectangle with dimensions n×m, where each apartment is a smaller rectangle with dimensions a×b located inside. For each apartment, its dimensions can be different from each other. The number a and b must be integers.
Additionally, the apartments must completely cover the floor without one 1×1 square located on (x,y). The apartments must not intersect, but they can touch.
For this example, this is a sample of n=2,m=3,x=2,y=2.
View Code
Your current task is to make a ground plan for a residential building located in HZXJHS. So you must determine a way to split the floor building with walls to make apartments in the shape of a rectangle. Each built wall must be paralled to the building's sides.
The floor is represented in the ground plan as a large rectangle with dimensions n×m, where each apartment is a smaller rectangle with dimensions a×b located inside. For each apartment, its dimensions can be different from each other. The number a and b must be integers.
Additionally, the apartments must completely cover the floor without one 1×1 square located on (x,y). The apartments must not intersect, but they can touch.
For this example, this is a sample of n=2,m=3,x=2,y=2.
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n,m,x,y,ans; int main(){ //freopen("in.txt","r",stdin); while(~scanf("%d%d%d%d", &n, &m, &x, &y)){ if(n>m) swap(n,m),swap(x,y);//统一处理 ans=(n+1)/2;//短边的一半 int t1=max(x-1,n-x),t2=min(y,m-y+1); if(ans<t2&&x-1!=n-x) ans=min(t1,t2); //如果x-1!=n-x,则t1>=ans,且此时若ans<t2,则说明纵向放置欠缺部分无法以横向放置替代 //因此,换成t1,则可以补足纵向放置欠缺,换成t2,则可以以横向放置替代纵向,取较小者 if(n==m&&x==y&&(x*2-1==n)) ans=(n-1)/2; //如果在正中间,需特殊判定。 printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- 正则表达式、线程、反射Annotation
- hdu5102 bfs
- hdu4533 威威猫系列故事——晒被子
- HDU 2546 饭卡
- redis简易安装
- hbase读取过程
- 【linux高级程序设计】(第十四章)TCP高级应用 3
- E2BAF1CC
- hdu 5078 Osu!
- Html5实例之婚庆界面
- Struts2学习心得——传参
- Triangle
- POJ 3468 线段树区间更新求和模板
- udev绑定ASM磁盘组
- Lua学习笔记(一):搭建开发环境
- 科技世界患上“恐美症”?
- HDOJ Avoid The Lakes (DFS)
- 旅行
- 古朴原装232转TTL,232转针,带 5V电源电路板,纯手工打造,全球仅此一套
- Lotto POJ2245【全排列问题】