标签:ble arc limit int 代码 整数 tput miss 经典
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257
题目大意:求有多少个单调非递增序列。
解题思路:经典题的变形----LIS。可以按照题意,多次dp,每次记录路径并进行访问标记,每次dp只要有更新过就++ans。
然而稍微思考就发现实际上求得就是最长单调递增序列的长度。
代码:
const int maxn = 1e6 + 5;
int n, a[maxn];
int dp[maxn];
void solve(){
memset(dp, 0, sizeof(dp));
dp[0] = 0; a[0] = 0;
for(int i = 1; i <= n; i++){
for(int j = 0; j < i; j++){
if(a[j] < a[i] && dp[j] + 1 > dp[i]){
dp[i] = dp[j] + 1;
}
}
}
int ans = 0;
for(int i = 1; i <= n; i++) ans = max(ans, dp[i]);
printf("%d\n", ans);
}
int main(){
while(scanf("%d", &n) != EOF){
memset(dp, 0, sizeof(dp));
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
solve();
}
}
题目:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 44913 Accepted Submission(s): 17624
标签:ble arc limit int 代码 整数 tput miss 经典
原文地址:http://www.cnblogs.com/bolderic/p/7363903.html