作者:贺bujak_491 | 来源:互联网 | 2024-11-07 15:48
UVa815问题“洪水来袭!”涉及洪水模拟和应对策略。在解决该问题时,需要通过直接模拟来处理洪水扩散过程,并特别关注临界情况的处理。代码实现中应包括必要的头文件,并使用标准命名空间以简化编程。此外,建议在算法设计中加入对边界条件和特殊情况的详细检查,以确保解决方案的鲁棒性和准确性。
//UVa815 - Flooded!
//直接模拟,注意考虑临界情况
#include
#include
using namespace std;int main(){//freopen("UVa815.in","r",stdin);int n, m, kase &#61; 1;while(scanf("%d%d",&n,&m)&#61;&#61;2 &&n &&m){int ans[30*30], i; ans[0] &#61; 1;for(i &#61; 1; i<&#61;n*m; i&#43;&#43;) scanf("%d",&ans[i]);double h, h2 &#61; 0.0; scanf("%lf",&h); h/&#61;100.0; //h为原来的水位,h2为每次用掉的水sort(ans&#43;1,ans&#43;n*m&#43;1);for(i &#61; 1; i &#61;h2)h -&#61; h2; //本次填水后是否仍有剩余else {ans[0] &#61; 0; break;} //ans[0]用作开关}printf("Region %d\n",kase&#43;&#43;);printf("Water level is %.2lf meters.\n",ans[0]? (ans[n*m]&#43;h/n/m): (ans[i]&#43;h/i));printf("%.2lf percent of the region is under water.\n\n",ans[0]? (100): (i*1.0/n/m)*100); }return 0;
}/*测试数据(考虑填满)&#xff1a;已AC
3 3
25 37 45
51 12 34
94 83 27
100000
3 1
-6
-5
-4
301
0 0
*/