题目传送门

  1. /*
  2. 贪心:官方题解:
  3. 首先我们考虑如何选择最左边的一个区间
  4. 假设最左边的区间标号是i, 那选择的另外两个区间的左端点必定要大于Ri
  5. 若存在i之外的j, 满足Rj<Ri, 那么另外两个区间的选择余地必定不会减少
  6. 因此,为了使另外两个区间有尽可能多的选择,我们选择一个右端点最小的区间作为最左边的区间是最好的
  7. 同理,我们选择一个左端点最大的区间作为最右边的区间,也将提供最多的选择
  8. 确定了这两个区间之后,只需判断是否存在一个区间位于它们中间且不交叉即可
  9. 本题的取模值十分特殊,用unsigned int的自然溢出可以达到同样的效果
  10. 时间复杂度O(N)
  11. 解题关键:if (mn_r < node[i].l && node[i].r < mx_l),存在这样的一个区间满足条件就YES!
  12. 反思:首先没有想到贪心的投机方法,用暴力DFS搜索超时,unsigned int的范围: 0 ~ 4294967295 这个取模自然溢出也是醉了:)
  13. 补充:HDOJ 2037 今年暑假不AC 升级版
  14. */
  15. #include <cstdio>
  16. #include <iostream>
  17. #include <algorithm>
  18. #include <cstring>
  19. #include <string>
  20. #include <map>
  21. #include <vector>
  22. #include <set>
  23. #include <cmath>
  24. #include <queue>
  25. using namespace std;
  26. const int MAXN = + ;
  27. const long long INF = 0x3f3f3f3f;
  28. struct Node
  29. {
  30. unsigned int l, r;
  31. }node[MAXN];
  32. int main(void) //赛码 1001 Movie
  33. {
  34. //freopen ("A.in", "r", stdin);
  35. int t, n;
  36. unsigned int a, b, c, d;
  37. scanf ("%d", &t);
  38. while (t--)
  39. {
  40. scanf ("%d%d%d%d%d%d%d", &n, &node[].l, &node[].r, &a, &b, &c, &d);
  41. for (int i=; i<=n; ++i)
  42. {
  43. node[i].l = node[i-].l * a + b;
  44. node[i].r = node[i-].r * c + d;
  45. }
  46. for (int i=; i<=n; i++)
  47. {
  48. if (node[i].l > node[i].r) swap (node[i].l, node[i].r);
  49. }
  50. unsigned int mn_r = 4294967295UL, mx_l = ;
  51. for (int i=; i<=n; ++i)
  52. {
  53. if (mn_r > node[i].r) mn_r = node[i].r;
  54. if (mx_l < node[i].l) mx_l = node[i].l;
  55. }
  56. if (mn_r > mx_l)
  57. {
  58. puts ("NO"); continue;
  59. }
  60. bool flag = false;
  61. for (int i=; i<=n; ++i)
  62. {
  63. if (mn_r < node[i].l && node[i].r < mx_l)
  64. {
  65. flag = true; puts ("YES"); break;
  66. }
  67. }
  68. if (!flag) puts ("NO");
  69. }
  70. return ;
  71. }

  1. /*
  2. 贪心水题
  3. */
  4. #include <cstdio>
  5. #include <iostream>
  6. #include <algorithm>
  7. using namespace std;
  8. const int MAXN = 1e2 + ;
  9. const int INF = 0x3f3f3f3f;
  10. struct Node
  11. {
  12. int l, r;
  13. }node[MAXN];
  14. bool cmp(Node x, Node y)
  15. {
  16. if (x.r == y.r) return x.l < y.l;
  17. return x.r < y.r;
  18. }
  19. int main(void) //HDOJ 2037 今年暑假不AC
  20. {
  21. //freopen ("HDOJ_2037.in", "r", stdin);
  22. int n;
  23. while (scanf ("%d", &n) == )
  24. {
  25. if (n == ) break;
  26. if (n == )
  27. {
  28. puts (""); continue;
  29. }
  30. for (int i=; i<=n; ++i)
  31. {
  32. scanf ("%d%d", &node[i].l, &node[i].r);
  33. if (node[i].l > node[i].r) swap (node[i].l, node[i].r);
  34. }
  35. sort (node+, node++n, cmp);
  36. int cnt = ;
  37. int tmp = node[].r;
  38. for (int i=; i<=n; ++i)
  39. {
  40. if (node[i].l >= tmp)
  41. {
  42. tmp = node[i].r; ++cnt;
  43. }
  44. }
  45. printf ("%d\n", cnt);
  46. }
  47. return ;
  48. }

