具体的证明:点击打开链接
我的想法:
要想保证题目所说 构造最小行的和,仅仅能是这样的情况
..... m-3 m-2 m-1 m | m m-1 m-2 m-3 . ....
所以Ans 也就是取前N项就可。
又由于 It is guaranteed that N is always odd。 显然构造没问题。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
int n,m;
while(~scanf("%d%d",&m,&n))
{
int sum=0,k=0;
for(int i=1;i<=n;i++)
{
if(i%2==0)
{
sum+=(m-k);
k++;
}
else sum+=(m-k);
}
printf("%d\n",sum);
}
return 0;
}