??xml version="1.0" encoding="utf-8" standalone="yes"?>蜜臀av性久久久久蜜臀aⅴ,一本色道久久88加勒比—综合,久久精品亚洲精品国产色婷http://www.shnenglu.com/liuhao/let's startzh-cnWed, 07 May 2025 15:49:59 GMTWed, 07 May 2025 15:49:59 GMT60Q{Qfrkstyc的poj分类http://www.shnenglu.com/liuhao/archive/2010/03/22/110322.htmlACTimeACTimeMon, 22 Mar 2010 14:37:00 GMThttp://www.shnenglu.com/liuhao/archive/2010/03/22/110322.htmlhttp://www.shnenglu.com/liuhao/comments/110322.htmlhttp://www.shnenglu.com/liuhao/archive/2010/03/22/110322.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/110322.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/110322.html

ACTime 2010-03-22 22:37 发表评论
]]>
癑ֺW经&面经(zz,详细Q赞Q?http://www.shnenglu.com/liuhao/archive/2010/02/21/108154.htmlACTimeACTimeSun, 21 Feb 2010 08:37:00 GMThttp://www.shnenglu.com/liuhao/archive/2010/02/21/108154.htmlhttp://www.shnenglu.com/liuhao/comments/108154.htmlhttp://www.shnenglu.com/liuhao/archive/2010/02/21/108154.html#Feedback2http://www.shnenglu.com/liuhao/comments/commentRss/108154.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/108154.html2007q?0?0?星期?16:34发信? ptlj (PT), 信区: Job_Discuss
 ?? 癑ֺW经&面经 发信? 武汉白云黄鹤?(2007q?0?8?2:50:13 星期一)
 看了一下精华区Q好像关于百度的W经和面l很,所以上来发一下,U攒RP~~PS:我投的是商务搜烦部的引擎研发工程师?

【笔试】百度的在华U的W试??1h上宣讲会后马上D行。宣讲会那叫一个h׃hP 很多不是毕业班的Z来凑热闹感受一下百度招聘。笔试题目有选择题,~程题,pȝ?计题三种cd。选择题难度不是很大,但我太水了,很多基础知识都不记得了,正则表达 式,shell~程~~~汗死,不说了,好多都是蒙的?~程题有3题,W一题是扑և字符?的最长不重复子串Q输出长度。我想了半天Q只会O(n^2)的算法,是个人都可以惛_来的 W办法,想着写下来也没啥意义Q题目问有没OQnQ的Q那看来肯定有OQnQ的Q就不写 了,看后面的题算了。第二题是找Z个字W串的最长回文子丌Ӏ这个问题好像以前考研 复习数据l构时看q,惌v来判断一个回文串可以用栈来实玎ͼE微回忆一下,法思\ 出来了。于是提W写下了个O(n^3)的算法。汗MQ自己太W了Q只能想U垃圄 法,看来癑ֺ不好混啊。第三题是在2.5亿个整数中找Z重复的整敎ͼ内存I间不以容 U2.5亿个整数。这U题是百度的特色Qv量数据处理,我也没啥思\。既然不能一ơ扔 q内存,我就分批扔进去,量减少从外存读q内存的ơ数Q然后算了一下,?Ҏ(gu)q内 存。然后每Ҏ(gu)序,扑և每批里面不重复的敎ͼ把这些不重复的再在另一Ҏ(gu)中过一遍,L重复的,然后汇怅R写不出具体代码Q只把思\写了一下。当时心情沮丧极了,想着Q挂了,代码不会写,隑־写出一题又是效率极低的。最后那道系l?设计题,我压Ҏ(gu)啥好思\Q题目大概是量数据分布?00台电(sh)脑中Q想个办法高效统?Ҏ(gu)据的TOP10。草草写了几W,旉到了,交卷~~~看来,q次除非有奇q,?然笔试肯定被BS了?

考完回到寝室Q和兄弟们讨Z下题目,W一题原来可以用Hash实现Q时间复杂度?到O(n)。自׃l想了一下,整个法的思\清CQ郁闷啊Q这么简单的题居然没?出来Q看来自p是太菜了。ZZ对第二题q有个新颖的法Q学习了一下,赞啊Q亏他想 得出来,呵呵。第二天q有Microsoft的笔试,赶紧拿Primer来抱׃(jng)脚,q么好的一本书 Q我学C++时怎么没看啊Q后(zhn),懊恼充斥着我的大脑Q大有相见恨晚的感觉?虽然自己W试很烂Q但是还是寄希望于奇q出玎ͼ能有Z去面试。于是晚上睡觉开着手机Q因为谈会时百度说如果W试通过Q当晚凌晨就会出面试通知了。晚上辗转反?Q难以入睡,期待手机铃声响vQ都不知道几Ҏ(gu)睡着。早上v床一照镜子,大熊猫再现拉Q唉Qؓ癑ֺ消得我憔(zhn)啊。自q想也没用Q眼前还有MS{着我呢。考MSӞ手机都没养Iq着癑ֺ?sh)话Q希望考试时能有电(sh)话来。果Ӟ早上11点多q在考试Ӟ手机响vQ挂掉,我还在ؓ了MSW试而挠头呢。几分钟后,又响了一ơ,再次挂掉。考完试,?考场拿手Z看,咦,?27的哦Q好像是个小灵通。回拨,不通,l箋回拨Q还是不通, 不死心,我就不信拨不通你。结果拨?0多次q是不通,了Q只好等他再打来。回实验 室,上Q问问q个L是不是百度的QJG他们说是的,惊喜QOhQyeahQ百度面试来临了Q?Miracle居然发生了。于是和JGQDJQQDRd毅面癑ֺ。结果面官说我不接电(sh)话,他们安排了其它同学面试,叫我W二天早?0点再来面。FTQ怎么q么曲折啊,不过l我Ҏ(gu) 间复习准备,也好?


【一面?晚上好好看了一下项目,把重Ҏ(gu)习了一下。又问了下JG面试问了啥,心里有个底了 。第二天Q一个h飞的M弘毅Q花?2大洋Q好心疼啊。去到昨天那个房_看见面官 了,一个光_和JG昨天的面官一栗果Ӟ他上来就问了我昨天问JG的同样问题,设计 一U数据结构,l合了链表和数组的优炏V我想了一下,说用Hash链表Q这h入和查找 的效率都比较高,但是有conflict问题要解冟뀂他马上问我如何解决conflict问题Q有没什么好Ҏ(gu)。我说修改hash函数Q得hashg生的conflict概率可能低。他问那你怎么设计Q我倒,q个问题我可没想q啊。当场郁闷了Q立马陷入苦思状态。想出几个点 子,都不是否可以降低conflict的概率,都和面官说了。他很快׃D例否定我好不Ҏ(gu) 惛_的点子,说你的办法还是不行哦Q有没更好的Q打L了,我已l尽力了啊,没想到这么快p他找到反例,郁闷L了。不q面官h很好Q看我实在想不出更好的了Q就不ؓ难我了,换下一个题目。后面一题是量日志数据Q提取出某日讉K癑ֺơ数最多的那个IP。想了一下,说了个思\。面官就问你q样需要的存储I间太大Q有没优化方法。看 来思\是正的了,但是优化问题嘛,好棘手啊。我又说了个优化的方法,面官不太满意Q摇头。完了,实在想不出来了。。。。面官见我苦思冥惻I也不为难我了。接着问了下目l验Q我balabala一通,他对我的目不太感冒Q没问什么问题?然后问W试卷子了,他问我第一题干嘛空白?我说了原因,他问我现在有好的x 没?我就把自p完后想的OQnQ的法说了一下,他比较满意,没问我什么就问第二题 了。我又说了下我当时的法思想Q他问有没更好的优化法Q我说可以做到OQn^2Q, 把思\说了下。似乎不是他的满意答案,也没问我啥。接着问第三题Q我把我的想法说?。他_你最后还需要折半查找这么麻烦吗Q对2个有序的数组Q查找A数组的元素是否在 B数组中出现有没更好的法Q我想了一下,H然灉|一动,惌v归ƈ排序的算法。就_ 是不是像归ƈ数组那样Q直接在B中定位出A的位|,q样可以在O(m+n)内实现。他比较满意Q说Q“是啊,都有序了Q你q折半这么麻烦啊Q”暴汗,看来面官水^比我高太多了Q思维跟不上。然后看面官ȝ露出点笑容,忍不住问句:“你觉得我这个算法可以接受不Q”他的回{让我很吃惊Q他_“当然可以接受拉Q我觉得挺好的啊Q不q你的算法要访外存,可能旉效率不是很高。不q先要完成题目的dQ再考虑优化。”我赶紧补一句:“是啊,先要让它workQ再考虑如何让它work better。”面官还来句Q“不q这个题最好的法可以一ơ把2.5亿数据扔q内存,q需要你设计一个好的数据结构。”我问:“这个,怎么设计哦?”面官表CZ能告诉我{案Q让我自己回L?q时Q面官看看表Q我也看看表Q已l面?0分钟了。他_“现在我们再?道数学推理题。第一题,2个盒子,定w_大,现在?0个红球,50个蓝 球,你如何安放这 些球q盒子,使得我随机抽取一个盒子,然后从里面随机抽一个球Q这个球是红球的概率 最大?l你2分钟旉考虑Q直观分析给出结果。”当场我晕倒了Q从到大,我都不会 做IQ题的啊,q可是我的最弱项。没办法Q不能直接说我不会啊。只好硬着头皮上,分析 一下,我说Q“列条概率的表达式,求最|可以求出l果。”他_“你q样?个小?都算不出l果。从直观上分析就可以知道l果了。你再想想”,被打M。只好l想Q?我想Q那?0个红球放C个盒子,另一个盒子全放蓝球,q样一个有100Q,另一个是0 Q,q_下来?0Q。也不理惛_Q这个时候,灉|再次H现Q?0个红球全放一个盒子不 是浪费嘛Q放1个也?00Q,2个也?00%Q那放一个好了,其它全部扔到另一个盒子和 蓝球一赗再想一下,q样概率?5Q,应该很高了。也没仔l想是不是正答案,p 口而出Q说了这U放法。面官再ơ露出笑容,说“正!”我那时心里好激动啊Q没惛_ q气q么好,居然q答对了。接着又来下一题,A击命中?0%,B60%,C40%QA,B,C互ؓ竞争Ҏ(gu)Q每人都知道另外2人的命中率,3个h同场 竞技互相击Q同时开了第一枪,问第一枪射后,谁最有可能挂掉?我分析了一下,说了{案Q他问我思\Q我说了我的思\后,他居然来句:“你的思维和别Z 一栗”FTQ我和别Z一P估计说错了,自己实回答IQ题比别hW一截,没办法。面官说Q“好了,旉差不多了。你有什么问题问我不Q”我问:“如 果我有幸通过一面,什么时候会二面Q”“通过的话Q明早就二面。”然后,和面官握了下手,pL束了我的一面?面完一面后Q去找LP吃饭Q下午陪她上自习Q感觉自׃面还行吧Q大部分题都{出了思\Q虽然进一步的优化没有惛__而且q气也好得不得了Q连最?题居然还被我蒙对1题,如果q不?面,只能说明自己ȝ度的要求q是差距太大了。结果好q再ơ降_晚上6点多接到?sh)话Q通知W二天早?0点去二面Q呵呵,竟然q了二面Q真?too lucky?


【二面?W二天准时去到面试房_换了位面官面我。一上来问我一道v量数据处理题。题目是Q很多记录数据,有IDPq有几个不同的属性域Q现在要Ҏ(gu)ID号高速查询到对应 IDL数据Q设计个法。然后,现在要根据特定的属性域排序查询Q既要高效找到排?在第N-M名的记录Q还要经常插入,删除记录。我_查询ID可以用Hash表查询,把ID号hashQ然后可以在O(1)查到对应的记录。第二个问题Q有点复杂,cM于结合数l和链表的优点设计数据结构。我说了好几U方案,问他q样行不行。他_“你自己觉得行不行啊 Q现在是我面你,不是你面我啊Q你自己考虑{案啊。”晕倒,我实在想不出更好的,?不知道应该如何抉择,备选方案都各有优缺点啊。最后,q是选了其中一U,回答了这?问题。面官说Q“其实这个问题很难有最x案,q你怎么选择Q权衡,选一U较好的 Ҏ(gu)。”唉Q也不知道我的答案可不可以接受,完全没了一面时的灵感了。然后面官看?下我历,惊讶地说道:“你是武汉理工毕业的Q”我也很惊讶Q“你听说q这个学校? ”因为我感觉Q武汉理工又不是很有名,在北方,q华中科技名气都不是很响,没想到面 官竟然知道武汉理工。结果面官说Q“我是武汉理工毕业的啊。”一听,心中H喜Q居然还有校友,赶紧套一下亲q。问他哪一U的Q什么时候毕业啊Q加入百度多久了之类的问题。然后自己又说了一下个人对武汉理工的感觉,其是当q放弃保研名额,选择去考研。他听着也觉得有Ҏ(gu)思,我就l箋_“觉得学习氛围很重要Qn边的同学对自q影响很大。本U时Q很多同学沉Z|游Q都堕落了,自己x个h讨论问题都没有。现在去了华中科技Qn边的同学都很优秀Q经常和同学讨论问题Q一赯步,感觉很好。”他听了后点点头Q说Q“你q个军_挺正的?.....blabala一通,他也不感冒。他又问我:“干嘛想加入癑ֺ公司Q”我_“自己对互联|技术很感兴,从本UvҎ(gu)据结构和法有厚的兴?加上自己来x研发Q百度公司的技术很吊,里面的h很强Q加入百度可以得到很好的ȝQ学到很多东ѝ百度公司现在发展很快,对自q职场生很有帮助。”然后,他问我:“你Ҏ(gu)索引擎了解不Q”我_“之前不了解Q听了谈会后了解了一些。”他又问Q“你对自然语a分析处理了解不?”“不懂”说完, 我汗MQ完全不懂,有点不祥的预感了。谁知道Q更郁闷的事q在后头。他接着来一句:“你做的目都是|络安全斚w的,和我们的zM对口啊?”最让我担心 的事l于发生了,我故作镇定说Q“恩Q既有网l安全,也有|络应用和管理方面的。”然后面官就_“好了,我的问题差不多了Q你有什么问题要问吗Q”我看了下表Q倒,才面?0分钟没问题了,看来我方向不对口Q他Ҏ(gu)已经没兴了Q不行,q样草草了结Q二面肯定挂掉了Q得扯点他感兴趣的问题才行。马上把自己本科的那个毕业设计网l五子棋里面涉及的算法问题拿出来问问他,看看他有什么优化的Ҏ(gu)。他想了一会,_“这个问题有点复杂哦。”我H喜Q哈哈,该不会把你难倒了吧?接着他来句:“你当时是怎么做的Q”我心想Q你q真行,把问题又丢回来给我了。我p了我当时的做法,也得C他的认可和赞许。恩Q第一步目标达成?然后又问他我投的那个职位对哪斚w的要求比较高Q他_“良好的法和数据结构的?最重要。”我又问Q“那数据库,脚本语言Q网l编E方面呢Q”这些都是我的弱哦 。他_“这些都有很多现成的成果可以直接利用了,法和数据结构可能比较难提高Q?所以需要有个良好的基础才行。”听完,心里有点高兴Q自q强项是法和数据结?斚wQ既然弱不是很重要Q那看来Ҏ(gu)的媄响不大。这又让我想h开复的一句话Q?你进MSӞ懂CQ很好,不懂也不要紧Q来了可以学。但是如果你不懂得如何学习,那就p?p了。”看来,基础和学习能力是很多大公司所看重得。然后又和面官聊一下武汉理工的 变化Q和在华中科技ȝ的一些生zR最后,面官说了句:“其实,你的技术还是不错的 。”听了这句后Q很高兴Q但是自己对搜烦引擎的不了解和专业的不对口又让自׃生一丝隐忧。最后问了下“还会有3面不Q”“Maybe。”和面官say goodbyeQ然后结束了二面?


【后记?二面后就是O长的{待Q其实也q?天而已Q但是自己已l觉得很漫长了)。期间没有Q何消息,BBS说二面过了就发offerQ二面不q就M面。对q个说法Q我持保留意见,w边很多大牛都去3面了Q?面是非技术面Q都问你期望的月薪的Q自p得应该是q了2面的才有3面机会吧。自׃直没{来3面的?sh)话通知Q已l觉得自己挂了。期间找 LP诉苦Q她安慰我说Q“说不定像BBS说的那样Q二面过了就不用三面了吧。你q着急也没用啊,好好复习{消息吧。”虽然是安慰我的话,但是在等待的日子里有个h可以诉苦感觉q是挺好的。联pM一下内推的那个人,他说他也不知道结果,问我是谁面我的。我说一面是光头Q把二面面官的名字报了一下。他_“光头是他们部门l理。”我很惊?Q啊Q部门经理?看不出来啊,既然部门l理都让我过1面了Q应该机会还挺大的啊Q自我感觉一面比二面好多了。每天逛BBSQ不仅看白云Q还看珞珈山_交大思源Q还有天大求 实。等待真是种煎熬啊,虽然各方面的信息都是朝着不利的一面发展,但是自己q是不死心,一天没发offerQ就q有ZQ既然没发据信,那就q有希望。等啊等Q终于在国庆?一天发offer了,居然自己也有Q?回顾q次癑ֺ之旅Q感觉运气太好了。一面是部门l理Q其实过了他q关基本问题׃大了。恰好自己那天状态超好,灉|不时出现Q水^发挥Qȝq了W一兟뀂第二关在Ş势很不利的情况下Q连说几个“不懂”)Q自q自己扑֊分项目,朝着职位的要求往上靠。既然算法和数据l构要求高,我就要表现出自己q个斚w有优势,扯毕业设 计的法设计和面官聊Q表C己对q方面有兴趣Q基不差。还有突Z下自己其它方 面的优点Q例如上q,好学Q对技术有偏执Q百度系l部老大的经典说法){。觉得面试时q有一点做得不错的是Q当面对一个自己没什么思\的问题时Q只要你有什么新x Q不要管q个x是否可行Q是否可以真的解决问题,先把它说l面官听Q让他觉得你?思考问题的能力q是很强的。一定不要想了半天,l果说“不知道”这样面官对你的印象 ׃很差。虽然你的idea可能不是很work,但是只要是朝着正确的方向前q就O(jin)K拉,面试官会l你一定的指引的。你l箋朝着那个方向惻I说不定很快就可以解决问题了?以前都是看别人的面经Q获益良多,q次自己写写W经Q面l,希望对大家有帮助?最后,希望大家都能扑ֈ自己满意的工作,其实付出和收L是成正比的。可以从事自?喜欢的工作,真是很高兴。目标和准备方向的正可能是我这ơ应聘成功的最主要因素之一吧。我投简历只投研发的岗位Q对不搞技术的公司压根没投Q不公司有多大有多好, 像P&GQMARSQ国企,公务员等。一来不惛_用别人的ZQ二来也知道自己更适合在技?斚w发展Q去非技术类公司自己的发展可能不如技术类公司。呵呵,写得我好累啊Q就写到q吧Q希望能对大家有用?

ACTime 2010-02-21 16:37 发表评论
]]>
卡特兰数QCatalan敎ͼhttp://www.shnenglu.com/liuhao/archive/2010/02/06/107367.htmlACTimeACTimeSat, 06 Feb 2010 02:43:00 GMThttp://www.shnenglu.com/liuhao/archive/2010/02/06/107367.htmlhttp://www.shnenglu.com/liuhao/comments/107367.htmlhttp://www.shnenglu.com/liuhao/archive/2010/02/06/107367.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/107367.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/107367.html

      原理

  令h(1)Q?,h(0)=1Qcatalan数满递归式:
  h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2)
  另类递归式:
  h(n)=((4*n-2)/(n+1))*h(n-1);
  该递推关系的解为:
  h(n)=C(2n,n)/(n+1) (n=1,2,3,...)

  卡特兰数的应?br>  Q实质上都是递归{式的应用)
  

括号化问?/h3>
  矩阵链乘Q?P=a1×a2×a3×……×anQ依据乘法结合律Q不改变光序,只用括号表示成对的乘U,试问有几U括号化的方案?(h(n)U?
  

出栈ơ序问题


  一个栈(无穷?的进栈序列ؓ1Q?Q?Q?#8230;QnQ有多少个不同的出栈序列?
  分析Q对于每一个数来说Q必进栈一ơ、出栈一ơ。我们把q栈设ؓ状?#8216;1’Q出栈设为状?#8216;0’。n个数的所有状态对应n?和n?l成?n位二q制数。由于等待入栈的操作数按?‥n的顺序排列、入栈的操作数b大于{于出栈的操作数a(a≤b)Q因此输出序列的L?由左而右扫描由n?和n?l成?n位二q制敎ͼ1的篏计数不小?的篏计数的方案种数?br>  ?n位二q制C填入n?的方案数为c(2n,n),不填1的其余n位自动填0。从中减MW合要求Q由左而右扫描Q?的篏计数大于1的篏计数Q的Ҏ(gu)数即为所求?br>  不符合要求的数的特征是由左而右扫描Ӟ必然在某一奇数?m+1位上首先出现m+1?的篏计数和m?的篏计数Q此后的2(n-m)-1位上有n-m?1和n-m-1?。如若把后面q?(n-m)-1位上??互换Q之成为n-m?和n-m-1?Q结果得1个由n+1?和n-1?l成?n位数Q即一个不合要求的数对应于一个由n+1?和n-1?l成的排列?br>  反过来,M一个由n+1?和n-1?l成?n位二q制敎ͼ׃0的个数多2个,2n为偶敎ͼ故必在某一个奇C上出?的篏计数过1的篏计数。同样在后面部分0?互换Q之成为由n?和n?l成?n位数Q即n+1?和n-1?l成?n位数必对应一个不W合要求的数?br>  因而不合要求的2n位数与nQ??QnQ??l成的排列一一对应?br>  昄Q不W合要求的方案数为c(2n,n+1)。由此得?输出序列的L?c(2n,n)-c(2n,n+1)=1/(n+1)*c(2n,n)?br>  Q这个公式的下标是从h(0)=1开始的Q?br>  cMQ有2n个h排成一行进入剧场。入5元。其中只有n个h有一?元钞,另外n人只?0元钞,剧院无其它钞,问有多少中方法得只要有10元的Z,售票处就?元的钞票NQ?持5元者到达视作将5元入栈,?0元者到达视作栈中?元出?
  

凸多边Ş的三角剖分问?/h3>
  
  求将一?a target="_blank" style="color: rgb(51, 102, 204); text-decoration: underline; ">凸多边Ş区域分成三角形区域的Ҏ(gu)数?br>  cMQ一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她?n个街区去上班。如果她从不I越Q但可以到Q从家到办公室的对角U,那么有多条可能的道路?
  cMQ在圆上选择2n个点,这些点成对q接h使得所得到的n条线D不怺的方法数? 
  

用给定节点组成二叉树的问?/h3>
  
  l定N个节点,能构成多种不同?a target="_blank" style="color: rgb(51, 102, 204); text-decoration: underline; ">二叉?/a>Q?br>  Q能构成hQNQ个Q?/span>



ACTime 2010-02-06 10:43 发表评论
]]>
【做题计划?-5http://www.shnenglu.com/liuhao/archive/2010/02/05/107209.htmlACTimeACTimeThu, 04 Feb 2010 16:48:00 GMThttp://www.shnenglu.com/liuhao/archive/2010/02/05/107209.htmlhttp://www.shnenglu.com/liuhao/comments/107209.htmlhttp://www.shnenglu.com/liuhao/archive/2010/02/05/107209.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/107209.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/107209.html1094ACM的组?/div>
1095探险家Javaman
1096老鹰捉小?/div>
1098机器人工?/div>
1099Plant
1010Snooper
1011PrisonBreak
1012SuperRock教授的教?/div>

ACTime 2010-02-05 00:48 发表评论
]]>POJ 1797 Heavy TransportationQ最大树最边变ŞQ?/title><link>http://www.shnenglu.com/liuhao/archive/2010/01/01/104604.html</link><dc:creator>ACTime</dc:creator><author>ACTime</author><pubDate>Fri, 01 Jan 2010 06:24:00 GMT</pubDate><guid>http://www.shnenglu.com/liuhao/archive/2010/01/01/104604.html</guid><wfw:comment>http://www.shnenglu.com/liuhao/comments/104604.html</wfw:comment><comments>http://www.shnenglu.com/liuhao/archive/2010/01/01/104604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/liuhao/comments/commentRss/104604.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/liuhao/services/trackbacks/104604.html</trackback:ping><description><![CDATA[题目链接Qhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1797<div>题目描述Q求从指定v点到指定l点每条可能路径上各D边的最?/div><div>注意事项Q有向图Q无向图</div><div>提交情况Q?ơRuntime ErrorQ是最开始尝试用Kruskal旉接排序的数组r大小只开了MAXN个;3ơWA的主要原因是无向图按照有向图做的。用L表存储图时一定要注意有向囑֒无向囄问题Q已l出错好几次了?/div><div>心得体会Q本道题实际是按照Prim求最大生成树的思\Q逐条d边;在添加的q程中,注意?点出发,在遇到nӞ即最大生成树仍没有构造完Q也可以从函Cq回了。最开始以为是单的生成树问题,所有用Kruskal来作Q遇到v点和l点都访问过退出,但此Ӟ构造的生成树可能根本就没有q接Q而Prim在构造的初始是从一|开始拓展的Q不会出现这个问题。需要对每个具体的算法有更深入的理解?div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); 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>--><span style="color: #008080; "> 1</span> <span style="color: #000000; ">#include</span><span style="color: #000000; "><</span><span style="color: #000000; ">queue</span><span style="color: #000000; ">></span><span style="color: #000000; "><br></span><span style="color: #008080; "> 2</span> <span style="color: #000000; ">#include</span><span style="color: #000000; "><</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br></span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">#include</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br></span><span style="color: #008080; "> 4</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; "> std;<br></span><span style="color: #008080; "> 5</span> <span style="color: #000000; "><br></span><span style="color: #008080; "> 6</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> MAXN 1010 </span><span style="color: #000000; "><br></span><span style="color: #008080; "> 7</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> MAXM 1000010 </span><span style="color: #000000; "><br></span><span style="color: #008080; "> 8</span> <span style="color: #000000; "><br></span><span style="color: #008080; "> 9</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> Edge<br></span><span style="color: #008080; ">10</span> <span style="color: #000000; ">{<br></span><span style="color: #008080; ">11</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> start;<br></span><span style="color: #008080; ">12</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> end;<br></span><span style="color: #008080; ">13</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> weight;<br></span><span style="color: #008080; ">14</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">15</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">operator</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> Edge </span><span style="color: #000000; ">&</span><span style="color: #000000; ">e) </span><span style="color: #0000FF; ">const</span><span style="color: #000000; "><br></span><span style="color: #008080; ">16</span> <span style="color: #000000; ">    {<br></span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> weight</span><span style="color: #000000; "><</span><span style="color: #000000; ">e.weight;<br></span><span style="color: #008080; ">18</span> <span style="color: #000000; ">    }<br></span><span style="color: #008080; ">19</span> <span style="color: #000000; ">};<br></span><span style="color: #008080; ">20</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">21</span> <span style="color: #000000; ">Edge edge[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">MAXM];<br></span><span style="color: #008080; ">22</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> visited[MAXN];<br></span><span style="color: #008080; ">23</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> first[MAXN];<br></span><span style="color: #008080; ">24</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> next[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">MAXM];<br></span><span style="color: #008080; ">25</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">26</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> Prim(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> n)<br></span><span style="color: #008080; ">27</span> <span style="color: #000000; ">{<br></span><span style="color: #008080; ">28</span> <span style="color: #000000; ">    memset(visited,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(visited));<br></span><span style="color: #008080; ">29</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> result </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">10000000</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">30</span> <span style="color: #000000; ">    priority_queue</span><span style="color: #000000; "><</span><span style="color: #000000; ">Edge,vector</span><span style="color: #000000; "><</span><span style="color: #000000; ">Edge</span><span style="color: #000000; ">></span><span style="color: #000000; ">,greater</span><span style="color: #000000; "><</span><span style="color: #000000; ">Edge</span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #000000; ">></span><span style="color: #000000; "> pq;<br></span><span style="color: #008080; ">31</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> e</span><span style="color: #000000; ">=</span><span style="color: #000000; ">first[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];e</span><span style="color: #000000; ">!=-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;e</span><span style="color: #000000; ">=</span><span style="color: #000000; ">next[e])<br></span><span style="color: #008080; ">32</span> <span style="color: #000000; ">    {<br></span><span style="color: #008080; ">33</span> <span style="color: #000000; ">        pq.push(edge[e]);<br></span><span style="color: #008080; ">34</span> <span style="color: #000000; ">    }<br></span><span style="color: #008080; ">35</span> <span style="color: #000000; ">    visited[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">36</span> <span style="color: #000000; ">   <br></span><span style="color: #008080; ">37</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">pq.empty())<br></span><span style="color: #008080; ">38</span> <span style="color: #000000; ">    {<br></span><span style="color: #008080; ">39</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> start </span><span style="color: #000000; ">=</span><span style="color: #000000; "> pq.top().start;<br></span><span style="color: #008080; ">40</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> end </span><span style="color: #000000; ">=</span><span style="color: #000000; "> pq.top().end;<br></span><span style="color: #008080; ">41</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> weight </span><span style="color: #000000; ">=</span><span style="color: #000000; "> pq.top().weight;<br></span><span style="color: #008080; ">42</span> <span style="color: #000000; ">        pq.pop();<br></span><span style="color: #008080; ">43</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">44</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(visited[end]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br></span><span style="color: #008080; ">45</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">46</span> <span style="color: #000000; ">        visited[end] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">47</span> <span style="color: #000000; ">        <br></span><span style="color: #008080; ">48</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(weight</span><span style="color: #000000; "><</span><span style="color: #000000; ">result)<br></span><span style="color: #008080; ">49</span> <span style="color: #000000; ">            result </span><span style="color: #000000; ">=</span><span style="color: #000000; "> weight;<br></span><span style="color: #008080; ">50</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(end</span><span style="color: #000000; ">==</span><span style="color: #000000; ">n)<br></span><span style="color: #008080; ">51</span> <span style="color: #000000; ">           </span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">52</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> e</span><span style="color: #000000; ">=</span><span style="color: #000000; ">first[end];e</span><span style="color: #000000; ">!=-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;e</span><span style="color: #000000; ">=</span><span style="color: #000000; ">next[e])<br></span><span style="color: #008080; ">53</span> <span style="color: #000000; ">        {<br></span><span style="color: #008080; ">54</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(visited[edge[e].end]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br></span><span style="color: #008080; ">55</span> <span style="color: #000000; ">            {<br></span><span style="color: #008080; ">56</span> <span style="color: #000000; ">                pq.push(edge[e]);<br></span><span style="color: #008080; ">57</span> <span style="color: #000000; ">            }<br></span><span style="color: #008080; ">58</span> <span style="color: #000000; ">        }<br></span><span style="color: #008080; ">59</span> <span style="color: #000000; ">    }<br></span><span style="color: #008080; ">60</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> result;<br></span><span style="color: #008080; ">61</span> <span style="color: #000000; ">}<br></span><span style="color: #008080; ">62</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">63</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> main()<br></span><span style="color: #008080; ">64</span> <span style="color: #000000; ">{<br></span><span style="color: #008080; ">65</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> snum;<br></span><span style="color: #008080; ">66</span> <span style="color: #000000; ">    scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">snum);<br></span><span style="color: #008080; ">67</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; "><=</span><span style="color: #000000; ">snum;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br></span><span style="color: #008080; ">68</span> <span style="color: #000000; ">    {<br></span><span style="color: #008080; ">69</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> n,m,start,end,weight;<br></span><span style="color: #008080; ">70</span> <span style="color: #000000; ">        scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">n,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">m);<br></span><span style="color: #008080; ">71</span> <span style="color: #000000; ">        <br></span><span style="color: #008080; ">72</span> <span style="color: #000000; ">        memset(first,</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(first));       <br></span><span style="color: #008080; ">73</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;j</span><span style="color: #000000; "><</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">m;j</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">2</span><span style="color: #000000; ">)<br></span><span style="color: #008080; ">74</span> <span style="color: #000000; ">        {<br></span><span style="color: #008080; ">75</span> <span style="color: #000000; ">            scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d%d%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">start,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">end,</span><span style="color: #000000; ">&</span><span style="color: #000000; ">weight);<br></span><span style="color: #008080; ">76</span> <span style="color: #000000; ">            <br></span><span style="color: #008080; ">77</span> <span style="color: #000000; ">            edge[j].start </span><span style="color: #000000; ">=</span><span style="color: #000000; "> start;<br></span><span style="color: #008080; ">78</span> <span style="color: #000000; ">            edge[j].end </span><span style="color: #000000; ">=</span><span style="color: #000000; "> end;<br></span><span style="color: #008080; ">79</span> <span style="color: #000000; ">            edge[j].weight </span><span style="color: #000000; ">=</span><span style="color: #000000; "> weight;<br></span><span style="color: #008080; ">80</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">81</span> <span style="color: #000000; ">            edge[j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].start </span><span style="color: #000000; ">=</span><span style="color: #000000; "> end;<br></span><span style="color: #008080; ">82</span> <span style="color: #000000; ">            edge[j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].end </span><span style="color: #000000; ">=</span><span style="color: #000000; "> start;<br></span><span style="color: #008080; ">83</span> <span style="color: #000000; ">            edge[j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].weight </span><span style="color: #000000; ">=</span><span style="color: #000000; "> weight;<br></span><span style="color: #008080; ">84</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">85</span> <span style="color: #000000; ">            next[j] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> first[start];<br></span><span style="color: #008080; ">86</span> <span style="color: #000000; ">            first[start] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> j; <br></span><span style="color: #008080; ">87</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">88</span> <span style="color: #000000; ">            next[j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> first[end];<br></span><span style="color: #008080; ">89</span> <span style="color: #000000; ">            first[end] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">90</span> <span style="color: #000000; ">              <br></span><span style="color: #008080; ">91</span> <span style="color: #000000; ">        }<br></span><span style="color: #008080; ">92</span> <span style="color: #000000; "><br></span><span style="color: #008080; ">93</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> result </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Prim(n);<br></span><span style="color: #008080; ">94</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Scenario #%d:\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,i);<br></span><span style="color: #008080; ">95</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d\n\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,result);<br></span><span style="color: #008080; ">96</span> <span style="color: #000000; ">    }<br></span><span style="color: #008080; ">97</span> <span style="color: #000000; ">}</span></div></div><img src ="http://www.shnenglu.com/liuhao/aggbug/104604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/liuhao/" target="_blank">ACTime</a> 2010-01-01 14:24 <a href="http://www.shnenglu.com/liuhao/archive/2010/01/01/104604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Poj 1840 Eqshttp://www.shnenglu.com/liuhao/archive/2009/12/22/103688.htmlACTimeACTimeTue, 22 Dec 2009 04:32:00 GMThttp://www.shnenglu.com/liuhao/archive/2009/12/22/103688.htmlhttp://www.shnenglu.com/liuhao/comments/103688.htmlhttp://www.shnenglu.com/liuhao/archive/2009/12/22/103688.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/103688.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/103688.html题目描述Q求方程的根的个?/div>
注意事项Qhash可以用charQ避免占用内存过?/div>
提交情况Q?ơMLEQ用int开数组太大?/div>
心得体会Q暂?div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "> 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int calCube(int x)
 5 {
 6     return x*x*x;
 7 }
 8 
 9 char hash[25000010];
