您的位置:首页 > 其它

解题报告 ch1 排序与搜素

2013-12-01 15:35 323 查看
340 - Master-Mind Hints

  //1.快排的使用

  

10420 - List of Conquests

  //1.struct快排

  int my_compare(const void*a, const void *b){

    return strcmp(((country *)a)->name ,  ((country *)b)->name);

  }

  qsort(&lover[1], country_number, sizeof(lover[1]), my_compare);

10474 - Where is the Marble?

  //1.二分法查找

  int mstart=0,mend=n-1;

  int middle=0;

  while(mstart <= mend){

    middle = (mstart+mend)/2;

    if (data[middle]== need) break;

    else if (data[middle]>need) mend = middle-1;

    else mstart = middle+1;

  }

152 - Tree''s a Crowd

  //避免开方

  for (int j=1; j<=10; ++j){

    if (dist < j*j){ ++treeGraph[j-1]; break;}

  }

299 - Train Swapping

  //模拟冒泡排序,记录冒泡次数

  冒泡排序算法的运作如下:

  1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  3.针对所有的元素重复以上的步骤,除了最后一个。

  4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

120 - Stacks of Flapjacks

  //1.解决思想:

    先找到最大的,然后最大和0对调,然后0和末尾对调

  //2.快速解法:动态规划

    编程之美:一摞饼

156 - Ananagrams

  //1.需要考虑所有可能的输入情况

    当用getchar()时,每一个字符都需要考虑

    尤其当 获取一个单词时, '\0'是必须要添加的

    (可能'#'在最后一个单词最后, e.g  abc#,此时需要将末尾'\0'加上!!)

  //2.结构体的快排

400 - Unix ls

  //1. 字符串格式的处理

  //2. 注意是否越界

  int i=myrow + rows*mycol;

  if (i>=n)  {cout<<endl;break;}

  //3. uva网站崩溃莫名其妙wa 3次,然后隔天提交一样的代码就 ac了 =。=

123 - Searching Quickly

  //#include <string>

  found=str.find("needles are small",found+1,6);

  if (found!=std::string::npos);

  str.replace(str.find(str2),str2.length(),"preposition");

10194 - Football (aka Soccer)

  //1.复杂结构体的快排

  struct myTeam{

  string name;

  int win,tie,lose;

  int goalWin,goalLose;

  int rank;

  myTeam(){win=tie=lose=goalWin=goalLose=rank=0;}

  void clear(){win=tie=lose=goalWin=goalLose=rank=0;}

 };

 //2.快排

 快排的比较函数可以很方便的将多种比较规则融合其中

 从小到大 a-b

 从大到小 b-a

 //3.注意题目细节

 大小写wa了一次

 //4.内置函数

 a = string(s,3,n);//将string从3开始复制n个字符

 #include <cstdlib> 

 int a=atoi('25');

755 - 487--3279

  //1.小结

  各种基本的操作, 读取字符,拆分,合成,利用string,比利用char数组来的安全些,起码不用关心作死的'\0',@.@

  这一题里还是利用了<cstdlib> 中的  qsort, 也就是c语言中的函数,以后再尝试使用 <algorithm>中的工具吧。

  <map>做的映射还是很好用的

10785 - The Mad Numerologist

  //1.思路

  将元音与辅音分别存放在两个数组中,

  然后分别排序

  最后合并输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: