题目大意:

给出N个捆包,每个捆包有相应的长度和宽度,要求堆叠捆包,使下方的捆包长宽永远大于上方的捆包的长宽。

Input

Multiple test case. For each case:

* Line 1: A single integer, N

* Lines 2..N+1: Each line describes a bale with two space-separated integers, respectively the width and breadth

Output

For each case, output one line: The height of the tallest possible tower that can legally be built from the bales.

Sample Input

6
6 9
10 12
9 11
8 10
7 8
5 3

Sample Output

5

方法一

先结构体sort()对长排序 长相等时对宽排序, 再枚举各个宽为底,算出所有可能结果,再求出最大结果

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,ans;
  4. struct BALE
  5. {
  6. int x,y;
  7. }bale[];
  8. bool cmp(struct BALE q,struct BALE p)
  9. {
  10. if(q.x==p.x) return q.y<p.x;
  11. return q.x>p.x;
  12. }
  13. void cnt(int i,int sum)
  14. {
  15. ans=max(ans,sum);
  16. if(sum==n) return;
  17. for(int j=i+;j<n;j++)
  18. if(bale[i].y>=bale[j].y)
  19. {
  20. cnt(j,sum+);
  21. if(sum==n) return;
  22. }
  23. }
  24. int main()
  25. {
  26. while(~scanf("%d",&n))
  27. {
  28. ans=;
  29. for(int i=;i<n;i++)
  30. scanf("%d%d",&bale[i].x,&bale[i].y);
  31. sort(bale,bale+n,cmp);
  32. for(int i=;i<n;i++)
  33. {
  34. cnt(i,);
  35. //printf("%d\n",cnt(i));
  36. }
  37. printf("%d\n",ans);
  38. }
  39.  
  40. return ;
  41. }

—— 01.28更 ——

OJ测试数据更新了之后 这份代码狗带了 因为相同的情况是不能考虑的 

如:

3

9  3

8  4

8  4

答案应为  1

按方法二补

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,ans,flag[];
  4. struct BALE
  5. {
  6. int x,y;
  7. }bale[];
  8. void DFS(int i,int sum)
  9. {
  10. ans=max(sum,ans);
  11. if(sum==n) return;
  12. for(int j=;j<=n;j++)
  13. {
  14. if(bale[i].x>bale[j].x&&bale[i].y>bale[j].y&&!flag[j])
  15. {
  16. flag[j]=;
  17. DFS(j,sum+);
  18. flag[j]=;
  19. }
  20. }
  21. }
  22. int main()
  23. {
  24. while(~scanf("%d",&n))
  25. {
  26. ans=;
  27. for(int i=;i<=n;i++)
  28. scanf("%d%d",&bale[i].x,&bale[i].y);
  29. for(int i=;i<=n;i++)
  30. {
  31. memset(flag,,sizeof(flag));
  32. flag[i]=;
  33. DFS(i,);
  34. }
  35. printf("%d\n",ans);
  36. }
  37.  
  38. return ;
  39. }

————————

方法二

DFS深搜  (偷下LXH的代码)

还是需要添加标记

USACO2007 The Bale Tower /// DFS oj21160的更多相关文章

  1. CF 327D - Block Tower 数学题 DFS 初看很难,想通了就感觉很简单

    D. Block Tower time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  2. Codeforces Round #356 (Div. 2) D. Bear and Tower of Cubes dfs

    D. Bear and Tower of Cubes 题目连接: http://www.codeforces.com/contest/680/problem/D Description Limak i ...

  3. codeforces 680D D. Bear and Tower of Cubes(dfs+贪心)

    题目链接: D. Bear and Tower of Cubes time limit per test 2 seconds memory limit per test 256 megabytes i ...

  4. 【BZOJ】1638: [Usaco2007 Mar]Cow Traffic 奶牛交通(dfs+dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1638 一条边(u, v)经过的数量=度0到u的数量×v到n的数量 两次记忆化dfs算出他们即可 #i ...

  5. bzoj 1647: [Usaco2007 Open]Fliptile 翻格子游戏【dfs】

    这个可以用异或高斯消元,但是我不会呀我用的暴搜 2的m次方枚举第一行的翻转情况,然后后面的就定了,因为对于一个j位置,如果i-1的j位置需要翻,那么一定要翻i的j,因为这是i-1的j最后翻的机会 按字 ...

  6. Codeforces 680D Bear and Tower of Cubes 贪心 DFS

    链接 Codeforces 680D Bear and Tower of Cubes 题意 求一个不超过 \(m\) 的最大体积 \(X\), 每次选一个最大的 \(x\) 使得 \(x^3\) 不超 ...

  7. BZOJ 1711: [Usaco2007 Open]Dining吃饭

    1711: [Usaco2007 Open]Dining吃饭 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 902  Solved: 476[Submit ...

  8. BZOJ1711: [Usaco2007 Open]Dingin吃饭

    1711: [Usaco2007 Open]Dingin吃饭 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 508  Solved: 259[Submit ...

  9. BZOJ1690: [Usaco2007 Dec]奶牛的旅行

    1690: [Usaco2007 Dec]奶牛的旅行 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 552  Solved: 286[Submit][St ...

随机推荐

  1. Java继承和构造函数

    构造函数不是类的成员,它们不是由子类继承的.它们用于初始化实例变量. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class CSuper {   public ...

  2. web跨域

    之前对于跨域相关的知识一致都很零碎,正好现在的代码中用到了跨域相关的,现在来对这些知识做一个汇总整理,方便自己查看,说不定也可能对你有所帮助. 本篇主要内容如下: 浏览器同源策略 http 请求跨域 ...

  3. Cocos2d-x在Windows平台环境的搭建

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. windows平台下配置Cocos2d-X引擎所需的压缩文件和可执行文件,如下: 下载链接: adt:    http://tools.a ...

  4. javascript中var同时声明多个变量时的原理是什么?

    <script> function show(){ var a=b=c=d=5; } show(); alert(a);//弹a时报错(not defined),而b.c.d都能弹出5 & ...

  5. 使用Hbuilder 报错The keyword 'export' is reserved

    右击文件 > 验证本文档语法(V)后报错 解决: 项目右键->”属性”->”语法&框架”界面中配置项目的javaScript版本,将ECMAScript5.1 修改为6.

  6. 【转载】github 查找最火项目

    博主感觉这篇文章很有用,很方便所以转载过来学习学习. 原文链接地址https://www.cnblogs.com/poterliu/p/10634568.html 如何在github上查找star最多 ...

  7. Shell内置命令 eval

  8. 分分钟教你学会 ToolBar 的使用(转)

    转自:http://blog.csdn.net/itguangit/article/details/52042203 1.和平常一样,新建一个Moudle 在xml布局文件中使用 Toolbar 控件 ...

  9. react-native run-android出现红屏错误

    react-native run-android出现 unable to load script from assets 'index.android.bundle'.Make sure your b ...

  10. 利用Python批量重命名一系列文件名杂乱的文件

    假设目录下面有这样一系列命令杂乱的文件: OPENFOAM -TRAINING- PART- #1.pdf OPENFOAM - TRAINING- PART- #2.pdf OPENFOAM- TR ...