/*这道题目是先要排序的,依照长度或者重量排都能够。

当长度(重量)同样时就依照重量(长度)排,

从大到小或从小到大都能够!

这里我懂的。没有问题!

排序之后,问题就能够简化,(如果依照长度不等时长度排,

长度等是依照重量排,我如果依照从大到小来排!)即求排序

后的全部的重量值最少能表示成几个集合。

长度就不用再管了,

从数组第一个数開始遍历,仅仅要重量值满足条件,那么这两个

木棍就满足条件!*/

  1. <span style="font-size:18px;">#include<stdio.h>
  2. #include<algorithm>
  3. #include<string.h>
  4. using namespace std;
  5. #define maxn 5010
  6. struct node{
  7. int l,w;
  8. }stk[maxn];
  9. bool cmp(node y,node x){
  10. if(x.l<y.l) return true;
  11. if(x.l==y.l&&x.w<y.w) return true;
  12. return false;
  13. }
  14. int main()
  15. {
  16. int visit[5010],t,n,sum;
  17. scanf("%d",&t);
  18. while(t--)
  19. {
  20. memset(visit,0,sizeof(visit));
  21. memset(&stk,0,sizeof(&stk));
  22. scanf("%d",&n);
  23. for(int i=0;i<n;i++)
  24. scanf("%d %d",&stk[i].l,&stk[i].w);
  25. sort(stk,stk+n,cmp);
  26. sum=0;
  27. for(int i=0;i<n;i++)
  28. {
  29. if(!visit[i])
  30. {
  31. for(int j=i;j<n;j++)
  32. if(stk[j].l>=stk[i].l&&stk[j].w>=stk[i].w&&!visit[j])
  33. visit[j]=1,stk[i].l=stk[j].l,stk[i].w=stk[j].w;
  34. sum++; //这个循环是重点。
  35. }
  36. }
  37. printf("%d\n",sum);
  38. }
  39. return 0;
  40. } </span>

hdoj1051Wooden Sticks的更多相关文章

  1. hdoj--1051--Wooden Sticks(LIS)

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  2. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. POJ 2653 Pick-up sticks (线段相交)

    题意:给你n条线段依次放到二维平面上,问最后有哪些没与前面的线段相交,即它是顶上的线段 题解:数据弱,正向纯模拟可过 但是有一个陷阱:如果我们从后面向前枚举,找与前面哪些相交,再删除前面那些相交的线段 ...

  4. hduoj 1455 && uva 243 E - Sticks

    http://acm.hdu.edu.cn/showproblem.php?pid=1455 http://uva.onlinejudge.org/index.php?option=com_onlin ...

  5. POJ 2653 Pick-up sticks【线段相交】

    题意:n根木棍随意摆放在一个平面上,问放在最上面的木棍是哪些. 思路:线段相交,因为题目说最多有1000根在最上面.所以从后往前处理,直到木棍没了或者最上面的木棍的总数大于1000. #include ...

  6. POJ1065Wooden Sticks[DP LIS]

    Wooden Sticks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21902   Accepted: 9353 De ...

  7. 【POJ 2653】Pick-up sticks 判断线段相交

    一定要注意位运算的优先级!!!我被这个卡了好久 判断线段相交模板题. 叉积,点积,规范相交,非规范相交的简单模板 用了“链表”优化之后还是$O(n^2)$的暴力,可是为什么能过$10^5$的数据? # ...

  8. CF451A Game With Sticks 水题

    Codeforces Round #258 (Div. 2) Game With Sticks A. Game With Sticks time limit per test 1 second mem ...

  9. POJ 2452 Sticks Problem

    RMQ+二分....枚举 i  ,找比 i 小的第一个元素,再找之间的第一个最大元素.....                   Sticks Problem Time Limit: 6000MS ...

随机推荐

  1. leetcode数组相关

    目录 4寻找两个有序数组的中位数 11盛最多水的容器,42接雨水 15三数之和,16最接近的三数之和,18四数之和 26/80删除排序数组中的重复项, 27移除元素 31下一个排列 53最大子序和 5 ...

  2. curl强制下载文件

    <?phpfunction download_remote_file_with_curl($file_url, $save_to) { $ch = curl_init(); curl_setop ...

  3. js软键盘

    <<!DOCTYPE html><html><head>  <title></title></head><body& ...

  4. 5.20 mybatis反向生成的映射文件xml(如果需要自己定义其他sql语句时如下)

    解决mybatis-generator 生成的mapper.xml覆盖自定义sql的问题 mybatis-generator是个好工具,一建即可生成基本增删改成功能的mapper.xml.但这些是不够 ...

  5. Java基础学习(二)——对象

    类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法): 对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象. 对象=实例 对象 ...

  6. 查看 Android App 的 versionCode

    有 App 源码时,可以直接查看 AndroidManifest.xml 文件. <manifest android:versionName="1.4" android:ve ...

  7. hibernate_05_单表操作_对象类型

    本篇使用hibernate输出一个对象(图片) 先写一个java类 package com.imooc.hibernate; import java.sql.Blob; import java.uti ...

  8. Python语言之常用函数

    1.input(),raw_input() input() = eval( raw_input() ) 其中raw_input()将所有的输入当做字符串处理. eval(str [,globals [ ...

  9. BZOJ 1146: [CTSC2008]网络管理Network 带修改主席树_树套树_DFS序

    Description M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个 部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路 ...

  10. 如何查看系统的界面,比如费用申请单的序时簿界面引用的是哪一个ListUi.快捷键alt+shift+d 然后选中该ListUI大框框,就可以看到引用的是哪一个了.

    如何查看系统的界面,比如费用申请单的序时簿界面引用的是哪一个ListUi.快捷键alt+shift+d 然后选中该ListUI大框框,就可以看到引用的是哪一个了.