题意:就是让你求出时间复杂度。

分析:由于指数最多为10次方,所以可以想到用一个数组保存各个指数的系数,具体看代码实现吧!

代码实现:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; char str[][];
char key[];
int num; struct node{
int sum[];
void init()
{
memset(sum,,sizeof(sum));
}
}; void init()//把字符串提取出来
{
int i,t=,num=;
scanf("%s",key);
while(t)
{
scanf("%s",key);
strcpy(str[num++],key);
if(key[]=='E')
t--;
else if(key[]=='L')
t++;
}
} struct node xiangcheng(struct node a,struct node b)//相乘
{
int i,j;
struct node res;
res.init();
for(i=;i<=;i++)
for(j=;j<=;j++)
res.sum[i+j]=res.sum[i+j]+a.sum[i]*b.sum[j];
return res;
} struct node add(struct node a,struct node b)//相加
{
int i;
for(i=;i<=;i++)
a.sum[i]+=b.sum[i];
return a;
} struct node dfs()
{
int i=;
struct node a;
a.init();
while()//碰到END才结束
{
i=;
if(str[num][]=='L')
{
num=num+;
struct node b;
b.init();
if(str[num][]=='n')
b.sum[]++;
else
{
int k=;
i=;
while(str[num][i]!='\0')
{
k=k*+str[num][i]-'';
i++;
}
b.sum[]=b.sum[]+k;
}
num=num+;
b=xiangcheng(b,dfs());
a=add(a,b);
} else if(str[num][]=='O')
{
num=num+;
if(str[num][]=='n')
a.sum[]++;
else
{
int k=;
i=;
while(str[num][i]!='\0')
{
k=k*+str[num][i]-'';
i++;
}
a.sum[]=a.sum[]+k;
}
} else if(str[num][]=='E')
return a;
num++;
}
} int main()
{
int T;
int i,j,flag;
struct node a;
scanf("%d",&T);
getchar();
for(j=;j<=T;j++)
{
num=;
init();
a=dfs();
printf("Program #%d\nRuntime = ",j);
i=;flag=;
while(a.sum[i]==) i--;
for(;i>;i--)
{
if(a.sum[i]==)
continue;
if(flag==)
{
if(a.sum[i]>)
printf("%d*",a.sum[i]);
printf("n^%d",i);
flag++;
}
else
{
printf("+");
if(a.sum[i]>)
printf("%d*",a.sum[i]);
printf("n^%d",i);
}
}
if(a.sum[])
{
if(flag)
printf("+");
if(a.sum[]>)
printf("%d*",a.sum[]);
printf("n");
flag++;
}
if(a.sum[])
{
if(flag)
printf("+");
printf("%d",a.sum[]);
flag++;
}
if(flag==)
printf("");
printf("\n\n");
}
return ;
}

poj 1472(递归模拟)的更多相关文章

  1. POJ 1472:Instant Complexity 模拟时间复杂度

    Instant Complexity Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1908   Accepted: 658 ...

  2. POJ 1472 Instant Complexity 应该叫它编程题。。

    题目:http://poj.org/problem?id=1472 这个题目是分到“模拟题”一类的,我觉得模拟的成分比较少,主要考察编程能力.独立写完这个题特别兴奋...所以我必须好好说一说,独家哦. ...

  3. poj 3077Rounders(模拟)

    转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063? viewmode=contents 题目链接:http://po ...

  4. POJ 1068 Parencodings 模拟 难度:0

    http://poj.org/problem?id=1068 #include<cstdio> #include <cstring> using namespace std; ...

  5. POJ 1036 Rails 模拟堆栈

    水题,主要是思路清晰,判断明确. 记x为A站最前方的车,y表示下一列要进入B站的车厢,初识时,x=1;y=a1;C=[]; 在调度过程中: if(y==0)那么调度成功,退出模拟过程:否则 if(x= ...

  6. POJ 1001 Exponentiation 模拟小数幂

    模拟小数幂 小数点位 pos 非零末位 e 长度 len 只有三种情况 pos > len pos < e e < pos < len #include <iostrea ...

  7. POJ 1008 简单模拟题

    e.... 虽然这是一道灰常简单的模拟题.但是米做的时候没有读懂第二个日历的计时方法.然后捏.敲完之后华丽的WA了进一个点.坑点就在一年的最后一天你是该输出本年的.e ...但是我好想并没有..看di ...

  8. Crashing Robots POJ 2632 简单模拟

    Description In a modernized warehouse, robots are used to fetch the goods. Careful planning is neede ...

  9. P3719 [AHOI2017初中组]rexp——递归模拟

    P3719 [AHOI2017初中组]rexp 没有什么算法的题做起来真不适应,这道题深深讽刺了我想用栈维护匹配括号个数的想法: 递归解决就行了: 时刻注意函数返回值是什么,边界条件是什么: #inc ...

随机推荐

  1. 教你使用UIWindow实现窗口的切换

    这两天写了一个手势解锁,该死的需求要求这个手势解锁页面各种出现,毕竟人家这个客户端酒20多个领导用用的,怕泄密就加了各种保密措施.先来看下需求:1.用户注册登录后跳转设置手势页面(必须设置).2.ap ...

  2. Centos环境下部署游戏服务器-简介

    一.前言      在接触这个操作系统之前我一直使用的是ubuntu和mac os,这次由于游戏是测试版本,没有专业的运维人员去做这件事情,只能我这个稍微懂一点linux的人来做这件事情了.由于涉及到 ...

  3. css:map热点的应用

    映射图像(Image Map)可以实现的效果是:一张图片上点不同位置可以跳转到不同的地方, 实例: 1.插入一张图片 2.在底部“属性”栏中选择合适的热点工具,在图片上绘制热点区域,如 3.然后返回代 ...

  4. Sublime Text 2安装汉化破解、插件包安装教程

    原文地址: Sublime Text 2安装汉化破解.插件包安装教程_百度经验 http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.ht ...

  5. 中国区常用ubuntu源

    1.首先备份Ubuntu 源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表) 2.修改更新源sudo g ...

  6. C# winform窗体假死

    C#  winform窗体假死 我们经常会遇到当执行一个比较大的函数时,窗体会出现假死的现象,给用户的体验不是很好,于是我们遇到了问题,那么就必须解决,我们该如何解决呢,首先在自己的脑里画个问号,接下 ...

  7. c# 获取数组中最大数的值

    求数组中最大的数的值:1.数组的max函数: class Program { static void Main(string[] args) { ,,,,,,,,,}; int max= GetMax ...

  8. Android提供了5种方式存储数据:

    --使用SharedPreferences存储数据: --文件存储数据: --SQLite数据库存储数据: --使用ContentProvider存储数据: --网络存储数据: 一:使用SharedP ...

  9. 函数lock_rec_create

    /*********************************************************************//** Creates a new record lock ...

  10. jsp之EL表达式

    1.null值 null值会用""进行显示 2.隐式对象 1).pageScope.requestScope(相当于request).sessionScope(相当于session ...