[工学]ACM模板.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]ACM模板

一、搜索回溯分治 2 1、固定模式 2 (例1)八皇后 2 (例2)素数环 4 2、一堆小棍儿找四个边 6 3、求逆序对个数 hdu2689Sort it 9 二、计算几何 11 1、两个凸多边形相交的面积(difficult) 11 2、极坐标的运用 14 3、判断是否为凸多边形 16 4、判断点是否在(任意)多边形内 16 5、判断线段是否在多边形内 16 6、多边形重心 16 7、点到线段的距离 19 三、动态规划 20 1、数塔 hdu2084 22 2、最长不下降子序列 23 3、最长公共子序列 hdu1159 23 4、最大连续子段和 hdu1231 24 5、字符串对称处理 25 6、邮局与村庄 poj1160 Post_Office 26 7、箱子叠加 hdu1069Monkey and Banana 28 8、矩阵最大和 hdu1081To The Max 32 9、括号匹配/矩阵连乘 poj1141Brackets Sequence 34 10、凸多边形的最优三角剖分 37 四、背包问题 37 1、01背包hdu2602 Bone Collector 37 2、完全背包(恰好装满)hdu1114Piggy-Bank 38 3、多重背包poj1276 Cash Machine 40 4、二维背包hdu2159FATE 43 5、依赖背包hdu1561 The more, The Better 44 五、线段树 47 1、更新节点,区间求和 hdu1166敌兵布阵 47 2、更新节点,区间最值 hdu1754I Hate It 50 3、成段更新,总区间求和 hdu1698 Just a Hook 53 4、更新节点,区间求和 hdu1394 Minimum Inversion Number 56 5、成段更新,寻找空间(经典类型,求一块满足条件的最左边的空间) pku3667 Hotel 58 6、矩形面积并,扫描线法hdu1542 Atlantis 62 7. 成段更新,区间统计,位运算加速 pku2777 Count Color 65 六、字典树 69 七、图论 72 1、求强联通分支 72 DFS(); 76 2、判断是否存在欧拉回路 76 八、差分约束系统 78 九、贪心 导弹拦截hdu1257 81 一、搜索回溯分治 1、固定模式 递归回溯法算法框架[一] procedure Search(k:integer); begin for i:=1 to 算符种数 Do if 满足条件 then begin 保存结果 if 到目的地 then 输出解 else Search(k+1); 恢复:保存结果之前的状态{回溯一步} end; end; 递归回溯法算法框架[二] procedure Search(k:integer); begin if 到目的地 then 输出解 else for i:=1 to 算符种数 Do if 满足条件 then begin 保存结果 Search(k+1,参数表); end; end; (例1)八皇后 八皇后问题:要在国际象棋棋盘中放八个皇后,使任意两个皇后都不能互相吃。(提示:皇后能吃同一行、同一列、同一对角线的任意棋子。) 放置第i个(行)皇后的算法为: procedure Search(i); begin   for 第i个皇后的位置=1 to 8 do; //在本行的8列中去试    if 本行本列允许放置皇后 then     begin      放置第i个皇后; 对放置皇后的位置进行标记;      if i=8 then 输出 //已经放完个皇后        else Search(i+1); //放置第i+1个皇后      对放置皇后的位置释放标记,尝试下一个位置是否可行;     end; end; #includeiostream #includecmath using namespace std; int a[9]; bool hang[9]; //行标记 bool lie[9]; //列标记 bool xie1[17]; // \标记 bool xie2[17]; // /标记 int total; void

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档