本文主要是介绍sdnu 1091 .守望者的逃离 (NOIP 2007 普及组),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:
http://210.44.14.31/problem/show/1091
思路:
记录两个变量:
1.一直在跑的距离
2.一直在闪烁的距离
当闪烁快时,把跑的距离重新赋值为闪烁的距离。
每一秒判断是否逃离岛。
此做法认真思考下,还是比较好理解的。
代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int M, S, T;
int ans;
bool solve()
{int runDis = 0;//记录跑的距离int magicDis = 0;//记录闪烁的距离int i;for (i = 1; i <= T; i++){if (M >= 10){magicDis += 60;M -= 10;}else{M += 4;}if (runDis + 17<magicDis){runDis = magicDis;}else{runDis += 17;}if (runDis >= S){ans = i;return true;}}ans = max(runDis, magicDis);return false;
}
int main()
{cin >> M >> S >> T;if (solve())cout << "Yes" << endl;elsecout << "No" << endl;cout << ans << endl;return 0;
}
这篇关于sdnu 1091 .守望者的逃离 (NOIP 2007 普及组)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!