贪心 赛码 1001 Movie
题目传送门
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 = 10000000 + 10; 27 const long long INF = 0x3f3f3f3f; 28 struct Node 29 { 30 unsigned int l, r; 31 }node[MAXN]; 32 33 int main(void) //赛码 1001 Movie 34 { 35 //freopen ("A.in", "r", stdin); 36 37 int t, n; 38 unsigned int a, b, c, d; 39 scanf ("%d", &t); 40 while (t--) 41 { 42 scanf ("%d%d%d%d%d%d%d", &n, &node[1].l, &node[1].r, &a, &b, &c, &d); 43 44 for (int i=2; i<=n; ++i) 45 { 46 node[i].l = node[i-1].l * a + b; 47 node[i].r = node[i-1].r * c + d; 48 } 49 for (int i=1; i<=n; i++) 50 { 51 if (node[i].l > node[i].r) swap (node[i].l, node[i].r); 52 } 53 54 unsigned int mn_r = 4294967295UL, mx_l = 0; 55 for (int i=1; i<=n; ++i) 56 { 57 if (mn_r > node[i].r) mn_r = node[i].r; 58 if (mx_l < node[i].l) mx_l = node[i].l; 59 } 60 61 if (mn_r > mx_l) 62 { 63 puts ("NO"); continue; 64 } 65 66 bool flag = false; 67 for (int i=1; i<=n; ++i) 68 { 69 if (mn_r < node[i].l && node[i].r < mx_l) 70 { 71 flag = true; puts ("YES"); break; 72 } 73 } 74 if (!flag) puts ("NO"); 75 } 76 77 return 0; 78 }
1 /* 2 贪心水题 3 */ 4 #include <cstdio> 5 #include <iostream> 6 #include <algorithm> 7 using namespace std; 8 9 const int MAXN = 1e2 + 10; 10 const int INF = 0x3f3f3f3f; 11 struct Node 12 { 13 int l, r; 14 }node[MAXN]; 15 16 bool cmp(Node x, Node y) 17 { 18 if (x.r == y.r) return x.l < y.l; 19 20 return x.r < y.r; 21 } 22 23 int main(void) //HDOJ 2037 今年暑假不AC 24 { 25 //freopen ("HDOJ_2037.in", "r", stdin); 26 27 int n; 28 while (scanf ("%d", &n) == 1) 29 { 30 if (n == 0) break; 31 32 if (n == 1) 33 { 34 puts ("1"); continue; 35 } 36 37 for (int i=1; i<=n; ++i) 38 { 39 scanf ("%d%d", &node[i].l, &node[i].r); 40 if (node[i].l > node[i].r) swap (node[i].l, node[i].r); 41 } 42 43 sort (node+1, node+1+n, cmp); 44 45 int cnt = 1; 46 int tmp = node[1].r; 47 for (int i=2; i<=n; ++i) 48 { 49 if (node[i].l >= tmp) 50 { 51 tmp = node[i].r; ++cnt; 52 } 53 } 54 55 printf ("%d\n", cnt); 56 } 57 58 return 0; 59 }
HDOJ 2037 今年暑假不AC
转载于:https://www.cnblogs.com/Running-Time/p/4473917.html
贪心 赛码 1001 Movie相关推荐
- 赛码网输入输出总结+真题演练
赛码网输入输出总结 前言 类型一:测试组数不固定,每组三行数据 踩坑记录1 踩坑记录2 类型2 测试组数不定,输入数据中有指定行数的多行输入(赛码网找老乡题最完美答案) 类型三:一组数据,有指定行数的 ...
- 赛码浪潮笔试题库软件实施岗位_赛码 -HRTechChina中国人力资源科技-向上的力量!...
"赋能数据,丈量未来"互联网校园招聘交流年会暨赛码IT人才数据白皮书发布会在京成功举办 1月9日由中智赛码主办的"赋能数据丈量未来-互联网校园招聘交流年会暨赛码IT人才数 ...
- 赛码网算法: 上台阶 ( python3实现 、c实现)
上台阶 题目描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法. 输入输入数据首先包含一个整数n(1<=n<=1 ...
- 赛码网算法: 军训队列( python实现 )
军训队列 题目描述 某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的 ...
- 赛码行测题库_京东财务人员面试经验|面试题 - 职朋职业圈
面试过程: .网申 不得不说,毕竟互联网公司,网申界面设计的比一些知名外企人性化太多,你边填写就可以边保存,完全不要担心突然网卡了啥都没了. (吐槽一下百威英博,我是借了一台windows才顺利填完网 ...
- 牛客网赛码网 输入输出格式
目录 牛客网&赛码网输入输出 牛客网 单行输入 多行输入,每一行是一个测试样例 多个测试用例,每个测试用例有多行 赛码网 单个输入,单个输出 单行多个输入,单行多个输出,空格分割 多个测试案例 ...
- 牛客网赛码网输入输出总结(python版)
1. 单行输入: n, m = map(int, sys.stdin.readline().strip().split()) 对该行中所有元素取整型后赋给等式左边若干参数 2. 多行输入: 先获取第一 ...
- 牛客网赛码网 输入输出格式 pythonC++
牛客网&赛码网 输入输出格式 python&C++ Note: 你的程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,举个例子,你可以使用c语言的scan ...
- 【赛码网 牛客网】输入输出总结(python版)
1. 单行输入 n, m = map(int, sys.stdin.readline().strip().split()) 对该行中所有元素取整型后赋给等式左边若干参数 2. 多行输入: 先获取第一行 ...
最新文章
- .net core在vs开发环境下脱离iis运行
- Linux内核学习笔记
- HDU 1232 -畅通工程(并查集)
- 2009设计大餐 Adobe CS4 全集下载
- How to make a Logical Volume ON AIX5.3
- XML与web开发-01- 在页面显示和 XML DOM 解析
- 【C#】byte[]数据转化相关操作
- 用python建立三元一次方程_python简单的三元一次方程求解实例
- instantclient19\12\11版本下载
- 【毕业设计】物联网智能温控风扇设计与实现 - stm32 单片机 嵌入式
- mdf导入虚拟主机mysql_MYSQL导入mdf文件
- oracle实例由,Oracle 数据库的实例由( )组成
- 《ChatGPT》自动写代码、写作文,使用教程来了
- PostgreSQL基础(概念篇)
- 哆啦A梦的超级计算机,哆啦A梦的体内究竟有什么?其实你真的低估了这个蓝胖子...
- 向量中断、中断向量、向量地址3个概念是什么关系?
- 英雄会第一届在线编程大赛解题思路
- c语言入门篇:注释定界符详解
- vue点击图片查看大图使用插件 vue-photo-preview
- 张长水主任当选2018年IEEE Fellow!中国大陆17位当选者清华占了5位 !(附完整名单)