题意:有编号为1~n的学号,某人要从某一点开始,顺序访问所有学校,编号I到j的旅费为(i+j)%(n+1),求拜访完所有学校后的最小费用
思路:两学校的编号之和要接近n+1,学校按从1~n排,每次从选取两端的学校,就是最小的,然后就有规律可以找
#include<cstdio>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int ans=(n-1)/2;
printf("%d\n",ans);
}
}
本文介绍了一种寻找访问编号从1到n的学校时最小总费用的方法,通过将学校编号之和保持接近n+1来降低费用。文章提供了一个简单的C++实现方案,通过计算(n-1)/2得到最终答案。
题意:有编号为1~n的学号,某人要从某一点开始,顺序访问所有学校,编号I到j的旅费为(i+j)%(n+1),求拜访完所有学校后的最小费用
思路:两学校的编号之和要接近n+1,学校按从1~n排,每次从选取两端的学校,就是最小的,然后就有规律可以找
#include<cstdio>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int ans=(n-1)/2;
printf("%d\n",ans);
}
}
642

被折叠的 条评论
为什么被折叠?