标签:print 示例 分享 pid list 元素 tool 数字 can
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1241
第1行:1个数N(2 <= N <= 50000)。 第2 - N + 1行:每行1个数,对应排列中的元素。
输出1个数,对应所需的最少移动次数。
5 2 5 3 4 1
2
代码如下:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <vector> 6 #include <cmath> 7 #include <queue> 8 #include <stack> 9 #include <map> 10 #include <string> 11 #include <set> 12 using namespace std; 13 typedef long long LL; 14 const int INF = 2e9; 15 const LL LNF = 9e18; 16 const int MOD = 1e9+7; 17 const int MAXM = 1e5+10; 18 const int MAXN = 5e4+10; 19 20 int a[MAXN],vis[MAXN], dp[MAXN]; 21 int main() 22 { 23 int n; 24 while(scanf("%d",&n)!=EOF) 25 { 26 for(int i = 1; i<=n; i++) 27 scanf("%d",&a[i]); 28 29 int cnt = 0; 30 memset(vis, 0, sizeof(vis)); 31 for(int i = 1; i<=n; i++) 32 { 33 dp[a[i]] = 1; 34 if(vis[a[i]-1]) dp[a[i]] += dp[a[i]-1]; 35 vis[a[i]] = 1; 36 cnt = max(cnt, dp[a[i]]); 37 } 38 printf("%d\n", n-cnt); 39 } 40 }
标签:print 示例 分享 pid list 元素 tool 数字 can
原文地址:https://www.cnblogs.com/DOLFAMINGO/p/8797897.html