博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ 3654 Letty's Math Class 模拟 难度:0
阅读量:4589 次
发布时间:2019-06-09

本文共 1494 字,大约阅读时间需要 4 分钟。

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4844

题意:给你一个只包含中括号和正整数,+,-,结果在longlong范围内的公式和两个备选答案,

如果答案中有9,第一个是9选A,否则选B

否则,如果第一个是正确答案,输出B,否则输出A

#include 
#include
#include
#include
#define clr(x,y) memset(x, y, sizeof x)#include
using namespace std;const int maxn=2e3+3;typedef long long ll;char maz[maxn];long long read(int& head){ //printf("read start from %d ",head); long long ans=0; while(isalnum(maz[head])){ ans*=10; ans+=maz[head]-'0'; head++; } // printf("end at %d ans = %lld\n",head,ans); return ans;}typedef pair
p;p calc(int st){ long long ans=0; int cnt=1,ind =st; for(;maz[ind]!=0&&maz[ind]!=']';){ if(maz[ind]=='-'){ cnt=-1; ind ++; //printf("calc ind %d cnt -1\n",ind); } else if(maz[ind]=='+'){ ind++; } else if(isalnum(maz[ind])){ ans+=cnt*read(ind); cnt=1; //printf("calc ind %d cnt 1 ans%lld \n",ind,ans); } else if(maz[ind]=='['){ ind++; p tmp=calc(ind); ans+=cnt*tmp.first; ind=tmp.second+1; cnt=1; } } //printf("calc start at %d end at %d ans = %lld\n",st,ind,ans); return p(ans,ind);}int main(){ //freopen("input.txt","r",stdin); while(scanf("%s",maz)==1){ long long a,b; scanf("%lld%lld",&a,&b); if(a==9){ puts("A"); continue; } else if(b==9){ puts("B"); continue; } long long ans=calc(0).first; if(ans==a){ puts("B"); } else puts("A"); } return 0;}

 

转载于:https://www.cnblogs.com/xuesu/p/4509029.html

你可能感兴趣的文章
linux性能分析工具Sysstat
查看>>
linux改变内核参数
查看>>
Linux系统平台调优
查看>>
linux内存子系统调优
查看>>
Linux内核的arch目录
查看>>
配置Linux内核
查看>>
Linux常用配置选项
查看>>
liunx加载JX2410标准配置文件
查看>>
Linux内核移植主要过程
查看>>
常用Linux文件系统
查看>>
Linux内核移植的若干问题
查看>>
linux程序对比
查看>>
linux数码管驱动程序和应用程序
查看>>
linux在菜单中添加SEG选项
查看>>
linux物理地址和虚拟地址
查看>>
linux驱动程序与菜单关联
查看>>
linux在配置菜单中添加选项
查看>>
linux修改文件系统注册设备
查看>>
linux添加地址映射
查看>>
c#程序集
查看>>