#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int stack[1000];
int zero = 0;
int top = 0;
struct _node
{
struct _node * next;
int n; //n次
__int64 m; //常数
};
typedef struct _node node;
node * head = NULL;
node * temp = NULL;
node * cur = NULL;
int loop = 0;
int end_loop = 0;
int main(void)
{
int test,test_count = 0;
char str[10];
char cmd[10];
int value = 0;
int flag = 0;
node *q, *p;
scanf("%d",&test);
head = (node *)malloc(sizeof(node));
for(test_count = 1; test_count <= test; ++test_count)
{
scanf("%s",cmd);
++loop;
flag = 0;
head->next = NULL;
cur = (node *)malloc(sizeof(node));
cur->m = 1;
cur->n = 0;
cur->next = NULL;
top = 0;
zero = 0;
while( 1 )
{
scanf("%s",cmd);
if( strcmp(cmd,"OP") == 0 )
{
scanf("%d",&value);
if( value == 0 ) continue;
flag = 1;
temp = (node *)malloc(sizeof(node));
temp->n = cur->n;
temp->m = cur->m * value;
temp->next = NULL;
if( head->next == NULL )
{
head->next = temp;
}
else
{
p = head->next;
q = head;
while( p != NULL && p->n > temp->n )
{
q = p;
p = p->next;
}
if( p != NULL && p->n == temp->n ) //找到了与之相同次数的
{
p->m = p->m + temp->m;
free(temp);
}
else if( p == NULL ) //temp比p 大 加在最后
{
q->next = temp;
}
else //加在当前位置
{
q->next = temp;
temp->next = p;
}
}
}
else if( strcmp(cmd,"LOOP") == 0 )
{
scanf("%s",str);
if( str[0] == 'n' )
{
stack[top++] = -1;
cur->n = cur->n + 1;
++loop;
}
else
{
value = atoi(str);
if( value == 0 )
{
//遇到0的处理方法
++zero;
while( zero )
{
scanf("%s",cmd);
if( strcmp(cmd,"LOOP") == 0 )
{
++zero;
scanf("%s",str);
}
else if( strcmp(cmd,"END") == 0 )
{
--zero;
}
else
{
scanf("%s",str);
}
}
}
else
{
stack[top++] = value;
cur->m = cur->m * value;
++loop;
}
}
}
else if( strcmp(cmd,"END") == 0 )
{
++end_loop;
if( loop == end_loop ) break;
if( stack[--top] == -1 )
{
cur->n = cur->n - 1;
}
else
{
cur->m = cur->m / stack[top];
}
}
} //END WHILE
printf("Program #%d\n",test_count);
printf("Runtime = ");
if( flag == 0 )
{
printf("0\n");
}
else
{
p = head->next;
while( p )
{
if( p->n > 1 )
{
if( p->m <= 1 )
printf("n^%d",p->n);
else
{
printf("%I64d*n^%d",p->m,p->n);
}
}
else if( p->n == 1 )
{
if( p->m <= 1 )
printf("n",p->n);
else
{
printf("%I64d*n",p->m);
}
}
else
{
printf("%I64d",p->m);
}
if( p->next != NULL ) printf("+");
q = p;
p = p->next;
free(q);
}
printf("\n");
}
printf("\n");
free(cur);
} // END FOR
free(head);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
poj 130题 acm pku
需积分: 0 54 下载量 167 浏览量
2008-09-20
19:03:15
上传
评论
收藏 66KB TGZ 举报
温馨提示
共168个文件
cc:102个
cpp:62个
c:4个
acm pku poj 1000 1001 1002 1003 1201
资源详情
资源评论
资源推荐
收起资源包目录
poj 130题 acm pku (168个子文件)
4022776_AC_0MS_208K.c 3KB
3534252_CE.c 1KB
3870196_AC_7079MS_988K.c 1KB
4019718_AC_157MS_224K.c 784B
4084825_AC_94MS_576K.cc 6KB
3959293_AC_0MS_316K.cc 5KB
4096247_AC_4360MS_9260K.cc 5KB
4056490_AC_704MS_4156K.cc 4KB
3961834_AC_0MS_428K.cc 4KB
3475683_WA.cc 3KB
3827340_WA.cc 3KB
3827349_AC_32MS_372K.cc 3KB
3537026_CE.cc 3KB
3883626_AC_0MS_404K.cc 3KB
3473834_WA.cc 3KB
3473846_WA.cc 3KB
3473882_WA.cc 3KB
3746846_AC_141MS_356K.cc 3KB
3901979_AC_0MS_332K.cc 3KB
3473871_WA.cc 3KB
3793677_AC_0MS_488K.cc 3KB
4096106_AC_4313MS_9260K.cc 3KB
3793414_AC_0MS_488K.cc 2KB
3879319_WA.cc 2KB
3749446_AC_125MS_1052K.cc 2KB
3472713_AC_32MS_336K.cc 2KB
3794783_AC_875MS_8028K.cc 2KB
3879291_WA.cc 2KB
3472647_WA.cc 2KB
3899486_AC_2172MS_3540K.cc 2KB
3775832_AC_625MS_4216K.cc 2KB
3790396_AC_16MS_456K.cc 2KB
3879305_WA.cc 2KB
3904560_AC_63MS_360K.cc 2KB
3881439_AC_407MS_2272K.cc 2KB
3790576_AC_79MS_472K.cc 2KB
3973051_AC_63MS_332K.cc 2KB
3831901_AC_32MS_536K.cc 2KB
3834535_AC_0MS_316K.cc 2KB
4034490_AC_797MS_2672K.cc 2KB
3793214_AC_485MS_16024K.cc 2KB
3961035_AC_110MS_4244K.cc 2KB
3978142_AC_235MS_2680K.cc 2KB
3879330_AC_16MS_820K.cc 2KB
3781039_AC_16MS_328K.cc 2KB
3864607_AC_329MS_592K.cc 2KB
3864571_WA.cc 2KB
3977496_AC_125MS_564K.cc 2KB
4072482_AC_110MS_872K.cc 2KB
4037975_AC_0MS_500K.cc 2KB
3876354_AC_0MS_1008K.cc 2KB
3793918_AC_235MS_724K.cc 2KB
3985222_AC_16MS_572K.cc 2KB
3983431_AC_0MS_808K.cc 2KB
4036334_AC_329MS_436K.cc 2KB
3534258_CE.cc 1KB
3828001_AC_0MS_1096K.cc 1KB
3974407_AC_47MS_560K.cc 1KB
4096314_AC_32MS_552K.cc 1KB
3980824_AC_438MS_780K.cc 1KB
3976938_AC_219MS_632K.cc 1KB
3975751_AC_16MS_320K.cc 1KB
3868651_AC_1157MS_612K.cc 1KB
3897661_AC_0MS_320K.cc 1KB
4072035_AC_313MS_316K.cc 1KB
3896572_AC_0MS_316K.cc 1KB
3767684_CE.cc 1KB
3975810_AC_32MS_2300K.cc 1KB
3767689_AC_344MS_4024K.cc 1KB
3975803_CE.cc 1KB
3798270_AC_63MS_788K.cc 1KB
3955529_AC_532MS_39484K.cc 1KB
3781355_AC_0MS_440K.cc 1KB
4002932_AC_47MS_480K.cc 1KB
3950568_AC_0MS_316K.cc 1KB
3798183_AC_250MS_312K.cc 1KB
4086903_AC_47MS_4264K.cc 1KB
3781722_AC_0MS_420K.cc 1KB
3902293_AC_32MS_1084K.cc 1KB
3866073_AC_0MS_336K.cc 1KB
3868316_AC_0MS_356K.cc 1009B
3962134_AC_485MS_444K.cc 971B
4098559_AC_0MS_404K.cc 965B
3976590_AC_16MS_448K.cc 929B
4004537_AC_0MS_312K.cc 925B
3868867_AC_47MS_612K.cc 910B
3964957_AC_32MS_372K.cc 875B
3962780_AC_0MS_448K.cc 848B
3945898_AC_172MS_456K.cc 819B
3781579_AC_0MS_416K.cc 814B
4057447_AC_1735MS_14560K.cc 809B
3781550_AC_32MS_424K.cc 755B
3962990_AC_0MS_312K.cc 746B
4098852_AC_0MS_652K.cc 724B
4003051_AC_0MS_312K.cc 661B
3985397_AC_125MS_5204K.cc 660B
3980585_AC_16MS_2640K.cc 648B
3903650_AC_0MS_312K.cc 615B
3980788_AC_2532MS_31940K.cc 523B
3966298_AC_16MS_508K.cc 484B
共 168 条
- 1
- 2
lihao102
- 粉丝: 4
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0