这题其实是一道模拟推规律的题目
题解思路:
由题意我们其实不难看出小红小紫的意图和操作方法,小红希望步数尽量小,换句话说就是希望小小红尽量走直线,小紫希望步数尽量大,换句话就是希望小小红尽量多拐弯,所以这题的思路其实很明显,小红应该把障碍放在小小红的下方,由于题目要求,必须存在一条能抵达终点的路径,所以这样放才能使小小红尽量走直线,我们可以列个excel表看一下:
其实很明显可以看出,小红第一个位置一定不能放在(2,2),因为用贪心的想法,我们要保证小小红尽可能的多走,还要满足条件,放在(2,3)是比放在(2,2)要更划算的,因为这样小小红可以连走三次,小紫要想逼他转弯就只能放在(1,5),这样放其实才是对我们有利的,后面的每一步都这么做下去,其实就能找到规律了
AC码:
void solve() {
int n;
cin>>n;
cout<<n-1+n/5<<"\n";
}
signed main() {
//vector<vector<int>>a(n,vector<int>(m)); 二维构造
//cout << fixed << setprecision(10); 固定小数输出
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int T = 1;
cin >> T;
while (T--) solve();
return 0;
}

京公网安备 11010502036488号