当前位置: 首页 > wzjs >正文

单页面网站设计网站欣赏私人浏览器

单页面网站设计网站欣赏,私人浏览器,wordpress页面链接404,快代理ip某次无聊中, atm 发现了一个很老的程序。 这个程序的功能类似于 Excel ,它对一个表格进行操作。 不妨设表格有 nn 行,每行有 mm 个格子。 每个格子的内容可以是一个正整数,也可以是一个公式。 公式包括三种: SUM(…

某次无聊中, atm 发现了一个很老的程序。

这个程序的功能类似于 Excel ,它对一个表格进行操作。

不妨设表格有 nn 行,每行有 mm 个格子。

每个格子的内容可以是一个正整数,也可以是一个公式。

公式包括三种:

  1. SUM(x1,y1:x2,y2) 表示求左上角是第 x1x1 行第 y1y1 个格子,右下角是第 x2x2 行第 y2y2 个格子这个矩形内所有格子的值的和。
  2. AVG(x1,y1:x2,y2) 表示求左上角是第 x1x1 行第 y1y1 个格子,右下角是第 x2x2 行第 y2y2 个格子这个矩形内所有格子的值的平均数。
  3. STD(x1,y1:x2,y2) 表示求左上角是第 x1x1 行第 y1y1 个格子,右下角是第 x2x2 行第 y2y2 个格子这个矩形内所有格子的值的标准差。

标准差即为方差的平方根。

方差就是:每个数据与平均值的差的平方的平均值,用来衡量单个数据离开平均数的程度。

公式都不会出现嵌套。

如果这个格子内是一个数,则这个格子的值等于这个数,否则这个格子的值等于格子公式求值结果。

输入这个表格后,程序会输出每个格子的值。

atm 觉得这个程序很好玩,他也想实现一下这个程序。

输入格式

第一行两个数 n,mn,m。

接下来 nn 行输入一个表格。每行 mm 个由空格隔开的字符串,分别表示对应格子的内容。

输入保证不会出现循环依赖的情况,即不会出现两个格子 aa 和 bb 使得 aa 的值依赖 bb 的值且 bb 的值依赖 aa 的值。

输出格式

输出一个表格,共 nn 行,每行 mm 个保留两位小数的实数。

数据保证不会有格子的值超过 106106。

数据范围

1≤n,m≤501≤n,m≤50

输入样例:
3 2
1 SUM(2,1:3,1)
2 AVG(1,1:1,2)
SUM(1,1:2,1) STD(1,1:2,2)
输出样例:
1.00 5.00
2.00 3.00
3.00 1.48
题解:

        递归+模拟


        使用两个数组,一个double一个string来记录原始数据,如果是操作符就进入string ,如果是数字则进入num,并且string位置记录”0”。


        遍历数组,如果遇到操作符就进行操作,读取四个值和操作类型后遍历,如果遇到操作符就递归操作。


        注意操作完后string要更新成0。

代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<unordered_set>
#include<unordered_map>
#include<map>
#include<set>
using namespace std;
typedef long long int ll;
const int INF=1e16;int n,m;
double num[55][55];
string st[55][55];void process(int i,int j){string s=st[i][j];if(st[i][j]=="0"){return;}else{int x1=0,x2=0,t1=0,t2=0;int t=4;while(s[t]!=','){x1*=10;x1+=(int)(s[t]-48);t++;}t++;while(s[t]!=':'){t1*=10;t1+=(int)(s[t]-48);t++;}t++;while(s[t]!=','){x2*=10;x2+=(int)(s[t]-48);t++;}t++;while(s[t]!=')'){t2*=10;t2+=(int)(s[t]-48);t++;}//cout << x1 << " " << t1 << " " << x2 << " " << t2 << "\n";if(s[0]=='S' && s[1]=='U' && s[2]=='M'){double sum=0;for(int k=x1;k<=x2;k++){for(int t=t1;t<=t2;t++){if(st[k][t]=="0"){sum+=num[k][t];}else{process(k,t);sum+=num[k][t];}}}num[i][j]=sum;st[i][j]="0";}else if(s[0]=='S' && s[1]=='T' && s[2]=='D'){double sum=0;for(int k=x1;k<=x2;k++){for(int t=t1;t<=t2;t++){if(st[k][t]=="0"){sum+=num[k][t];}else{process(k,t);sum+=num[k][t];}}}double avg=sum/((x2-x1+1)*(t2-t1+1));double f=0;for(int k=x1;k<=x2;k++){for(int t=t1;t<=t2;t++){f+=(num[k][t]-avg)*(num[k][t]-avg);}}f=f/((x2-x1+1)*(t2-t1+1));if(f<0.00001){f=0;}//cout << sum << " " << avg << " " << f << "\n";num[i][j]=sqrt(f);st[i][j]="0";}else if(s[0]=='A' && s[1]=='V' && s[2]=='G'){double sum=0;for(int k=x1;k<=x2;k++){for(int t=t1;t<=t2;t++){if(st[k][t]=="0"){sum+=num[k][t];}else{process(k,t);sum+=num[k][t];}}}num[i][j]=sum/((x2-x1+1)*(t2-t1+1));st[i][j]="0";}}
}void solve(){cin >> n >> m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){string s;cin >> s;if(s[0]>='0' && s[0]<='9'){st[i][j]="0";int number=stoi(s);num[i][j]=number*1.0;}else{st[i][j]=s;}}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){process(i,j);}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){//cout << num[i][j] << " ";printf("%.2lf ",num[i][j]);}cout << "\n";}}int main(){solve();
}

http://www.dtcms.com/wzjs/301451.html

相关文章:

  • 网站建设智能小程序橘子seo历史查询
  • 学做网站需要多久时间湖南百度推广代理商
  • 合肥长丰路网站建设网站建设总结
  • 莘县网站定制宁波seo软件
  • 电商平台网站制作费用2022年新闻热点事件
  • 动漫设计制作专业学什么seo基础入门
  • 东莞商城网站建设新闻稿发布软文平台
  • 桂林网站优化选择桂林速优网络公司营销方式和渠道有哪些
  • 湘潭网站优化网络营销有哪些推广方法
  • 百丽优购物官方网站百度推广如何代理加盟
  • 那个网站是做批发的个人网站制作多少钱
  • 免费企业建站系统排名2022双11各大电商平台销售数据
  • 孝感市城乡建设委员会网站百度指数如何分析
  • 深圳好的网站建设公司哪家好搜索引擎的工作原理有哪些
  • 网站建设水平如何评价合肥seo推广外包
  • 网站优化有哪些类型公众号seo排名优化
  • 企业网站建设公司中文网站排行榜
  • 平湖市规划建设局网站seo北京优化
  • 温州专业建站百度搜索引擎网址格式
  • 黄埔做网站的公网络推广服务外包
  • 中国建设新闻网站网站备案查询工信部官网
  • 爱心捐赠网站怎么做微信营销软件手机版
  • 手机社交网站建设万网域名注册教程
  • 快乐十分网站开发网站站内推广怎么做
  • 重庆时时彩做号网站域名被墙查询
  • 手机网站免费建站百度sem认证
  • 网络维护协议范本徐州seo招聘
  • 苏州电子商务网站开发公司快速网站排名提升工具
  • 注册网站需要怎么办理58同城网站推广
  • 能自己做效果图的网站武汉刚刚突然宣布