随手练——HDU-2037 、P-2920 时间安排(贪心)
普通时间安排
HDU-2037 :http://acm.hdu.edu.cn/showproblem.php?pid=2037
选取结束时间早的策略。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std; class T {
public:
int start, end;
T(int s, int e) {
start = s; end = e;
}
bool operator<(T t)const {
return end < t.end;
}
}; int main() {
int n, c1, c2;
vector<T>v;
while (cin >> n) {
if (n == )break;
while (n--) {
cin >> c1 >> c2;
v.push_back(T(c1, c2));
} sort(v.begin(), v.end());
int res = ; int end = v[].end;
for (int i = ; i < v.size(); i++) {
if (v[i].start >= end) {
res++;
end = v[i].end;
}
}
cout << res << endl;
v.clear();
}
return ;
}
时间管理升级1
洛谷:https://www.luogu.org/problemnew/show/P2920
思想和第一个差不多,稍微绕了一点小弯,这题装 vector 再做就超时了,能简尽量不要复杂。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class TIME {
public:
int t_s, t_e;
}T[];
int cmp(TIME t1, TIME t2) {
return t1.t_e < t2.t_e ? : ;
}
int main() {
int N;
cin >> N;
for (int i = ; i < N;i++) {
cin >> T[i].t_s >> T[i].t_e;
T[i].t_s = T[i].t_e - T[i].t_s;
}
sort(T, T + N, cmp);
int i = ;
while (i < N) {
if (T[i].t_s < T[i - ].t_e) {
while (T[i].t_s < T[i - ].t_e) {
T[i].t_s++;
T[].t_s--;
}
if (T[].t_s < )
break;
}
else {
while (T[i].t_s != T[i-].t_e) {
T[i].t_s--;
T[i].t_e--;
}
i++;
}
}
if (T[].t_s < || i != N)cout << - << endl;
else cout << T[].t_s << endl;
return ;
}
随手练——HDU-2037 、P-2920 时间安排(贪心)的更多相关文章
- 随手练——HDU 5015 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 看到这个限时,我就知道这题不简单~~矩阵快速幂,找递推关系 我们假设第一列为: 23 a1 a2 ...
- 随手练——HDU Safe Or Unsafe (小根堆解决哈夫曼问题)
HDU 2527 :http://acm.hdu.edu.cn/showproblem.php?pid=2527 哈夫曼树,学完就忘得差不多了,题目的意思都没看懂,有时间复习下,看了别人的才知道是怎么 ...
- 随手练——HDU 1078 FatMouse and Cheese(记忆化搜索)
http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意: 一张n*n的格子表格,每个格子里有个数,每次能够水平或竖直走k个格子,允许上下左右走,每次走的格子 ...
- 随手练——HDU 1284 动态规划入门
#include <iostream> #include <algorithm> #include <string.h> using namespace std; ...
- 随手练——HDU 1251 统计难题
知识点:前缀树.典型的前缀树模板. 这是用next[26]数组的版本,超内存了.(后来发现,用C++交不会超,G++就会超) #include <iostream> #include &l ...
- 随手练——HDU 1237 表达式求值(输入格式典型)
坑了老子半天,结果是 float 范围不够!!! 基本思想: 开一个符号栈,一个数字栈: 碰到数字就入栈,碰到符号就与栈顶符号进行对比,如果当前符号优先级小于栈顶符号,数字栈弹出两个数进行栈顶符号运算 ...
- HDU 2037 今年暑假不AC(贪心,区间更新,板子题)
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- HDU 2037 今年暑假不AC(贪心)
今年暑假不AC Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了 ...
- HDU - 2037 今年暑假不AC 贪心(求序列中不重叠子序列的最大值问题)
HDU2037 今年暑假不AC 贪心算法 大意: 每次测试数据输入一个n,然后输入n对的电视节目播放时间:开始时间及结束时间, 求这个人能看的最多的完整的节目数. 解题思路: 对于这道解题,是对每个 ...
- 随手练—— 洛谷-P2945 Sand Castle(贪心)
题目链接:https://www.luogu.org/problemnew/show/P2945 (原题 USACO) 要求钱最少,就是试着让M和B的离散程度最小(我自己脑补的,就是总体更接近,我不知 ...
随机推荐
- 系统每隔一段时间自动pull代码
#!/bin/bash while true;do dd=$( date -u ) echo $dd,"start pull wmsinventoryapiwms6.2" cd / ...
- PHP-redis英文文档
作为程序员,看英文文档是必备技能,所以尽量还是多看英文版的^^ PhpRedis The phpredis extension provides an API for communicating wi ...
- oauth2.0授权协议
参考文章 一.OAuth是什么? OAuth的英文全称是Open Authorization,它是一种开放授权协议.OAuth目前共有2个版本,2007年12月的1.0版(之后有一个修正版1.0a)和 ...
- [翻译]Review——How JavaScript works:The building blocks of Web Workers
原文地址:https://blog.sessionstack.com/how-javascript-works-the-building-blocks-of-web-workers-5-cases-w ...
- BZOJP1096[ZJOI2007]仓库建设——solution
Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天, ...
- 【javascript】javasrcipt设计模式之状态模式
使用场景 解决多个[ifelse]嵌套,将其封装成若干个方法 区分事物内部的状态,事物内部的状态的改变往往会带来事物的行为的改变 简单的多个状态直接切换的时候 //两个状态之间的切换,使用if-els ...
- volley2--volley的使用和架构
图片: 下面只是笼统的介绍,大家可以对比自己的想法,看看自己是不是有什么考虑不周的(如果是你实现这样一个框架的话) 1,Request的设计,我们在得到response之后,我们可能根据项目需求希望有 ...
- DHCP服务搭建
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...
- Software Testing Techniques LAB 01: test Junit and Eclemma
1. Installing 1. Install Junit and hamcrest First, I download the Junit-4.12.jar and hamcrest-core- ...
- CentOS7路由、端口和服务排障常用命令
1. ip route 显示主机基本路由信息 ~]# ip route default via 172.25.0.254 dev eth0 proto static metric 1024 1 ...