P3918 [国家集训队]特技飞行(贪心)

mac2026-02-06  0

传送门

这道贪心挺裸的 显然动作的价值越大,它就应该间隔更长的时间来完成两次 因此贪心就好了 code:

#pragma GCC optimize(3)//玄学优化 #include<cstdio> #include<algorithm> using namespace std; int main(){ int n,k; scanf("%d%d",&n,&k); int c[k+5],d[k+5]; long long int ans=0; for(int i=0;i<k;i++)scanf("%d",&c[i]);//输入价值 sort(c,c+k);//排序 int l=0,r=n;//左右位置 for(int i=k-1;i>=0;i--){ d[l]=d[r]=c[i];//把当前最大的价值放在数组两端 ans=ans+c[i]*(r-l-1);//答案修改 ++l;--r;//左右位置向里移 if(l>=r)break;//两个位置重合 } printf("%lld",ans);//输出 return 0;//结束 }
最新回复(0)