解题报告 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.思路
将元音与辅音分别存放在两个数组中,
然后分别排序
最后合并输出
//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.思路
将元音与辅音分别存放在两个数组中,
然后分别排序
最后合并输出
相关文章推荐
- hdu_2000_ASCII码排序_解题报告
- POJ 1007(无序度 排序) 解题报告
- 【排序专训】练习题 士兵站队(中位数应用) 解题报告
- 【九度OJ】题目1023:EXCEL排序 解题报告
- 剑指Offer解题报告(Java版)——排序数组中某个数的个数 38
- bzoj 4552 排序 线段树+二分 解题报告
- Pku acm 2371 Questions and answers 排序算法解题报告(三)----二叉查找数(BST)排序
- 解题报告 ch1 大数问题
- Leetcode 75. Sort Colors 色彩排序 解题报告
- Only_排序 解题报告汇总
- POJ 1094 变量排序 解题报告
- Pku acm 1007 DNA Sorting 排序算法解题报告(五)----求逆序数 排序
- (解题报告)POJ3664---Election Time---用结构体实现两组相关联数据的排序问题
- BZOJ 3990 [SDOI 2015] 排序 解题报告
- 【九度OJ】题目1054:字符串内排序 解题报告
- 【九度OJ】题目1202:排序 解题报告
- BZOJ 5071 [Lydsy 十月月赛] 排序 解题报告
- Leetcode 451. Sort Characters By Frequency 按频率对字符排序 解题报告
- 【解题报告】openjudge DNA排序 数据结构与算法mooc 内排序
- hdu 1106 - 排序(解题报告)