<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kangzj &#187; poj</title>
	<atom:link href="http://kangzj.net/tag/poj/feed/" rel="self" type="application/rss+xml" />
	<link>http://kangzj.net</link>
	<description>记录技术和生活~</description>
	<lastBuildDate>Mon, 07 May 2012 01:03:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>poj_1009(TLE&amp;MLE)</title>
		<link>http://kangzj.net/poj-1009/</link>
		<comments>http://kangzj.net/poj-1009/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 04:18:03 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/58</guid>
		<description><![CDATA[/*
//ACM Poj 1009  
//File: 1009.cpp  
//Author: Kangzj  
//Mail: Kangzj@mail.bnu.edu.cn  
//Date: April 29, 2009  
*/]]></description>
			<content:encoded><![CDATA[<pre lang="cpp">
/*
//ACM Poj 1009
//File: 1009.cpp
//Author: Kangzj
//Mail: Kangzj@mail.bnu.edu.cn
//Date: April 29, 2009
*/
#include<iostream>
#include<sstream>
#include<vector>
#include
<math .h>

using namespace std;  

struct node
{
  int pix;
  int count;
};  

int main()
{
  int width,i;
  int pix;
  long len;
  ostringstream buff;  

    while(cin>>width&#038;&#038;width!=0)
  {
    //读入图像并解码
    vector<int>imgin;  

    while(cin>>pix>>len&#038;&#038;len!=0)
    {
      vector</int><int>temp(len,pix);  

      imgin.insert(imgin.end(),temp.begin(),temp.end());
    }  

    int height;
    int size=imgin.size();
    height=size/width;
    vector</int><int>imgout(size,0);
    for(i=0;i<height ;i++)
    {
      int start=i*width;
      for(int j=0;j<width;j++)
      {
        int pos=j+start;
        int max;
        if((pos-1)>=start)
        {
          max=abs(imgin[pos-1]-imgin[pos]);
        }
        if((pos+1)<start +width)
        {
          int m=abs(imgin[pos+1]-imgin[pos]);
          max=max>m?max:m;
        }
        if(pos+width<size )
        {
          int m=abs(imgin[pos+width]-imgin[pos]);
          max=max>m?max:m;
          if(pos+width+1<start +width*2)
          {
            int m=abs(imgin[pos+width+1]-imgin[pos]);
            max=max>m?max:m;
          }
          if(pos+width-1>=start+width)
          {
            int m=abs(imgin[pos+width-1]-imgin[pos]);
            max=max>m?max:m;
          }
        }  

        if(pos-width>=0)
        {
          int m=abs(imgin[pos-width]-imgin[pos]);
          max=max>m?max:m;
          if(pos-width+1< =start-1)
          {
            int m=abs(imgin[pos-width]-imgin[pos]);
            max=max>m?max:m;
          }
          if(pos-width-1>=start-width)
          {
            int m=abs(imgin[pos-width-1]-imgin[pos]);
            max=max>m?max:m;
          }
        }  

        imgout[pos]=max;  

      }
    }
    //将输出图像编码  

    buff< <width<<endl;
    vector<node>rle;
    //第一个先放进去
    node tn;
    tn.pix=imgout[0];
    tn.count=0;
    rle.push_back(tn);
    //游程编码
    for(i=0;i<height ;i++)
    {
      int start=width*i;
      for(int j=0;j<width;j++)
      {
        int pos=start+j;
        if(rle[rle.size()-1].pix==imgout[pos])
        {
          rle[rle.size()-1].count++;
        }
        else
        {
          node tn;
          tn.pix=imgout[pos];
          tn.count=1;
          rle.push_back(tn);
        }
      }
    }
    for(int i=0;i<rle.size();i++)
    {
      buff<<rle[i].pix<<" "<<rle[i].count<<endl;
    }
    buff<&lt;0<<" "<&lt;0<<endl;
  }
  cout<<buff.str()<&lt;0;
    return 0;
}
</pre>
<p>虽然AC了，但其实是不合格的，时间和空间都超了，500000000的数据量没法处理，好在测试集里没有这样的数据。。。转了一篇别人做的，质量真的不错，想到了好多我根本就没去想的问题，受教了。<br />
代码完全是按题意做的，一点也没有改进：</height></start></size></start></height></int></math>
<p></vector></sstream></iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-1009/">http://kangzj.net/poj-1009/</a> |
<a href="http://kangzj.net/poj-1009/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-1009/&title=poj_1009(TLE&amp;MLE)">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-1009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>poj_1008</title>
		<link>http://kangzj.net/poj-1008/</link>
		<comments>http://kangzj.net/poj-1008/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 04:44:39 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/77</guid>
		<description><![CDATA[//ACM Poj 1008  
//File: 1008.cpp  
//Author: Kangzj  
//Mail: Kangzj@mail.bnu.edu.cn  
//Date: April 29, 2009  ]]></description>
			<content:encoded><![CDATA[<pre lang="cpp">/*
//ACM Poj 1008
//File: 1008.cpp
//Author: Kangzj
//Mail: Kangzj@mail.bnu.edu.cn
//Date: April 29, 2009
*/
#include<iostream>
#include<sstream>

using namespace std;

struct TYD
{
	int Dnum;
	string Dname;
};

int main()
{
    string TkDays[20]={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
	string HbMons[19]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu"};
	ostringstream buff;
	TYD Tday;
	int i,j,n;
	int Hyear,Hday, Tyear;
	string Hdaystr, Hmonth;
	int days,Tdays;

	cin>>n;
	buff< <n<<endl;
	for(i=0;i<n;i++)
	{
		cin>>Hdaystr>>Hmonth>>Hyear;
		Hdaystr=Hdaystr.substr(0,Hdaystr.size()-1);
		if (Hdaystr.size()==2)
		{
			Hday=(Hdaystr[0]-'0')*10+(Hdaystr[1]-'0');
		}else
		{
			Hday=(Hdaystr[0]-'0');
		}

		if(Hmonth=="uayet")
		{
			j=18;
		}
		else
		{
			for(j=0;j&lt;18;j++)
			{
				if(Hmonth==HbMons[j])
				{
					break;
				}
			}

		}

		days=Hyear*365+j*20+Hday;

		Tyear=days/260;
		Tdays=days%260;//注意边界！

		Tday.Dname=TkDays[Tdays%20];
		Tday.Dnum=Tdays%13+1;

		buff< <Tday.Dnum<<" "<<Tday.Dname<<" "<<Tyear<<endl;

	}

	cout<<buff.str();
    return 0;
}
</pre>
<p></sstream></iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-1008/">http://kangzj.net/poj-1008/</a> |
<a href="http://kangzj.net/poj-1008/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-1008/&title=poj_1008">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-1008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>poj_1007</title>
		<link>http://kangzj.net/poj-1007/</link>
		<comments>http://kangzj.net/poj-1007/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 14:33:57 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/76</guid>
		<description><![CDATA[/*  
//ACM Poj 1007  
//File: 1007.cpp  
//Author: Kangzj  
//Mail: Kangzj@mail.bnu.edu.cn  
//Date: April 28, 2009  
*/]]></description>
			<content:encoded><![CDATA[<p> </p>
<pre lang="cpp">
/*
//ACM Poj 1007
//File: 1007.cpp
//Author: Kangzj
//Mail: Kangzj@mail.bnu.edu.cn
//Date: April 28, 2009
*/
#include<iostream>
#include<string>  

using namespace std;  

struct revNum
{
  int rvNums;
  int order;
};  

int getReverseNum(string DNA, int n)
{
  int *count=new int[n];
  int all=0,i;  

  for (i=0;i<n ;i++)
  {
    count[i]=0;
  }
  for(i=n-1;i>=0;i--)
  {
    for(int j=0;j<i ;j++)
    {
      if(DNA[i]<DNA[j])
      {
        count[j]++;
      }
    }
  }
  for(i=0;i<n;i++)
  {
    all+=count[i];
  }
  delete[] count;  

    return all;  

}  

int main()
{
    int n,m;
  cin>>n>>m;  

  string *DNA=new string[m];
  int count=0,temp,i;
  revNum *rvNum=new revNum[m];  

  for(i=0;i<m ;i++)
  {
    cin>>DNA[i];
    temp=getReverseNum(DNA[i],n);
    //插入排序
    if(count==0)
    {
      rvNum[0].rvNums=temp;
      rvNum[0].order=i;  

      count++;
    }
    else
    {
            int j,flag=0;
      for(j=0;j<count ;j++)
      {
        if(temp<=rvNum[j].rvNums)
        {
          for(int k=count;k>j;k--)
          {
            rvNum[k]=rvNum[k-1];
          }
          rvNum[j].rvNums=temp;
          rvNum[j].order=i;  

          count++;
          flag=1;
          break;
        }
      }//for(int j=0;j</count><count ;j++)
      if(flag==0)
      {
        rvNum[count].rvNums=temp;
        rvNum[count].order=i;  

        count++;
      }  

    }
    //输出结果  

  }
  for(i=0;i<m;i++)
  {
    cout<<DNA[rvNum[i].order]<<endl;
  }  

  delete []DNA;
  delete []rvNum;  

    return 0;
}
</pre>
<p></count></m></i></n></string></iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-1007/">http://kangzj.net/poj-1007/</a> |
<a href="http://kangzj.net/poj-1007/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-1007/&title=poj_1007">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-1007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>poj_1005</title>
		<link>http://kangzj.net/poj-1005/</link>
		<comments>http://kangzj.net/poj-1005/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 07:21:27 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/75</guid>
		<description><![CDATA[/*  
//ACM Poj 1005  
//File: 1005.cpp  
//Author: Kangzj  
//Mail: Kangzj@mail.bnu.edu.cn  
//Date: April 28, 2009  
*/]]></description>
			<content:encoded><![CDATA[<pre lang="cpp">
/*
//ACM Poj 1005
//File: 1005.cpp
//Author: Kangzj
//Mail: Kangzj@mail.bnu.edu.cn
//Date: April 28, 2009
*/
#include<iostream>
#include
<math .h>

#define PI 3.14159265358979  

using namespace std;  

int main()
{
  double distance;
  int n;  

  cin>>n;
  double *x=new double[n];
  double *y=new double[n];
  int *year=new int[n];
  for(int i=0;i<n ;i++)
  {
    cin>>x[i]>>y[i];
    distance=sqrt(x[i]*x[i]+y[i]*y[i]);  

    int j=1;
    double r=0;
    while(1)
    {
      r=sqrt(100/PI+r*r);
      if(distance< =r)break;
      j++;
    }
    year[i]=j;
  }
  for(int i=0;i<n;i++)
  {
    cout<<"Property "<<i+1<<": This property will begin eroding in year "<<year[i]<<"."<<endl;
  }
  cout<<"END OF OUTPUT."<<endl;  

    return 0;
}</pre>
<p></n></math>
<p></iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-1005/">http://kangzj.net/poj-1005/</a> |
<a href="http://kangzj.net/poj-1005/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-1005/&title=poj_1005">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-1005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>poj_2000</title>
		<link>http://kangzj.net/poj-2000/</link>
		<comments>http://kangzj.net/poj-2000/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 02:47:51 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/73</guid>
		<description><![CDATA[//ACM Poj 2000  
//File: 2000.cpp  
//Author: Kangzj  
//Mail: Kangzj@mail.bnu.edu.cn  
//Date: April 24, 2009  ]]></description>
			<content:encoded><![CDATA[<pre lang="cpp">
/*
//ACM Poj 2000
//File: 2000.cpp
//Author: Kangzj
//Mail: Kangzj@mail.bnu.edu.cn
//Date: April 24, 2009
*/
#include<iostream>
#include<sstream>
#include
<math .h>

using namespace std;  

int main()
{
  int day;
  int coinDay, coinAll;
  ostringstream buff;  

    while(1)
  {
        cin>>day;
        if(day==0)break;
    float temp=sqrt(1+8*day);
    int tmp=(int)temp;  

    if(temp!=(float)tmp &#038;&#038; tmp%2!=0)
    {
      tmp+=2;
    }else if(temp!=(float)tmp &#038;&#038; tmp%2==0)
    {
      tmp++;
    }else
    {
      tmp=tmp;
    }
    coinDay=(-1+tmp)/2;
    coinDay--;
    coinAll=coinDay*(coinDay+1)*(2*coinDay+1)/6;  

    coinAll+=(coinDay+1)*(day-(coinDay+1)*coinDay/2);  

    buff< <day<<" "<<coinAll<<endl;
  }  

  cout<<buff.str();
    return 0;
}
</pre>
<p>需要选择G++才能通过，如果想用C++，只要加几个强制转换就可以了。</math>
<p></sstream></iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-2000/">http://kangzj.net/poj-2000/</a> |
<a href="http://kangzj.net/poj-2000/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-2000/&title=poj_2000">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-2000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>poj_1006</title>
		<link>http://kangzj.net/poj-1006/</link>
		<comments>http://kangzj.net/poj-1006/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 15:43:05 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/71</guid>
		<description><![CDATA[Problem: http://poj.grids.cn/problem?id=1006

Solution:

 

<span class="readmore"><a href="http://kangzj.net/poj-1006/" title="poj_1006">阅读全文——共331字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Problem: http://poj.grids.cn/problem?id=1006</p>
<p>Solution:<br />
 </p>
<pre lang="cpp">
#include<iostream>
#include<string>
#include<sstream>  

using namespace std;  

int main()
{
    int p, e, i, n=0;
    long cp, ce, ci;
    short d;  

    int j=1;//计数用   

    ostringstream buf;  

    while(1)
    {
        cin>>p>>e>>i>>d;
        if(p==-1 &#038;&#038; e==-1 &#038;&#038; i==-1 &#038;&#038; d==-1)
        {
            break;
        }  

        n=d;
        while(1)
        {
            n++;
            if((n-p)%23==0 &#038;&#038; (n-e)%28==0 &#038;&#038; (n-i)%33==0)
            {
                n-=d;
                if(n==0)
                {
                    n=d;
                    continue;
                }
                break;
            }
            //cout< <"*";
        }
        buf<<"Case "<<j<<": the next triple peak occurs in "<<n<<" days."<<endl;  

        j++;
    }  

    cout<<buf.str();  

    return 0;
}
</pre>
<p></sstream></string></iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-1006/">http://kangzj.net/poj-1006/</a> |
<a href="http://kangzj.net/poj-1006/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-1006/&title=poj_1006">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-1006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>poj_1004</title>
		<link>http://kangzj.net/poj-1004/</link>
		<comments>http://kangzj.net/poj-1004/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 15:41:00 +0000</pubDate>
		<dc:creator>kangzj</dc:creator>
				<category><![CDATA[编程算法]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[poj]]></category>

		<guid isPermaLink="false">/articles/70</guid>
		<description><![CDATA[#include  



using namespace std;  

<span class="readmore"><a href="http://kangzj.net/poj-1004/" title="poj_1004">阅读全文——共165字</a></span>]]></description>
			<content:encoded><![CDATA[<pre lang="cpp">
#include<iostream>  

using namespace std;  

int main()
{
    int i;
    float all=0, temp=0;  

    for(i=0;i&lt;12;i++)
    {
        cin>>temp;
        all+=temp;
    }  

    all+=0.005;  

    cout.precision(2);  

    //cout.setf(ios_base::showpoint);
    cout< <"$"<<fixed<<all/12<<endl;  

    return 0;
}</pre>
<p>  </iostream></pre>
<p style='text-align:left'>&copy; 2009, <a href='http://kangzj.net'>kangzj</a>. 版权所有.  </p>
<hr />
<p><small>© kangzj for <a href="http://kangzj.net">Kangzj</a>, 2009. |
<a href="http://kangzj.net/poj-1004/">http://kangzj.net/poj-1004/</a> |
<a href="http://kangzj.net/poj-1004/#comments">沙发还在</a> |
Add to
<a href="http://del.icio.us/post?url=http://kangzj.net/poj-1004/&title=poj_1004">del.icio.us</a>
<br/>
Post tags: <a href="http://kangzj.net/tag/acm/" rel="tag">acm</a>, <a href="http://kangzj.net/tag/poj/" rel="tag">poj</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://kangzj.net/poj-1004/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

