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; }
- HDU 1050 搬桌子 很巧妙的想法
- HDU-1050 走廊搬桌子
- hdu 1050 移动桌子问题(方法很巧妙)
- 搬桌子
- 搬桌子
- 搬桌子
- 搬桌子 tzc
- 台州Acm-搬桌子
- 台州ACM-搬桌子
- 周赛一 1005 搬桌子
- 1000搬桌子
- promble 1000 搬桌子
- A 走廊两边搬桌子
- bnu1210 搬桌子难题 C语言版
- poj 1083 搬桌子(贪心)
- POJ 1083 Moving Tables(搬桌子)
- POJ 1083 Moving Tables 搬桌子
- 课程练习一Problem A 搬桌子
- 什么是服务器集群?
- Java文件下载的几种方式
- 了解SQL Server08数据库审核特性
- 十年
- 文件下载(已解决重复下载反应慢、中文乱码等问题)
- HDU 1050 搬桌子 很巧妙的想法
- CEdit追加文本内容的方法
- 数据结构-线性表-链表
- XML与DTD约束的例子- 电视节目表DTD
- AjaxPro的使用方法
- 数据结构与算法总结
- 七夕恋歌
- :“第一次亲密接触”——项目遇到的问题有奖征文活动之小错误大影响
- jquery学习