Hanoi Factorys
题面
思路
这道题看似难的一匹,实际上也难的一批还好,甚至n^2 DP都有50分呢.
原谅我一失手成千古恨。
50分思路
就是sort后根据条件DP
if (LIS[i].b>LIS[j].a) f[i]=max(f[j]+LIS[i].h,f[i]);
然后更新MAXX的值输出即可
100分思路
首先,为什么我单调队列只有90啊啊啊啊啊!!!(其实是因为有一个贪心所以导致单调队列太长了)
用优先队列优化,既然当前位置的值是由前i个位置推来的,那么要让结果最大也就是要取前i个节点的最大值了(其实单调性,优先队列以及线段树或树状数组都可以啊)
于是乎,标程也得以推出。
代码
#include<bits/stdc++.h> using namespace std; long long n,f[100005],MAXX=-1; struct hanoi{long long x,y,h;}LIS[100005]; bool cmp(hanoi x,hanoi y){if (x.y==y.y) return x.x>y.x;return x.y>y.y;} struct node{long long n,num;bool operator <(const node &now)const{return num<now.num;}}; priority_queue<node> q; int main() { freopen("hanoi.in","r",stdin); freopen("hanoi.out","w",stdout); cin>>n; for (int i=1;i<=n;i++) cin>>LIS[i].x>>LIS[i].y>>LIS[i].h; sort(LIS+1,LIS+n+1,cmp); q.push((node){0,0}); for (int i=1;i<=n;i++) { while (q.top().n>=LIS[i].y) q.pop(); f[i]=q.top().num+LIS[i].h; q.push((node){LIS[i].x,f[i]}); MAXX=max(MAXX,f[i]); } cout<<MAXX<<endl; return 0; }
Hanoi Factorys的更多相关文章
- 关于PJ 10.27
题1 : Orchestra 题意: 给你一个 n*m 的矩阵,其中有一些点是被标记过的. 现在让你求标记个数大于 k 个的二维区间个数. n.m .k 最大是 10 . 分析: part 1: 10 ...
- Hanoi问题java解法
用什么语言解法都差不多,思路都是一样,递归,这其中只要注重于开始和结果的状态就可以了,对于中间过程,并不需要深究.(我细细思考了一下,还是算了.=_=) 代码其实很简单注重的是思路. 问题描述:有一个 ...
- HDU1329 Hanoi Tower Troubles Again!——S.B.S.
Hanoi Tower Troubles Again! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- ZOJ-1239 Hanoi Tower Troubles Again!
链接:ZOJ1239 Hanoi Tower Troubles Again! Description People stopped moving discs from peg to peg after ...
- Hanoi问题
#include<stdio.h>int main(){ int m; void hanoi(int n,char x,char y,char z); printf("input ...
- The Towers of Hanoi Revisited---(多柱汉诺塔)
Description You all must know the puzzle named "The Towers of Hanoi". The puzzle has three ...
- Hanoi塔
2016-03-19 17:01:35 问题描述: 假设有三个命名为 A B C 的塔座 ,在塔座A上插有n个直径大小不相同,由小到大编号为1 ,2 ,3 ,··· ,n的圆盘,要求将A座上的圆盘移至 ...
- [CareerCup] 3.4 Towers of Hanoi 汉诺塔
3.4 In the classic problem of the Towers of Hanoi, you have 3 towers and N disks of different sizes ...
- 栈应用hanoi
/* 课本p54页*/ #include<stdio.h> #include <iostream> using namespace std; void move(int n, ...
随机推荐
- Pushlets 配置参数详解
基于 Pushlets 的消息推送设计 Pushlets 是通过长连接方式实现“推”消息的.推送模式分为:Poll(轮询).Pull(拉).本文围绕 Pull 模式进行设计. 原理 客户端发起请求 ...
- Java学习之静态代码块
一.static(在方法区有一块固定的存储区域,由于优先于对象存在,所以可以被所有对象共享) 在定义方法的时候你写main方法的类加static, 写普通类的写方法的时候就不要加static 1.st ...
- BZOJ5416 NOI2018冒泡排序(动态规划+组合数学)
打表可以发现相当于不存在长度>=3的递减子序列. 考虑枚举在哪一位第一次不卡限制.注意到该位一定会作为前缀最大值.判掉已确定位不合法的情况后,现在的问题即为求长度为i.首位>j的合法排列个 ...
- MT【76】直线系
解答 :答案是3,4.
- 洛谷 P2303 [SDOi2012]Longge的问题 解题报告
P2303 [SDOi2012]Longge的问题 题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数\(N\),你需要 ...
- suoi14 子树查找 (dfs)
把询问记下来,然后开个桶差分 #include<bits/stdc++.h> #define pa pair<int,int> #define lowb(x) ((x)& ...
- debian9部署jenkins
这里记录两种部署方式,一种是通过包管理工具直接安装,另一种是用tomcat作为web容器运行jenkins.个人倾向第一种,部署简单,而且维护起来方便很多. 用包管理工具aptitude部署jenki ...
- java旋转图片
/** * 旋转角度 * @param src 源图片 * @param angel 角度 * @return 目标图片 */ public static BufferedImage rotate(I ...
- token的理解
今天学习了token,它的英文意思是令牌的意思.在我理解即像通行证一样,在用户登录成功系统后,会为这个用户颁发一个token,这样它去其他系统都免登录,因为有了这个令牌. token的生成我们可以用U ...
- SQL Server优化的方法
SQL Server优化的方法<一> 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了 ...