魔法训练(中二羊)
魔法训练(train.cpp)
题面
【题目描述】
ZEY做梦梦到自己穿越到了一个魔法世界。但是他却不知道运用魔法的技巧,于是他找到了隐居的魔法大师学技巧。
大师一挥手,地上就升起了一排石柱,这些石柱的高度从右往左正好是
【输入说明】
输入文件名为 train.in
输入为两个整数,分别是
【输出说明】
输出文件名为 train.out
输出一个整数,表示ZEY的最高得分。
输入样例1:
4 1
输出样例1:
5
输入样例2:
4 10
输入样例2:
6
【样例说明】
对于样例1,交换
对于样例2,魔力足够将其换为
【数据范围】
对于
对于
题解
本题时间复杂度正解:
本题算法正解:不需要循环,递归。只需要1次判断。
本题算法标签:贪心。
本题贪心思路:每一次交换首尾。
证明方式:
对于数列:
代码实现方式:
- 循环
的算法会超时。洛谷评测机很快,所以可以得90分,但是在CCF上可能得不了高分,所以这个方法放弃。 - 等差数列
详见代码:
#include<cstdio>
signed main(){
freopen("train.in","r",stdin);
freopen("train.out","w",stdout);
long long n,m;
scanf("%lld%lld",&n,&m);
long long ans=0;
if(m>=(n>>1))ans=((n-1)*n)>>1;//特判,当m大于2/n时,直接用等差数列即可。
else ans=((2*(n-1)-1+2*(n-2*m+1)-1)*m)>>1;
printf("%lld",ans);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现