HDU 1050 搬桌子 很巧妙的想法

来源:互联网 发布:mac 卸载jenkins 编辑:程序博客网 时间:2024/04/27 14:22

刚开始以为是最长上升子序列的加强版,有点棘手。

网上参考了http://blog.csdn.net/q3498233/article/details/5308561

很巧妙!

解题思路:这道题最少花多少时间,实际上我们只要考虑哪一段重合度最高,重合度最高的地方,也就是我们至少要移动的次数了。因为有400间房间,1-2对应一段走廊,3-4对应一段走廊,如此我们可以把走廊分成200段,标记为a[1]-a[200],之后我们根据输进的房间序号,就可以算出要用到哪几段的走廊,之后给对应的a[n]值加1就好,最后求出a[n]最大值就是移动的次数了。

#include <cstdio>  #include <string>  #include <algorithm>  using namespace std;    int main()  {      int NumOfTest,pair;      int i,Max;      int a[201];      int b,c,n1,n2;      scanf("%d",&NumOfTest);      while (NumOfTest--)      {          scanf("%d",&pair);          memset(a,0,sizeof(a));          while (pair--)          {              scanf("%d%d",&b,&c);              if(b>c)/*交换数值,让小值在前,大值在后,从而使得n1<=n2*/                  swap(b,c);              /*求n1和n2*/              if(b%2==1)                  n1 = (b-1)/2+1;              else                  n1 = b/2;              if(c%2==1)                  n2 = (c-1)/2+1;              else                  n2 = c/2;              if(n1!=n2)                  for(i=n1;i<=n2;i++)                      a[i]++;              else                  a[n1]++;          }          Max = -1;          for(i=1;i<=200;i++)              if(Max<a[i])                  Max = a[i];          printf("%d\n",10*Max);      }      return 0;  } 


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 5s用久了卡顿怎么办 孕妇血糖高怎么办什么方法降最好 脚砸了肿了紫了怎么办 我想在淘宝上卖东西该怎么办 苹果手机4s开不了机怎么办 冒险岛s前出2条怎么办 狗狗又吐又拉血怎么办 小孩上网成瘾怎么办父母要怎么做 一只眼睛大一只眼睛小怎么办 带近视镜时间长了眼睛变形怎么办 联通卡2g换4g卡怎么办 上火牙疼怎么办教你立刻止疼 吃热的凉的牙疼怎么办 我买的股票退市了怎么办 如果起诉离婚另一方不出庭怎么办 10个月宝宝还没长牙怎么办 超敏c反应蛋白>5怎么办 怀孕才两个月肚子就大了怎么办 腰椎间盘突出腿疼厉害怎么办 打了促排卵针不排卵怎么办 孕34周隐血1十是怎么办 窦性心动过缓伴不齐怎么办 09年买的万科b怎么办 苹果5s手机打不开机怎么办 剖腹产后一年半后意外怀孕怎么办 考驾照挂了5次了怎么办 怀孕咳嗽一个月了好不了怎么办 孕妇餐后2小时血糖高怎么办 我想开网店但我不懂该怎么办 新开的淘宝店没生意怎么办 做肝胆b超喝了水怎么办 红米1s刷机失败怎么办 红米3x手机太卡怎么办 红米2a线刷失败怎么办 红米2用不了4g怎么办 小米红米3s卡顿怎么办 魅蓝4g网速很慢怎么办 lol装到c盘了会怎么办 急用钱又借不到怎么办小额信贷 花呗分期买手机额度不够怎么办 2个月婴儿脸皴了怎么办