标签:eof stream print cstring 3.1 amp mes can bottom
第一行一个整数n表示树的数量( 1 <= n <= 100,000)。
第二行n个整数表示树的高度( 1 <= a
i
<= 100,000)。
输出一个整数表示最少修改树的高度的数目。
3 2 2 2
1
4 1 2 2 1
0
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <stack> #include <cstdlib> #include <iomanip> #include <cmath> #include <cassert> #include <ctime> #include <map> #include <set> using namespace std; #pragma comment(linker, "/stck:1024000000,1024000000") #define lowbit(x) (x&(-x)) #define max(x,y) (x>=y?x:y) #define min(x,y) (x<=y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.1415926535897932384626433832 #define ios() ios::sync_with_stdio(true) #define INF 0x3f3f3f3f #define mem(a) ((a,0,sizeof(a))) int a[100006],b[200006],c[350006]; int n,m; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); if(n&1) m=n/2+1; else m=n/2; for(int i=1;i<=m;i++) b[i]=i; for(int i=m+1;i<=n;i++) b[i]=n-i+1; memset(c,0,sizeof(c)); for(int i=1;i<=n;i++) c[a[i]-b[i]+200000]++; int ans=0; for(int i=0;i<=350000;i++) ans=max(ans,c[i]); printf("%d\n",n-ans); return 0; }
标签:eof stream print cstring 3.1 amp mes can bottom
原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/8966541.html