| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:没有AC的兄弟们估计多半都是这个错误(见内)In Reply To:没有AC的兄弟们估计多半都是这个错误(见内) Posted by:Ontheline at 2009-02-24 11:19:35 > 1.首先给大家一组测试用例:
> 7
> 9 48 29 2 26 42 9 35 4 25 45 16 26 21
> AC的代码答案是3
> 我开始错误的代码是4.
> 2.分析:错误来自于对关键字排序,当两根Stick的第一关键字相等的时候必须按照第二关键字的升序排列,至于你如何安排自己的关键字无所谓,
> 错误代码:
> int cmp(const void* a1,const void* a2)
> {
> return (((sticks*)a1)->length-((sticks*)a2)->length);//只考虑了第一关键字
> }
> 正确代码如下:
> int cmp(sticks a,sticks b)
> {
>
> if (a.length==b.length)
> {
> return a.weight<b.weight;
> }
> else
> {
> return a.length<b.length;
> }
> }
> 希望对各位有所帮助,最近身体不舒服,希望大家刷题之余多多锻炼身体:)
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator