做法:這個題目我首先想到的方法是,展開表示式,儲存未知數a的各個次冪的係數,展開每個表示式後再進行對比。但這樣子很難處理,於是就想到把一些較大的質數代入表示式求解,然後比較,多代入幾個質數,如果結果都相同,那麼兩個表示式就基本上等價了。至於表示式的計算,用棧的方法模擬即可。
以下是本人**:
#include #include #include #include #include #include #define mod 100000007
using namespace std;
int n,p[6]=; //要代入的大質數
int len,pos[210],pi;
long long ans[6],val[6];
char s[210],a[210];
void read() //讀入表示式,並手動把其中的空格去掉,以便後面的操作
return s%mod;
}long long number(int l,int r) //計算字串中[l,r]一段代表的數字
long long work(int l,int r) //求表示式的值
if (i>=l)
for(i=r;i>=l;i--)
if (i>=l)
for(i=r;i>=l;i--)
if (i>=l)
if (a[r]==')') return work(l+1,r-1);
if (a[r]=='a') return p[pi];
return number(l,r);
}void calc(bool mode)
} for(pi=1;pi<=5;pi++) }
int main()
return 0;
}
NOIP2005 等價表示式
等價表示式 equal.pas c cpp 問題描述 明明進了中學之後,學到了代數表示式。有一天,他碰到乙個很麻煩的選擇題。這個題目的題幹中首先給出了乙個代數表示式,然後列出了若干選項,每個選項也是乙個代數表示式,題目的要求是判斷選項中哪些代數表示式是和題幹中的表示式等價的。這個題目手算很麻煩,因為...
NOIP 2005 等價表示式
題目描述 明明進了中學之後,學到了代數表示式。有一天,他碰到乙個很麻煩的選擇題。這個題目的題幹中首先給出了乙個代數表示式,然後列出了若干選項,每個選項也是乙個代數表示式,題目的要求是判斷選項中哪些代數表示式是和題幹中的表示式等價的。這個題目手算很麻煩,因為明明對計算機程式設計很感興趣,所以他想是不是...
NOIP2005 等價表示式
明明進了中學之後,學到了代數表示式。有一天,他碰到乙個很麻煩的選擇題。這個題目的題幹中首先給出了乙個代數表示式,然後列出了若干選項,每個選項也是乙個代數表示式,題目的要求是判斷選項中哪些代數表示式是和題幹中的表示式等價的。這個題目手算很麻煩,因為明明對計算機程式設計很感興趣,所以他想是不是可以用計算...