现在的位置: 首页 > 综合 > 正文

POJ1028解题报告

2018年02月19日 ⁄ 综合 ⁄ 共 1916字 ⁄ 字号 评论关闭

 终于都可以为ACM生涯写下第一篇文章。这周末学到的东西实在太多了,特别前两天与前辈谢师兄的聊天让我更加懂得如何学习和做题的步骤和心得,可谓同君一席话,胜读十年书。。。记得刚开始做1088滑雪的动态规划题时候连续想两天都没做出来 而又不甘心看别人的代码。让我一星期停止了POJ的脚步,现在才知道是自己太急着做算法题目,很多基本功都还没有练扎实,前辈说他是做了100道题目才开始接触DP。真是一棒敲响了我,新手上路,确实不要急着做难题,先做多点水题,等我们把基本功都练扎实了,才能游刃有余的去对付算法题。还有一点就是关于看书与做题的顿悟,什么才能让自己深刻理解和运用书的知识,那就是做题和实践,曾经自己一味的抱着严蔚敏的数据结构看,看到了树,有什么用?就算知道了有线性表,有栈等等,关键是里面的算法你TMD根本不知道如何去实现他,不知道什么时候要用到它。原来一到做题,用原来的方法行不通才想到书本提过的栈,原来自己看过数据结构也不知道如何写个栈(惭愧)。可见实践的重要性(解题才能让我们对书本的知识产生兴趣,所以以后不必一味想尽快把书看完,要到一个内容就百度一下需要用这个算法解答的题目,去掌握这个算法)。下面就是POJ1028的解题报告和心得:

原题中文翻译:题目解析:很简单的模拟,基本读懂题然后懂一点栈就能做。先翻译下题意。给你一些命令来处理网页,有visit,back,forward,exit(这个54)4种命令。Visit命令就是把当前页压到backward栈中,当前页为visit的网站,并清空forward栈。Back命令是把当前页压到forward栈里,当前页变成backward栈的最上边的网页,并将这个页弹出栈。Forward和back相反,是把当前页压到backward栈里,然后当前页变成forward栈的最上边的网页,并将这个页弹出栈。输出的是执行每条命令的后当前的网页,如果backward或forward栈为空,则输出‘Ingored’。

刚开始没想到用栈,只是觉得我可以创造一个字符数组或指针可以实现按下标来储存自己输入的多个字符串就OK了,例如定义char str[100]或者char *str[100] 然后for(i=0;i<100;i++),cin>>str[i];但发现这样行不通的,所以才想起来线性表和栈这些东西,然后百度一下栈的实现,最后摸索发现结构体可以完成这样的功能,然后就运用结构体解决了,不知道算不算栈。。。AC代码:

#include<iostream>
#include<string>
using namespace std;
struct string2{
 char str[150];};
int main()
{int i=0,j=0;
char str2[10];
 struct string2 backwardstack[150];
 struct string2 forwardstack[150];
  while(str2[0]!='Q')
 {cin>>str2;
  if(str2[0]=='V')
  {i++;
   cin>>backwardstack[i].str;
   j=0;
    cout<<backwardstack[i].str<<endl;}
  if(str2[0]=='B')
  {   if(i==0)
    cout<<"Ignored"<<endl;
   if(i==1)
  {i--;
   j++;
   strcpy(forwardstack[j].str,backwardstack[i+1].str);
   cout<<"
http://www.acm.org/"<<endl;}
    else if(i>=2)
   {i--;
   cout<<backwardstack[i].str<<endl;
   j++;
   strcpy(forwardstack[j].str,backwardstack[i+1].str);}}
  if(str2[0]=='F')
  {if(j>0)
  {cout<<forwardstack[j].str<<endl;
  i++;
  strcpy(backwardstack[i].str,forwardstack[j].str);
  j--;}
  else
  {cout<<"Ignored"<<endl;}}}
return 0;}

  解题心得:1.发现水题对基本功的锻炼是功不可没的。

2.以后看算法书或数据结构不能只看书不做题,一看到一个算法就应该找类似的题做加强对这个算法的理解。

3.加强英文阅读能力,以后一定要完全理解题意才开始动手(刚开始没理解题意,要我调试浪费了很多时间)

切记~切记~

 

抱歉!评论已关闭.