P3918 [国家集训队]特技飞行
题目描述
神犇航空开展了一项载客特技飞行业务。每次飞行长 个单位时间,每个单位时间可以进行一项特技动作,可选的动作有 种,每种动作有一个刺激程度 。如果连续进行相同的动作,乘客会感到厌倦,所以定义某次动作的价值为(距上次该动作的时间) ,若为第一次进行该动作,价值为 。安排一种方案,使得总价值最大。
思路
1.每个动作最多两次
证明:假设动作在三个时刻进行,那么收益是,所以中间时刻形同虚设。
2.每次安排在两头,这样可以最大限度的使时间间隔最大
证明:易得
3.应该从大到小开始安排
证明:易得
代码
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<string> #include<algorithm> #include<queue> #include<stack> #include<vector> #include<iomanip> #define N 1010 using namespace std; int m,n,c[N]; int ans=0; long long read(){ long long x=0,h=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')h=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+(long long)(ch-'0');ch=getchar();} return x*h; } int main(){ m=read(); n=read(); for(int i=1;i<=n;i++)c[i]=read(); sort(c+1,c+n+1); for(int i=n,j=m-1;i>=1&&j>0;i--,j-=2){ ans+=(c[i]*j); } cout<<ans<<endl; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现