usaco buylow dp+记录路径
2014-08-25 19:39
288 查看
/* ID: xujiahe1 PROG: buylow LANG: C++ */ #include<cstdio> #include<algorithm> #include<iostream> using namespace std; #define MAXN 100005 #define INF 0x3f3f3f3f int a[MAXN],dp[MAXN],r[MAXN],n; int main() { freopen("buylow.in","r",stdin); freopen("buylow.out","w",stdout); scanf("%d",&n); { int ans1=0,ans2=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); r[i]=1; dp[i]=1; } for(int i=1;i<=n;i++) { for(int j=1;j<i;j++) { if(a[j]>a[i]) { if(dp[j]+1>dp[i]) { dp[i]=dp[j]+1; r[i]=r[j]; } else if(dp[j]+1==dp[i]) { r[i]+=r[j]; } } } for(int j=1;j<i;j++) { if(a[j]==a[i]&&dp[j]==dp[i]) r[j]=0; } ans1=max(ans1,dp[i]); } for(int i=1;i<=n;i++) { if(dp[i]==ans1) ans2+=r[i]; } printf("%d %d\n",ans1,ans2); } return 0; } /* 6 5 2 3 2 4 2 */
相关文章推荐
- hdu1160 FatMouse's Speed 最长上升子序列以及记录路径 DP
- POJ--1141--Brackets Sequence--记录DP路径
- DP LIS 记录路径 hdu 1160
- 【DP】UVA 624 CD 记录路径
- bzoj1046上升序列 DP+记录路径
- poj 1141【dp--记录路径】
- POJ 1141 Brackets Sequence (区间dp 记录路径)
- uva 10453 - Make Palindrome(dp, 记录路径)
- POJ 1141 Brackets Sequence(记录路径的dp)
- USACO Buy Low, Buy Lower 解题报告
- Vijos 1071 【DP之记录路径】
- poj 1141 Brackets Sequence 【区间DP+路径记录】
- dp之完全背包poj1787(完全背包以及路径记录 推荐)
- DP LIS 记录路径 hdu 1160
- [IOI1999]花店橱窗布置(DP路径记录)
- USACO 3.2 Magic Squares(记录路径的BFS)
- HDU 1160 FatMouse's Speed 最长上升子序列及记录路径DP
- 记录路径dp-4713-Permutation
- URAL 1078. Segments(记录路径的简单dp)
- poj1141 Brackets Sequence(区间dp记录路径问题)