HDOJ 2037 今年暑假不AC

贪心 赛码 1001 Movie的更多相关文章

  1. 并查集+拓扑排序 赛码 1009 Exploration

    题目传送门 /* 题意:无向图和有向图的混合图判环: 官方题解:首先对于所有的无向边,我们使用并查集将两边的点并起来,若一条边未合并之前, 两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为 ...

  2. 递推DP 赛码 1005 Game

    题目传送门 /* 递推DP:官方题解 令Fi,j代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜 转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩 ...

  3. 数学 赛码 1010 GCD

    题目传送门 /* 数学:官方题解 首先,数组中每个元素至少是1 然后对于任意一个询问Li, Ri, Ansi, 说明Li ~ Ri中的元素必定是Ansi的倍数,那么只需将其与Ansi取最小公倍数即可 ...

  4. 赛码网算法: 上台阶 ( python3实现 、c实现)

    上台阶 题目描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法. 输入输入数据首先包含一个整数n(1<=n<=1 ...

  5. 赛码网算法: 军训队列( python实现 )

    军训队列 题目描述某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的出 ...

  6. ACM 五一杭电赛码"BestCoder"杯中国大学生程序设计冠军赛小记

    对于这项曾经热爱的竞赛,不得不说这是我最后一年参加ACM比赛了,所以要珍惜每一次比赛的机会. 五一去杭电参加了赛码"BestCoder"杯中国大学生程序设计冠军赛,去的队伍包括了今 ...

  7. 【2018 CCPC网络赛】1001 - 优先队列&贪心

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6438 获得最大的利润,将元素依次入栈,期中只要碰到比队顶元素大的,就吧队顶元素卖出去,答案加上他们期中 ...

  8. 个人训练记录-赛码"bestcoder"杯中国大学生程序设计冠军赛

    A.Movie 题意是给n个线段,要求求出是否存在三个不相交的线段,是的话输出yes,否则输出no.根据贪心的想法,可以先找出右端点r'最小的线段,他是三条线段中最左的那条,再找出左端点l'最大的线段 ...

  9. 【JavaScript】赛码网前端笔试本地环境搭建

    参考:https://hoofoo.me/article/2017-04-11/%E8%B5%9B%E7%A0%81%E7%BD%91%E5%89%8D%E7%AB%AF%E7%AC%94%E8%AF ...

随机推荐

  1. Caesar's Legions(三维dp)

    Caesar's Legions Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u S ...

  2. Maven 安装以及一些开发技巧

    解压 apache-maven-3.2.5 在conf ->sites中配置repository 的路径. Eclipse 配置 maven 2. 3. 一些小BUG 或开发技巧 eclipse ...

  3. 深入理解Java中的继承

    对于面向对象的程序设计而言,每一个程序员都应该去了解Java中的封装,继承和多态,那么我今天来说的主要是以继承为核心的主题. 一.关于对继承的理解. 继承是面向对象的三大特性之一,是java中实现代码 ...

  4. BZOJ 1004

    一道奇怪的数学题.为了这道题我看了很多题解,到底还是一知半解..整个感觉就是上了一场数学课. HNOI2008 Cards 题目描述 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有 ...

  5. Reverse Linked List | & ||

    Reverse Linked List I Reverse a linked list. Example For linked list 1->2->3, the reversed lin ...

  6. MyBatis3: Could not find SQL statement to include with refid ‘

    错误: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Incompl ...

  7. 如何提高cocos2d-x-spine骨骼动画加载速度

    下面分2点来说: 1. 时间消耗点:io和现场解析 解决方案:加载过的骨骼动画就不要每次重新加载,不要每次都去加载json文件和atlas,我推荐使用 static CCSkeletonAnimati ...

  8. iOS 在使用UINavigationController和TabBarController时view的frame

    可能是以前记错了,总认为在ios6上使用了UINavigationController或者TabBarController会因为多了bar而影响子controller的view的frame大小.今天在 ...

  9. mybatis存入数据库后没有时分秒时间不全只有年月日

    对于Ibatis操作Date/Time/DateTime,总结如下: 将pojo的属性类型设置为java.sql.Date(或java.sql.Time, java.sql.Timestamp),此时 ...

  10. 【读书笔记】读《JavaScript设计模式》之工厂模式

    一个类或对象中往往会包含别的对象.在创建这种成员对象时,你可能习惯于使用常规方式,也即用new关键字和类构造函数.问题在于这回导致相关的两个类之间产生依赖性. 工厂模式用于消除这两个类之间的依赖性,它 ...