NOIP 2005 等价表达式 题解
题意
给一个表达式然后再给n个表达式,判断是否等价
一道大模拟题,将a带为数,并且取模防止溢出
#include<bits/stdc++.h>
using namespace std;
const int mod=10007;
char w[55],c[55];
int a[100],t1,t2,x,n;
long long ans[5],c1[55],c2[55],c3[55];
int power(int x,int y){
	int tmp=1;
	while(y){
		if(y&1) tmp=(tmp*x)%mod;
		x=(x*x)%mod;
		y>>=1;
	}
	return tmp%mod;
}
void clu(){
	int m1=c1[t2],n1=c1[t2-1],m2=c2[t2],n2=c2[t2-1],m3=c3[t2],n3=c3[--t2];
	switch(w[t1--]){
        case '+':c1[t2]=(n1+m1+mod)%mod; c2[t2]=(n2+m2+mod)%mod; c3[t2]=(n3+m3+mod)%mod; break;
        case '-':c1[t2]=(n1-m1+mod)%mod; c2[t2]=(n2-m2+mod)%mod; c3[t2]=(n3-m3+mod)%mod; break;
        case '*':c1[t2]=(n1*m1+mod)%mod; c2[t2]=(n2*m2+mod)%mod; c3[t2]=(n3*m3+mod)%mod; break;
        case '^':c1[t2]=power(n1,m1); c2[t2]=power(n2,m2); c3[t2]=power(n3,m3); break;
    }
}
void js(){
    x=0;
    for(int i=0;i<strlen(c);i++){
        if(c[i]=='a') {c1[++t2]=3;c2[t2]=7;c3[t2]=13;}
        else if(isdigit(c[i])) x=x*10+c[i]-'0';
        else{
            if(x!=0){c1[++t2]=x;c2[t2]=x;c3[t2]=x;x=0;}
            if(a[c[i]]==0)continue;
            if(c[i]=='('||t1==0&&c[i]!=')') w[++t1]=c[i];
            else{
                if(a[c[i]]<a[w[t1]]){
                	if(c[i]!=')') w[++t1]=c[i];
					else{
                        while(w[t1]!='('&&t1) clu();
                        if(w[t1]=='(')t1--;
                    }
                }
                else{
                    while(a[c[i]]>=a[w[t1]]&&t1) clu();
                    if(c[i]!=')') w[++t1]=c[i];
                }
            }
        }
    }
    if(x!=0){c1[++t2]=x;c2[t2]=x;c3[t2]=x;x=0;}
    while (t1)clu();
}
int main(){
	a['(']=5;a[')']=1;a['^']=2;a['*']=a['/']=3;a['+']=a['-']=4;
	gets(c);
	scanf("%d",&n);
	js();
	gets(c);
	ans[1]=c1[1];ans[2]=c2[1];ans[3]=c3[1];
	for(int i=1;i<=n;++i){
        t1=t2=0;gets(c);js();
        if(ans[1]==c1[1]%mod&&ans[2]==c2[1]%mod&&ans[3]==c3[1]%mod)
        printf("%c",i+64);
	}
	return 0;
}
NOIP 2005 等价表达式 题解的更多相关文章
- NOIP 2005 等价表达式 (TYVJ P1060)
		做题记录: 2016-08-10 23:35:09 背景 NOIP2005 提高组 第四道 描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代 ... 
- noip 2005 等价表达式
		/* 开始想的是 维护a的每个指数的系数 然而不好办 然而还有^10^10^10这种数据 特殊值带入吧 多搞几个素数 接下来就是玄学的事了 给a赋值之后 就是简单地表达式求值 虽然思路简单 但是字符串 ... 
- 等价表达式  2005年NOIP全国联赛提高组(栈模拟)
		P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的 ... 
- 数据结构--栈 codevs 1107 等价表达式
		codevs 1107 等价表达式 2005年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Descripti ... 
- 洛谷P1054 等价表达式
		P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的 ... 
- 等价表达式(noip2005)
		3.等价表达式 [问题描述] 兵兵班的同学都喜欢数学这一科目,中秋聚会这天,数学课代表给大家出了个有关代数表达式的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也 ... 
- NOIP 2014 提高组 题解
		NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ... 
- NOIP 2001 提高组 题解
		NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ... 
- 洛谷 P1054 等价表达式 解题报告
		P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的 ... 
随机推荐
- Cassandra之Docker环境实践
			Cassandra简介 Cassandra是一个开源分布式NoSQL数据库系统. 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon D ... 
- kali Metasploit 连接 Postgresql 默认密码
			使用 metasploit 时, 1. 启动 postgresql service postgresql start 2. 自行测试 postgresql 是否安装成功 根据需要,自行 修改 post ... 
- centos虚拟机配置静态ip
			昨天在配置虚拟机的时候因为之前没有设置静态IP,而是使用DHCP动态分配的,导致关机后下次开机虚拟机的ip是随机变动的.严重影响了工作体验啊,遂设置静态ip以保全! 虚拟机使用的是CentOS6.5, ... 
- CSS3 Flex 布局教程
			网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ... 
- 最新 Flutter 团队工程师中文演讲 | Flutter 的性能测试和理论
			本视频为 Google Flutter 团队的软件工程师 Xiao Yu 在 2018 谷歌开发者大会做的演讲,演讲题目是<Flutter 的性能测试和理论>. 这个视频里将会通过近半个小 ... 
- XML简单了解一下
			XML是一种纯文本文档.HTML,标记是已经被W3C规定好的,自己创建一个标签是不被允许的. XML现在的用途是用来存储数据.config文件就是个XML文档.XML是可以自定义的. 每一个XML文档 ... 
- 【模板】珂朵莉树(ODT)(Codeforces 896C Willem, Chtholly and Seniorious)
			题意简述 维护一个数列,支持区间加,区间赋值,区间求第k小,区间求幂和 数据随机 题解思路 ODT是一种基于std::set的暴力数据结构. 每个节点对应一段区间,该区间内的数都相等. 核心操作spl ... 
- Kafka 系列(五)—— 深入理解 Kafka 副本机制
			一.Kafka集群 Kafka 使用 Zookeeper 来维护集群成员 (brokers) 的信息.每个 broker 都有一个唯一标识 broker.id,用于标识自己在集群中的身份,可以在配置文 ... 
- net core Webapi 总目录
			目录 博客目录 代码地址 博客目录 net core Webapi基础工程搭建(一)--开发工具及环境 net core Webapi基础工程搭建(二)--创建工程 net core Webapi基础 ... 
- 《白帽子讲web安全》——吴瀚清   阅读笔记
			浏览器安全 同源策略:浏览器的同源策略限制了不同来源的“document”或脚本,对当前的“document”读取或设置某些属性.是浏览器安全的基础,即限制不同域的网址脚本交互 <scr ... 
