主页
搜索
最近更新
数据统计
赞助我们
系统公告
1
/
1
请查看完所有公告
P1095题解
最后更新于 2025-06-15 17:14:09
作者
jinhaoxian
分类
题解
题解
P1095
复制 Markdown
查看原文
更新内容
基本思路: 首先,如果魔法足够,用闪烁,因为更快。 其次,如果魔法不够: 若魔法值为6至9,回复1秒即可再次使用魔法,而1秒可以跑17米,因此如果剩余时间大于一秒并且剩余距离大于17米,就休息1秒再使用闪烁法术,否则跑步 魔法值为2至5同理,需要回复2秒,因此如果剩余时间大于2秒并且剩余距离大于34米,就休息,否则跑步 若魔法值为0或1,需要回复3秒加上使用魔法1秒,而四秒能跑68米,超过了魔法的60米,但是这样也能使魔法值回复2点(回复12点减去魔法10点),再回复2秒使用魔法,总共需要7秒,用两次魔法共120米,超过跑步119米,但如果剩余时间小于7秒或者剩余距离小于119米(小于等于102米跑步快,103至119米一样),就跑步。 ``` #include<bits/stdc++.h> using namespace std; int m,s,t,i,p; int main() { cin>>m>>s>>t;//输入 for (i=1;i<=t&&p<s;i++) { if (m<2)//分段处理 { if (s-p>102&&t-i>=6) m+=4; else p+=17; continue; } if (m>=2&&m<6) { if (s-p>34&&t-i>=2) m+=4; else p+=17; continue; } if (m>=6&&m<10) { if (s-p>17&&t-i>=1) m+=4; else p+=17; continue; } if (m>=10) { p+=60; m-=10; } } if (p>=s) //输出 cout<<"Yes"<<endl<<i-1; else cout<<"No"<<endl<<p; return 0; } ```
正在渲染内容...
点赞
0
收藏
0