zoukankan      html  css  js  c++  java
  • ZOJ Problem Set

    

    唉!先直接上源码吧!什么时候有时间的再来加说明。

    #include<iostream>
    #include<vector>
    #include<stack>
    #include<deque>
    #include<algorithm>
    #include<iterator>
    using namespace std;
    
    /*
    *i代表PUSH。o代表POP
    */
    bool judge(deque<char> sou,deque<char> des,vector<char> & res)
    {
    	stack<char> inistack;
    	for(vector<char>::iterator iter = res.begin();iter!=res.end();iter++)
    	{
    	 if('i' == *iter)
    	 {
    		 inistack.push(sou.front());
    		 sou.pop_front();
    	 }
    	 else
    	 {
    		 if(des.front() != inistack.top())
    			 return false;
    		 des.pop_front();
    		 inistack.pop();
    	 }
    	}
    	return true;
    }
    
    void fun(deque<char>& sou,deque<char>& des,vector<char> & res)
    {
    	if(res.size() >= 2*sou.size())
    	{
    		if(judge(sou,des,res))//输出结果
    		{
    			copy(res.begin(),res.end(),ostream_iterator<char>(cout," "));
    			cout<<endl;
    		}
    	  return;
    	}
    
    	for (int i = 0; i <= 6; i+=6)
    	{
    		if(6==i&&(count(res.begin(),res.end(),'o')>=count(res.begin(),res.end(),'i')))
    			continue;
    		if(0==i&&((count(res.begin(),res.end(),'i')-count(res.begin(),res.end(),'o'))>=(2*sou.size()-res.size()) ))
    			continue;
    		res.push_back('i'+i);
    		fun(sou,des,res);
    		res.pop_back();
    	}
    }
    
    int main()
    {
    	deque<char> source,desti;
    	vector<char>  res;
    	copy(istream_iterator<char>(cin),istream_iterator<char>(),inserter(source,source.end()));
    	cin.clear();
    	copy(istream_iterator<char>(cin),istream_iterator<char>(),inserter(desti,desti.end()));
    	fun(source,desti,res);
    	return 0;
    }




  • 相关阅读:
    在Vue脚手架里面使用font-awsome
    在webstorm上使用git
    smartGit继续使用的方法
    工作笔记
    “老司机”传授给“小白”的职业经验
    兼容性问题(目前遇到的)
    web前端页面项目经验总结
    jquery中隐藏div的几种方法
    懒加载和预加载
    JS 中的事件绑定、事件监听、事件委托
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7390497.html
Copyright © 2011-2022 走看看