题目:
有n个车站,任意两个车站之间均可达,票价是(i+j)mod(n+1),问走过所有的车站,需要的最小花费是多少。
思路:
首先根据票价的式子,可以看出,每次从前面取一个点,在从后面取一个点,这两点之间的票价是0.那么这样一直取下去,花费是最少的。费用就是(n-1)/2.
代码:
#include <cstdio>
#include <cstring>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <cmath>
#include <algorithm>
#include<bits/stdc++.h>
using namespace std;
const double N = 1e6+10;
const double pi = acos(-1.0);
const int INF = 0x3f3f3f3f;
const int MOD = 1000000007;
#define ll long long
#define CL(a,b) memset(a,b,sizeof(a))
#define MAXN 100010
int a[MAXN];
int main()
{
int n;
cin >> n;
cout << (n-1)/2 << endl;
return 0;
}