﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客--随笔分类-TopCoder</title><link>http://www.cppblog.com/dargon/category/18488.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 14 Jan 2012 20:07:23 GMT</lastBuildDate><pubDate>Sat, 14 Jan 2012 20:07:23 GMT</pubDate><ttl>60</ttl><item><title>TopCoder SRM529 R1 Problem 250</title><link>http://www.cppblog.com/dargon/archive/2012/01/15/164199.html</link><dc:creator>玉香</dc:creator><author>玉香</author><pubDate>Sat, 14 Jan 2012 20:02:00 GMT</pubDate><guid>http://www.cppblog.com/dargon/archive/2012/01/15/164199.html</guid><wfw:comment>http://www.cppblog.com/dargon/comments/164199.html</wfw:comment><comments>http://www.cppblog.com/dargon/archive/2012/01/15/164199.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/dargon/comments/commentRss/164199.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/dargon/services/trackbacks/164199.html</trackback:ping><description><![CDATA[<div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; "><br />Problem statement<br />"Pairing pawns" is a game played on a strip of paper, divided into N cells. The cells are labeled 0 through N-1. Each cell may contain an arbitrary number of pawns.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; ">You are given a vector &lt;int&gt;&nbsp;<strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">start</strong>&nbsp;with N elements. For each i, element i of&nbsp;<strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">start</strong>&nbsp;is the initial number of pawns on cell i.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; ">The goal of the game is to bring as many pawns as possible to cell 0.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; ">The only valid move looks as follows:</p><ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; ">Find a pair of pawns that share the same cell X (other than cell 0).</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; ">Remove the pair of pawns from cell X.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; ">Add a single new pawn into the cell X-1.</li></ol><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; ">You may make as many moves as you wish, in any order.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; ">Return the maximum number of pawns that can be in cell 0 at the end of the game.</p></div><div></div><br /><div><span style="color: #545454; font-family: Tahoma; line-height: 22px; background-color: #ffffff; ">N层空间存放着马前卒，第N-1层的2个马前卒可以配对走向第N-2层，使第N-2层的马前卒数量加1，给出各层马前卒数量，求他们按照规则行进，第0层的马前卒数量</span></div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;iostream&gt;<br />#include&lt;vector&gt;<br />#include&lt;cstdio&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">class</span>&nbsp;PairingPawns<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;savedPawnCount(vector&nbsp;&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;start)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i=start.size()-1;&nbsp;i&gt;0;&nbsp;i--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start.at(i-1)+=start.at(i)/2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;start.at(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />};</div><br /><br /><br /><br /><img src ="http://www.cppblog.com/dargon/aggbug/164199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dargon/" target="_blank">玉香</a> 2012-01-15 04:02 <a href="http://www.cppblog.com/dargon/archive/2012/01/15/164199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>