Uva 10131-Is Bigger Smarter?(DP)
来源:互联网 发布:淘宝评论不见了 编辑:程序博客网 时间:2024/06/05 03:00
题目链接:点击打开链接
DAG(有向无环图)上的最长路+打印路径
建图很简单,对于两点 a b, 能够由a到b的条件是w[a]<w[b]&&s[a]>s[b] 注意是有向图。
设dp[i] 为以i为起点的最长路的长度,dp[i]= max(dp[i],dp[j]+1) 枚举j (j是和i相连的点)
#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <string>#include <cctype>#include <vector>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <map>#include <set>#define maxn 1010#define _ll __int64#define ll long long#define INF 0x3f3f3f3f#define Mod 1000000007#define pp pair<int,int>#define ull unsigned long longusing namespace std;int p,w[maxn],s[maxn],dp[maxn];bool ma[maxn][maxn];void build(){memset(ma,0,sizeof(ma));for(int i=1;i<p;i++){for(int j=i+1;j<p;j++){if(w[i]<w[j]&&s[i]>s[j])ma[i][j]=1;else if(w[j]<w[i]&&s[j]>s[i])ma[j][i]=1;}}}int dfs(int x){int& ans=dp[x];if(ans>0) return ans;ans=1;for(int i=1;i<p;i++)if(ma[x][i])ans=max(ans,dfs(i)+1);return ans;}void output(int x){printf("%d\n",x);for(int i=1;i<p;i++)if(ma[x][i]&&dp[x]==dp[i]+1){output(i);break; }}int main(){p=1;while(scanf("%d %d",w+p,s+p)!=EOF)++p;build();memset(dp,-1,sizeof(dp));int ans=-INF,indx;for(int i=1;i<p;i++)if(ans<dfs(i)) {ans=dp[i];indx=i; }printf("%d\n",ans);output(indx); return 0;}
0 0
- UVA 10131 Is Bigger Smarter? (DP)
- Uva 10131-Is Bigger Smarter?(DP)
- UVA 10131 Is Bigger Smarter? DP
- UVa 10131 Is Bigger Smarter? (DP&LIS)
- UVA 10131 Is Bigger Smarter ? DP ,Commencel
- Is Bigger Smarter? - UVa 10131 dp
- 【DP】UVA 10131 Is Bigger Smarter? LIS
- UVA 10131 Is Bigger Smarter?(DP)
- uva--10131Is Bigger Smarter? +dp
- UVA - 10131Is Bigger Smarter?(DAG上的DP)
- uva 10131 Is Bigger Smarter? (DAG)
- UVa 10131 Is Bigger Smarter?
- UVa 10131 Is Bigger Smarter?
- UVA 10131 - Is Bigger Smarter
- uva 10131 Is Bigger Smarter?
- uva:10131 - Is Bigger Smarter?
- uva 10131 Is Bigger Smarter?
- UVA 10131 Is Bigger Smarter?
- Satellite卫星电视的基本知识
- 周国平之教育七箴言
- PHP 根据IP地址获取所在城市
- 图文讲解jenkins的安装与配置---远程发布、自动监测代码更新
- Spring MVC Mybatis 整合
- Uva 10131-Is Bigger Smarter?(DP)
- 大话设计—行为型模式总结
- android:descendantFocusability listView中的item获取焦点用法简析
- Linux/Android——usb触摸屏驱动 - usbtouchscreen (一)
- Monster Card Game的设计与实现之框架篇
- Nginx下多个PHP框架对比
- 第15周项目1寻内幕
- Zookeeper伪分布式安装
- 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。