题外话

说起来我作死做这题是觉得这个程序可以十块钱卖给化学组骗餐饭吃,结果发现氧化还原反应配不了,因为有什么归中不交叉率云云可以确定唯一配平系数,但是可怜的程序做不到,所以这个赚钱计划宣告破产QAQ

解析

首先我们把每一个物质的系数看做未知数,把每一种元素看做方程,那么根据等号两边的元素系数相等可以列出方程,很显然,一个化学方程式如果要能配平,n个元素就需要n+1个物质,这样才会有多组整倍数解。
然后高斯消元就可以了,最后枚举最后一个物质的系数,就可以得到所有物质的系数了。
其他的就是一些麻烦的地方,耐心点处理即可,比如提取元素,因为题目中提到的元素只会有两个字母,所以哈希很好写~括号也可以特殊处理,一口气看看括号后面的系数是多少什么的.....

代码