1 / 36
文档名称:

acm常用代码集.docx

格式:docx   大小:103KB   页数:36页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

acm常用代码集.docx

上传人:aisheng191 2018/11/5 文件大小:103 KB

下载得到文件列表

acm常用代码集.docx

相关文档

文档介绍

文档介绍:算法设计与分析实验指导
王歧 编
实验一:递归与分治
1. 二分查找
2. 合并排序
3. 快速排序
实验二:回溯
1. 0-1 背包问题
2. 装载问题
3. 堡垒问题( ZOJ1002)
4. * 翻硬币问题
5. 8 皇后问题
6. 素数环问题
7. 迷宫问题
8. * 农场灌溉问题( ZOJ2412)
9. * 求图像的周长( ZOJ1047)
10. * 骨牌矩阵
11. * 字母转换( ZOJ1003)
12. * 踩气球( ZOJ1004)
实验三:搜索
1. Floodfill
2. 电子老鼠闯迷宫
3. 跳马
4. 独轮车
5. 皇宫小偷
6. 分酒问题
7. * 找倍数
8. *8 数码难题
实验四:动态规划
1. 最长公共子序列
2. 计算矩阵连乘积
3. 凸多边形的最优三角剖分
4. 防卫导弹
5. * 石子合并
6. * 最小代价子母树
7. * 旅游预算
8. * 皇宫看守
9. * 游戏室问题
10. * 基因问题
11. * 田忌赛马
实验五:贪心与随机算法
1. 背包问题
2. 搬桌子问题
3. * 照亮的山景
4. * 用随即算法求解 8 皇后问题
5. 素数测试
实验一:递归与分治
实验目的
理解递归算法的思想和递归程序的执行过程,并能熟练编写递归程序。
掌握分治算法的思想,对给定的问题能设计出分治算法予以解决。
实验预习内容
编程实现讲过的例题:二分搜索、合并排序、快速排序。
对本实验中的问题,设计出算法并编程实现。
试验内容和步骤
1. 二分查找
在对线性表的操作中, 经常需要查找某一个元素在线性表中的位置。 此问题的输入是待查元
素 x 和线性表 L,输出为 x 在 L 中的位置或者 x 不在 L 中的信息。
程序略
2. 合并排序
程序略
3. 快速排序
程序略
实验总结及思考
合并排序的递归程序执行的过程
实验二:回溯算法
实验目的:熟练掌握回溯算法
实验内容:回溯算法的几种形式
a) 用回溯算法搜索子集树的一般模式
void search(int m)
{
if(m>n) // 递归结束条件
output(); // 相应的处理 (输出结果 )
else
{
a[m]=0; // 设置状态: 0 表示不要该物品
search(m+1); // 递归搜索:继续确定下一个物品
a[m]=1; // 设置状态: 1 表示要该物品
search(m+1); // 递归搜索:继续确定下一个物品
}
}
b) 用回溯算法搜索子集树的一般模式
void search(int m)
{
if(m>n) // 递归结束条件
output(); // 相应的处理 ( 输出结果 )
else
for(i=m;i<=n;i++)
{
swap(m,i); // 交换 a[m] 和 a[i]
if()
if(canplace(m)) // 如果 m 处可放置
search(m+1); // 搜索下一层
swpa(m,i); // 交换 a[m] 和 a[i]( 换回来 )
}
}
习题
1. 0-1 背包问题
在 0 / 1 背包问题中,需对容量为 c 的背包进行装载。从 n 个物品中选取装入背包的物品,
每件物品 i 的重量为 wi ,价值为 pi 。对于可行的背包装载,背包中物品的总重量不能超
过背包的容量,最佳装载是指所装入的物品价值最高。
程序如下:
#include <>
void readdata();
void search(int);
void checkmax();
void printresult();
int c=35, n=10; //c : 背包容量; n:物品数
int w[10], v[10]; //w[i] 、 v[i] :第 i 件物品的重量和价值
int a[10], max; //a 数组存放当前解各物品选取情况; max:记录最大价值
//a[i]=0 表示不选第 i 件物品, a[i]=1 表示选第 i 件物品
int main()
{
readdata(); // 读入数据
search(0); // 递归搜索
printresult();
}
void search(int m)
{
if(m>=n)
checkmax(); // 检查当前解是否是可行解,若是则把它的价值与 max 比较
else
{
a[m]=0; // 不选第 m 件物品
search(m+1); // 递归搜索下一件物品
a[m

最近更新

2025年度物流园区场地租赁及供应链管理合同范.. 16页

2018年山西临汾中考历史试卷及答案 12页

2025年度环保产业技术转移转化合同范本[29] 15页

2025年度生态住宅租赁管理与服务合同 3页

2018山东省枣庄市中考生物真题及答案 19页

2025年度矿井打钻施工承包合同 15页

2025年度租赁房屋室内装修施工合同范本 15页

2025年度综合交通枢纽工程居间服务协议 3页

2025年度网络安全培训与咨询服务合同样本 14页

2024年福建龙岩中考语文真题及答案 9页

2024年福建三明中考英语真题及答案 16页

2025年度跨境电商合作销售及售后服务合同 15页

2025年度通信设备安装施工安全责任书 14页

2025年度餐厅与旅行社旅游服务合作协议书 16页

2025年度高效生态鱼塘租赁合同 14页

2025年度高雅餐厅服务员劳动合同样本 13页

2025年成都物业小区物业服务人员培训合同范本.. 13页

2025年新型家政服务合同范本 14页

2025年新能源汽车采购合同范本 15页

2025年智能吊顶系统研发、生产与安装合同 14页

2025年最新版企业通勤租车合作协议范本 11页

2025年水上交通安全生产责任书(含船舶维护).. 16页

2025年版全屋定制装修施工合同范本 16页

2025年瓷砖电商平台数据分析与营销支持合同模.. 14页

2025年白酒新品研发与技术合作合同 14页

2023年江西上饶中考地理真题及答案 5页

毕业论文中期考核评语 4页

露天煤矿应急救援培训课件 27页

装在套子里的人ppt课件(统编版) 34页

佛门施食瑜伽焰口 46页