Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 3282 | Accepted: 1188 |
Description
Input
Output
Sample Input
2 3 101 102 103 3 201 202 203 ENQUEUE 101 ENQUEUE 201 ENQUEUE 102 ENQUEUE 202 ENQUEUE 103 ENQUEUE 203 DEQUEUE DEQUEUE DEQUEUE DEQUEUE DEQUEUE DEQUEUE STOP 2 5 259001 259002 259003 259004 259005 6 260001 260002 260003 260004 260005 260006 ENQUEUE 259001 ENQUEUE 260001 ENQUEUE 259002 ENQUEUE 259003 ENQUEUE 259004 ENQUEUE 259005 DEQUEUE DEQUEUE ENQUEUE 260002 ENQUEUE 260003 DEQUEUE DEQUEUE DEQUEUE DEQUEUE STOP 0
Sample Output
Scenario #1 101 102 103 201 202 203 Scenario #2 259001 259002 259003 259004 259005 260001
Source
ACcode:
<pre class="sh_cpp sh_sourceCode" style="font-family:Courier New,Courier,monospace"><span class="sh_preproc">#include</span> <span class="sh_string"><iostream></span> <span class="sh_preproc">#include</span> <span class="sh_string"><cstdio></span> <span class="sh_preproc">#include</span> <span class="sh_string"><cstring></span> <span class="sh_keyword">using</span> <span class="sh_keyword">namespace</span> std<span class="sh_symbol">;</span> <span class="sh_keyword">struct</span><span class="sh_normal"> </span><span class="sh_classname">node</span><span class="sh_cbracket">{</span> <span class="sh_type">int</span> p<span class="sh_symbol">;</span> <span class="sh_type">int</span> next<span class="sh_symbol">;</span> <span class="sh_cbracket">}</span>my<span class="sh_symbol">[</span><span class="sh_number">200020</span><span class="sh_symbol">];</span> <span class="sh_type">int</span> belong<span class="sh_symbol">[</span><span class="sh_number">1000000</span><span class="sh_symbol">];</span><span class="sh_comment">///哈希法表示元素属于哪个队列</span> <span class="sh_type">int</span> pos<span class="sh_symbol">[</span><span class="sh_number">1010</span><span class="sh_symbol">];</span><span class="sh_comment">///团队最后一个元素在队列中的位置</span> <span class="sh_type">int</span> st<span class="sh_symbol">,</span>ed<span class="sh_symbol">,</span>used<span class="sh_symbol">;</span> <span class="sh_type">int</span> <span class="sh_function">main</span><span class="sh_symbol">()</span><span class="sh_cbracket">{</span> <span class="sh_type">int</span> loop<span class="sh_symbol">=</span><span class="sh_number">0</span><span class="sh_symbol">,</span>n<span class="sh_symbol">;</span> <span class="sh_keyword">while</span><span class="sh_symbol">(</span><span class="sh_function">scanf</span><span class="sh_symbol">(</span><span class="sh_string">"%d"</span><span class="sh_symbol">,&</span>n<span class="sh_symbol">)!=</span>EOF<span class="sh_symbol">&&</span>n<span class="sh_symbol">)</span><span class="sh_cbracket">{</span> st<span class="sh_symbol">=</span>ed<span class="sh_symbol">=-</span><span class="sh_number">1</span><span class="sh_symbol">;</span> used<span class="sh_symbol">=</span><span class="sh_number">0</span><span class="sh_symbol">;</span> <span class="sh_type">int</span> num<span class="sh_symbol">,</span>temp<span class="sh_symbol">;</span> <span class="sh_keyword">for</span><span class="sh_symbol">(</span><span class="sh_type">int</span> i<span class="sh_symbol">=</span><span class="sh_number">0</span><span class="sh_symbol">;</span>i<span class="sh_symbol"><</span>n<span class="sh_symbol">;++</span>i<span class="sh_symbol">)</span><span class="sh_cbracket">{</span> <span class="sh_function">scanf</span><span class="sh_symbol">(</span><span class="sh_string">"%d"</span><span class="sh_symbol">,&</span>num<span class="sh_symbol">);</span> <span class="sh_keyword">for</span><span class="sh_symbol">(</span><span class="sh_type">int</span> j<span class="sh_symbol">=</span><span class="sh_number">0</span><span class="sh_symbol">;</span>j<span class="sh_symbol"><</span>num<span class="sh_symbol">;++</span>j<span class="sh_symbol">)</span><span class="sh_cbracket">{</span> cin<span class="sh_symbol">>></span>temp<span class="sh_symbol">;</span> belong<span class="sh_symbol">[</span>temp<span class="sh_symbol">]=</span>i<span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> pos<span class="sh_symbol">[</span>i<span class="sh_symbol">]=-</span><span class="sh_number">1</span><span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>loop<span class="sh_symbol">)</span><span class="sh_function">putchar</span><span class="sh_symbol">(</span><span class="sh_string">'</span><span class="sh_specialchar">\n</span><span class="sh_string">'</span><span class="sh_symbol">);</span> <span class="sh_function">printf</span><span class="sh_symbol">(</span><span class="sh_string">"Scenario #%d</span><span class="sh_specialchar">\n</span><span class="sh_string">"</span><span class="sh_symbol">,++</span>loop<span class="sh_symbol">);</span> string s<span class="sh_symbol">;</span> <span class="sh_keyword">while</span><span class="sh_symbol">(</span>cin<span class="sh_symbol">>></span>s<span class="sh_symbol">&&</span>s<span class="sh_symbol">!=</span><span class="sh_string">"STOP"</span><span class="sh_symbol">)</span><span class="sh_cbracket">{</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>s<span class="sh_symbol">==</span><span class="sh_string">"ENQUEUE"</span><span class="sh_symbol">)</span><span class="sh_cbracket">{</span> <span class="sh_function">scanf</span><span class="sh_symbol">(</span><span class="sh_string">"%d"</span><span class="sh_symbol">,&</span>temp<span class="sh_symbol">);</span> my<span class="sh_symbol">[</span>used<span class="sh_symbol">].</span>p<span class="sh_symbol">=</span>temp<span class="sh_symbol">;</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>temp<span class="sh_symbol">]]==-</span><span class="sh_number">1</span><span class="sh_symbol">)</span><span class="sh_cbracket">{</span> my<span class="sh_symbol">[</span>used<span class="sh_symbol">].</span>next<span class="sh_symbol">=-</span><span class="sh_number">1</span><span class="sh_symbol">;</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>st<span class="sh_symbol">==-</span><span class="sh_number">1</span><span class="sh_symbol">&&</span>ed<span class="sh_symbol">==-</span><span class="sh_number">1</span><span class="sh_symbol">)</span><span class="sh_cbracket">{</span> st<span class="sh_symbol">=</span>ed<span class="sh_symbol">=</span><span class="sh_number">0</span><span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>ed<span class="sh_symbol">>=</span><span class="sh_number">0</span><span class="sh_symbol">)</span><span class="sh_cbracket">{</span> my<span class="sh_symbol">[</span>ed<span class="sh_symbol">].</span>next<span class="sh_symbol">=</span>used<span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> ed<span class="sh_symbol">=</span>used<span class="sh_symbol">;</span> <span class="sh_cbracket">}</span><span class="sh_keyword">else</span> <span class="sh_cbracket">{</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>temp<span class="sh_symbol">]]==</span>ed<span class="sh_symbol">)</span>ed<span class="sh_symbol">=</span>used<span class="sh_symbol">;</span> my<span class="sh_symbol">[</span>used<span class="sh_symbol">].</span>next<span class="sh_symbol">=</span>my<span class="sh_symbol">[</span>pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>temp<span class="sh_symbol">]]].</span>next<span class="sh_symbol">;</span> my<span class="sh_symbol">[</span>pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>temp<span class="sh_symbol">]]].</span>next<span class="sh_symbol">=</span>used<span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>temp<span class="sh_symbol">]]=</span>used<span class="sh_symbol">++;</span> <span class="sh_cbracket">}</span><span class="sh_keyword">else</span> <span class="sh_cbracket">{</span> <span class="sh_function">printf</span><span class="sh_symbol">(</span><span class="sh_string">"%d</span><span class="sh_specialchar">\n</span><span class="sh_string">"</span><span class="sh_symbol">,</span>my<span class="sh_symbol">[</span>st<span class="sh_symbol">].</span>p<span class="sh_symbol">);</span> <span class="sh_keyword">if</span><span class="sh_symbol">(</span>pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>my<span class="sh_symbol">[</span>st<span class="sh_symbol">].</span>p<span class="sh_symbol">]]==</span>st<span class="sh_symbol">)</span> pos<span class="sh_symbol">[</span>belong<span class="sh_symbol">[</span>my<span class="sh_symbol">[</span>st<span class="sh_symbol">].</span>p<span class="sh_symbol">]]=-</span><span class="sh_number">1</span><span class="sh_symbol">;</span> st<span class="sh_symbol">=</span>my<span class="sh_symbol">[</span>st<span class="sh_symbol">].</span>next<span class="sh_symbol">;</span> <span class="sh_cbracket">}</span> <span class="sh_cbracket">}</span> <span class="sh_cbracket">}</span> retrun 0; <span class="sh_cbracket">}</span>
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/zp___waj/article/details/47753575