石油大学网页设计与网站建设,天津网络维护公司,知识付费网站搭建,网上商城建设公司这道题主要学到的就是数据结构的组织#xff0c;一些需要从小到大排列的东西#xff0c;这些东西还有对应的东西。这个时候使用map可以解决 下面贴出代码。其中所使用的思想#xff0c;估计这个东西是没法学的#xff0c;这就只能是灵感 //这是什么吉尔题#xff0c;题意都…这道题主要学到的就是数据结构的组织一些需要从小到大排列的东西这些东西还有对应的东西。这个时候使用map可以解决 下面贴出代码。其中所使用的思想估计这个东西是没法学的这就只能是灵感 //这是什么吉尔题题意都没有说清楚排水系统保证从最低的开始而且四面都是高地
//我想要的数据结构是从小到大把海拔排序每个海拔对应这个海拔的块数以及比这个海拔低的块数
//最后计算的时候可以很容易的计算出快要淹没这个海拔时所需要的体积海拔差*比这个海拔低的块数
#includecstdio
#includemap
using namespace std;struct square{int this_level;int lower_level;int cubic_meters;};mapint,square*Map;int row,col;int cubic_meter;bool initial(){Map.clear();scanf(%d%d,row,col);if(!row){return false;}for(int i0;irow*col;i){int level;scanf(%d,level);if(!Map.count(level)){Map[level]new square;Map[level]-this_level1;}else{Map[level]-this_level;}}scanf(%d,cubic_meter);}void print_map(){for(mapint,square*::iterator itMap.begin();it!Map.end();it){printf(海拔%d的有 %d块\n,it-first,it-second-this_level);printf(海拔比%d低的有 %d块\n,it-first,it-second-lower_level);printf(恰好没有淹没这个海拔时的所需水的体积%d\n,it-second-cubic_meters);printf(\n);}}void compute(){if(cubic_meter0){printf(Water level is %.2lf meters.\n,(double)Map.begin()-first);printf(0.00 percent of the region is under water.\n);return;}//先将恰好没有埋没每块土地时所需的水的体积计算出来int lower0;for(mapint,square*::iterator itMap.begin();it!Map.end();it){it-second-lower_levellower;lowerlowerit-second-this_level;}int lower_level0,lower_cube0;for(mapint,square*::iterator itMap.begin();it!Map.end();it){it-second-cubic_metersit-second-lower_level*(it-first-lower_level)*100lower_cube;lower_levelit-first;lower_cubeit-second-cubic_meters;}double water_level,percent;mapint,square*::iterator itMap.begin();for(;it!Map.end();it){if(it-second-cubic_meterscubic_meter){percent(double)it-second-lower_level/(row*col);water_levelit-first-(it-second-cubic_meters-(double)cubic_meter)/(it-second-lower_level*100);printf(Water level is %.2lf meters.\n,water_level);printf(%.2lf percent of the region is under water.\n,percent*100);return;}}it--;water_level((double)cubic_meter-it-second-cubic_meters)/(row*col*100)it-first;printf(Water level is %.2lf meters.\n,water_level);printf(100.00 percent of the region is under water.\n);}int main(){
#ifdef localfreopen(input.txt,r,stdin);freopen(output.txt,w,stdout);
#endifint kase0;while(initial()){printf(Region %d\n,kase);compute();printf(\n);// print_map();//compute();}return 0;} 转载于:https://www.cnblogs.com/TorettoRui/p/10415983.html