nyoj 16 最长上升子序列变形
2015-07-15 19:18
218 查看
经典矩形嵌套问题,先排序再求LIS。
需要注意在枚举j的时候x和y都要小于i才行。
也可以根据矩形的嵌套关系建图,然后用拓扑排序+dp或者是逆向建图记忆花搜索来求解。
需要注意在枚举j的时候x和y都要小于i才行。
#include <algorithm> #include <cstdio> using namespace std; const int N = 1000; int dp ; struct Node { int x, y; bool operator < ( const Node & o ) const { if ( x != o.x ) return x < o.x; return y < o.y; } } node ; int main () { int t; scanf("%d", &t); while ( t-- ) { int n; scanf("%d", &n); for ( int i = 0; i < n; i++ ) { scanf("%d%d", &node[i].x, &node[i].y); if ( node[i].x > node[i].y ) { swap( node[i].x, node[i].y ); } } sort( node, node + n ); int ans = -1; for ( int i = 0; i < n; i++ ) { dp[i] = 1; for ( int j = 0; j < i; j++ ) { if ( node[j].x < node[i].x && node[j].y < node[i].y ) { dp[i] = max( dp[i], dp[j] + 1 ); } } ans = max( ans, dp[i] ); } printf("%d\n", ans); } return 0; }
也可以根据矩形的嵌套关系建图,然后用拓扑排序+dp或者是逆向建图记忆花搜索来求解。
相关文章推荐
- hive 报错/tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x
- DB2Error
- xcode调试
- Java编程中一些常用的小方法
- Hbase集群扩展
- H.264基本概念
- 黑马程序员--OC中static,self,super等使用
- mac平台adb、tcpdump捕手android移动网络数据包
- 欢迎使用CSDN-markdown编辑器
- pthread_cond_wait的理解
- js前端动态打开本地文件夹选择本地文件
- msys2 安装注意事项
- 获取actionbar上title控件并设置其颜色
- 分布式数据处理解决方案
- 关于一维数组与指针一些实践
- Ajax学习
- HDU 2601 An easy problem
- java的for循环
- iOS C语言2_分支结构
- 正则表达式,模拟网络爬虫小例子