10 
11 int main()
12 {
13     int a1,a2,a3,a4,a5;
14     scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5);
15 
16     int result;
17     memset(hash,0,sizeof(hash));
18     for(int i=-50;i<=50;i++)
19     {
20         if(i==0)
21             continue;
22         for(int j=-50;j<=50;j++)
23         {
24             if(j==0)
25                 continue;
26             for(int k=-50;k<=50;k++)
27             {
28                 if(k==0)
29                     continue;
30                 result=a1*calCube(i)+a2*calCube(j)+a3*calCube(k);
31                 if(result>12500000||result<-12500000)
32                     continue;
33                 hash[result+12500000]++;
34             }
35         }
36     }
37 
38     int ans=0;
39     for(int i=-50;i<=50;i++)
40     {
41         if(i==0)
42             continue;
43         for(int j=-50;j<=50;j++)
44         {
45             if(j==0)
46                 continue;
47             result=a4*calCube(i)+a5*calCube(j);
48             result=-result;
49             ans+=hash[result+12500000];
50         }
51     }
52 
53     printf("%d\n",ans);
54 }


ACTime 2009-12-22 12:32 发表评论
]]>POJ 1416 Shredding Companyhttp://www.shnenglu.com/liuhao/archive/2009/12/19/103539.htmlACTimeACTimeSat, 19 Dec 2009 11:36:00 GMThttp://www.shnenglu.com/liuhao/archive/2009/12/19/103539.htmlhttp://www.shnenglu.com/liuhao/comments/103539.htmlhttp://www.shnenglu.com/liuhao/archive/2009/12/19/103539.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/103539.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/103539.html所用算法:枚DQ?1枚DQ?/div>
注意事项Q注意位操作Q要l心
提交情况Q半个月前(12?P两次waQ,今天重新读题又完全换思\重写了一遍,ac
心得体会Q数据量,直接枚D可以,q不一定必要深搜或剪枝。这道题如果深搜的话Q剪枝的条g也是非常明显的。代码很乱,希望半个月后review的话q能看得懂?/div>
1 #include<iostream> 2 #include<stdio.h> 3 #include<math.h> 4 #include<stdlib.h> 5 #include<string.h> 6 using namespace std; 7 8 int calvalue(int t,int sum) 9 { 10 int result=0; 11 int j=0; 12 for(int i=0;i<=5;i++) 13 { 14 if(t&(1<<i)) 15 { 16 result=result+sum%(int)pow(10,j+1); 17 sum=sum/(int)pow(10,j+1); 18 //printf("%d %d\\n",result,sum); 19 j=0; 20 } 21 else 22 { 23 j++; 24 } 25 } 26 return result+sum; 27 } 28 29 int printvalue(int t,int sum) 30 { 31 int stack[10]; 32 int top=0; 33 int j=0; 34 for(int i=0;i<=5;i++) 35 { 36 if(t&(1<<i)) 37 { 38 stack[top++]=sum%(int)pow(10,j+1); 39 sum=sum/(int)pow(10,j+1); 40 j=0; 41 } 42 else 43 { 44 j++; 45 } 46 } 47 stack[top++]=sum; 48 while(top!=1) 49 { 50 printf("%d ",stack[--top]); 51 52 } 53 printf("%d\\n",stack[0]); 54 } 55 56 int main() 57 { 58 int target; 59 char num[7]; 60 //freopen("data.in","r",stdin); 61 while(scanf("%d%s",&target,num)==2) 62 { 63 if(target==0&&num[0]=='0') 64 break; 65 int sum=0; 66 int flag=0; 67 int length=strlen(num); 68 int minvalue=0; 69 int partition=-1; 70 for(int i=0;i<length;i++) 71 { 72 sum=10*sum+num[i]-'0'; 73 minvalue+=num[i]-'0'; 74 } 75 76 if(sum==target) 77 { 78 printf("%d %d\\n",target,sum); 79 continue; 80 } 81 else if(minvalue>target) 82 { 83 printf("error\\n"); 84 continue; 85 } 86 else 87 { 88 minvalue=0; 89 int mysum=0; 90 int times=1<<(length-1); 91 for(int j=0;j<times;j++) 92 { 93 mysum=calvalue(j,sum); 94 if(mysum==minvalue) 95 { 96 flag=1; 97 } 98 else if(mysum<=target&&mysum>minvalue) 99 { 100 minvalue=mysum; 101 flag=0; 102 partition=j; 103 } 104 } 105 } 106 if(flag==1) 107 { 108 printf("rejected\\n"); 109 } 110 else 111 { 112 printf("%d ",minvalue); 113 printvalue(partition,sum); 114 } 115 116 } 117 } 118


ACTime 2009-12-19 19:36 发表评论
]]>POJ 3083 Children of the Candy CornQbfs求最短\Q迷宫)http://www.shnenglu.com/liuhao/archive/2009/12/18/103470.htmlACTimeACTimeFri, 18 Dec 2009 06:27:00 GMThttp://www.shnenglu.com/liuhao/archive/2009/12/18/103470.htmlhttp://www.shnenglu.com/liuhao/comments/103470.htmlhttp://www.shnenglu.com/liuhao/archive/2009/12/18/103470.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/103470.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/103470.html阅读全文

