原题边幅很长,这里就不贴出来了,落谷有原题,不清楚的可以去看看
------------------------------------------------------------------------------------------------------------
这是一道大模拟,我的方法是建立输入、编译和判断三大系统。
这三大系统用三个函数实现,分别是
void Input() //输入系统,专门读取数据并把字符串内的有价值数据提取出来
bool complite() //编译系统,对整组数据进行语法检查,返回true代表语法正确
bool work() //判断系统,符合时间复杂度返回true,否则返回false
-------------------------------------------------------------------------------------------------------------------
主要流程:
所以主函数是这样的:
int main()
{
cin>>t;
for(int i=0; i<t ;i++){ //循环t次,每组输入一组数据
Init(); //该函数的作用为初始化所有数组与全局变量
Input(); //读入数据
/*编译成功就对数据进行判断并输出”Yes”或”No”,否则输出”ERR”*/
if(complite()){
if(work()) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
else cout<<"ERR"<<endl;
}
return 0;
}
----------------------------------------------------------------------------------------------------------------------------
那么接下来的任务就很明确了,就是一个个实现三大系统
我们读到的数据是字符串,字符串是不方便直接处理的,所以需要输入系统的数据提取功能,把字符串的有用的同类型数据转化成一个个数组存取,具体怎么提取,还要看接下来编译与判断系统需要的是字符串中的哪些信息。在本题目中,我把一行字符串看成由以下四类数据组成。
<