专栏文章

题解:P11697 [ROIR 2025] 二维蚱蜢 (Day 1)

P11697题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqajbg5
此快照首次捕获于
2025/12/04 01:38
3 个月前
此快照最后确认于
2025/12/04 01:38
3 个月前
查看原文
数据太大,深搜做不了,只能用 数学 贪心的思想。。
声明:1,1到n,m和1,1到m,n最短路步数相同,所以 if(n>m)swap(n,m);
计算是从0,0开算的,而题目是从1,1开走的,所以要 n--; m--;
上思路
首先,我把路径分成两段
上图: n=4 m=7
1
1
1
1222
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
1为第一段路。 第一段路走的是一个长为n的斜线
2为第二段路。 第二段路走的是一条长为(m-n)的直线
分别求出 走两段路的步数:
第一段路 (n-1)*1.0/k+1
第二段路 (m-n-1)*1.0/k+1
最后把两段步数相加,即为最终答案。
直接上代码:
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int main()
{
	cin>>n>>m>>k;
	n--;m--;
	if(n>m)swap(n,m);
	int ans=0;
	if(m-n>=1)ans+=(m-n-1)*1.0/k+1;
	ans+=(n-1)*1.0/k+1;
	cout<<ans;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...