ACTime 2009-12-18 14:27 发表评论
]]>
POJ 1936 All in Allhttp://www.shnenglu.com/liuhao/archive/2009/12/18/103459.htmlACTimeACTimeFri, 18 Dec 2009 03:55:00 GMThttp://www.shnenglu.com/liuhao/archive/2009/12/18/103459.htmlhttp://www.shnenglu.com/liuhao/comments/103459.htmlhttp://www.shnenglu.com/liuhao/archive/2009/12/18/103459.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/103459.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/103459.html所用算法:字符?/div>
提交情况Q?A
注意事项Q无
心得体会Q水?div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "> 1 #include<stdio.h>
 2 
 3 char s[100010];
 4 char t[100010];
 5 
 6 int judge(char s[],char t[])
 7 {
 8     int i=0;
 9     int j=0;
10     while(s[i]!='\0'&&t[j]!='\0')
11     {
12         if(s[i]==t[j])
13         {
14             i++;
15             j++;
16         }
17         else
18         {
19             j++;
20         }
21     }
22     if(s[i]=='\0')
23         return 1;
24     else
25         return 0;
26 }
27 
28 int main()
29 {
30     //freopen("data.in","r",stdin);
31     while(scanf("%s %s",s,t)==2)
32     {
33         if(judge(s,t))
34             printf("Yes\n");
35         else
36             printf("No\n");
37     }
38 }



ACTime 2009-12-18 11:55 发表评论
]]>
POJ 2299 Ultra-QuickSorthttp://www.shnenglu.com/liuhao/archive/2009/12/17/103396.htmlACTimeACTimeThu, 17 Dec 2009 06:00:00 GMThttp://www.shnenglu.com/liuhao/archive/2009/12/17/103396.htmlhttp://www.shnenglu.com/liuhao/comments/103396.htmlhttp://www.shnenglu.com/liuhao/archive/2009/12/17/103396.html#Feedback0http://www.shnenglu.com/liuhao/comments/commentRss/103396.htmlhttp://www.shnenglu.com/liuhao/services/trackbacks/103396.html题目描述Q求冒排序的交换次?/div>
所用算法:用归q排序,求逆序数的个数
提交情况Q?ơtle(直接冒排序n^2的复杂度Q对?000000的数据量Q必然超?Q?ơwaQ统计个数时整数溢出了)Q?a
心得体会Q初看题目很单,没有往数据量方面想Q直接冒泡计数提交,然后看着poj上一直running&&judging直到tle, 旉7000ms呀。没做过逆序数的cM问题Q而且题目本n分类也在排序那,然后考虑是不是能快排一下,比较排序前和排序后各个数的位|。考虑再三Q发现解决不了。去论坛上瞄了一|看到可以用逆序数解Q于是百度+法DQ学C如何用归q排序计逆序数的数目Q写成程序,中间q出C一ơwaQ然后就ac了。我在看法DӞ因ؓmerge在书一开始讲的,惛_^时排序都是快排ؓLQ就没有仔细惌merge可能的变U,q道题充分印证了Q即使merge本n可能用的不多Q但分冶的思想却是无所不在
cM题目Qpoj1804
 1 #include<iostream>
 2 #include<stdio.h>
 3 using namespace std;
 4 
 5 int num[500010];
 6 int left_t[500010];
 7 int right_t[500010];
 8 
 9 long long count=0;
10 
11 void merge(int a[],int p,int q,int r)
12 {
13     int n1=q-p+1;
14     int n2=r-q;
15     for(int i=1;i<=n1;i++)
16     {
17         left_t[i]=a[p+i-1];
18     }
19     for(int i=1;i<=n2;i++)
20     {
21         right_t[i]=a[q+i];
22     }
23     left_t[n1+1]=0x7fffffff;
24     right_t[n2+1]=0x7fffffff;
25 
26     int i=1;
27     int j=1;
28     for(int k=p;k<=r;k++)
29     {
30         if(left_t[i]<=right_t[j])
31         {
32             a[k]=left_t[i];
33             i=i+1;
34         }
35         else
36         {
37             a[k]=right_t[j];
38             j=j+1;
39             count+=n1-i+1;
40         }
41     }
42 }
43 
44 void merge_sort(int a[],int p,int r)
45 {
46     if(p<r)
47     {
48         int q=(p+r)/2;
49         merge_sort(a,p,q);
50         merge_sort(a,q+1,r);
51         merge(a,p,q,r);
52     }
53 }
54 
55 int main()
56 {
57     int n;
58     scanf("%d",&n);
59     while(n!=0)
60     {
61         for(int i=0;i<n;i++)
62         {
63             scanf("%d",&num[i]);
64         }
65         merge_sort(num,0,n-1);
66         printf("%lld\n",count);
67         count=0;
68         scanf("%d",&n);
69     }
70 }
?/div>



ACTime 2009-12-17 14:00 发表评论
]]> þþƷavպ| Ʒѿþþ㽶 | һձþþ| þþùƷһ | þþþ97Һ| þþ| 99þþƷѿһ| ޡvþþ뾫Ʒ| Ʒþˬۺ| þ޾Ʒa| 999þþѹƷ| ձձȾþþƷ| 99þ뾫Ʒϵ| þwww˳ɿƬ| ھƷþþӰԺ | þþþþAŷAV| þֻоƷ18| þþþһƷ޹ۺAV| þþƷAVӰԺ| ƷŮþþ| þĻ| þþ91뾫ƷHD| þavרavһ| ŷսþþþþþ| ޹ƷȾþ| þۺ㽶AV| ˾þ뾫ƷĻ| 91Ʒۿ91þþþþ| 91ƷۺϾþ| vĻþ| ɫۺϾþ88ɫۺ | ɫۺϾþĻ| Ʒ99þþþþ| þ99ھƷ| þþþƷһ| ƷëٸAVѾþ| ɫþùƷ12p| ҹƷþþþþӰ777| þˬˬƬAV鶹 | ŷƷþø| ƷþþþĻһ|