ACM一期 基础训练计划

合集下载

ACM训练指南

ACM训练指南

ACM练习建议一位高手对我的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm 主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。

下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.8. 调用系统的qsort, 技巧很多,慢慢掌握.9. 任意进制间的转换第二阶段:练习复杂一点,但也较常用的算法。

如:1. 二分图匹配(匈牙利),最小路径覆盖2. 网络流,最小费用流。

3. 线段树.4. 并查集。

5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp6.博弈类算法。

博弈树,二进制法等。

7.最大团,最大独立集。

8.判断点在多边形内。

9. 差分约束系统.10. 双向广度搜索、A*算法,最小耗散优先.第三阶段:前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法。

这就要平时多做做综合的题型了。

1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。

2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来做:-P )3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力.4. 一道题不要过了就算,问一下人,有更好的算法也打一下。

5. 做过的题要记好:-)50题第一类搜索(至少4题)1011 1033 1129 2049 2056 2488 2492 (稍难,也可并查集)第二类最短路(至少3题)1062 1125 1797 2253 2679 Bellman-Ford (难)第三类动态规划(至少6题,2479 and 2593必做)2479 and 2593 1015 1042 (也可贪心) 1141 1050 1080 1221 1260 2411 (稍难) 1276 第四类贪心(至少2题)1065 2054 (难) 1521 2709第五类并查集(至少2题)1861 1182 (难) 1308 2524第六类最小生成树(至少2题, 而且Prim 和Kruskal 至少各用一次)1251 1258 1789 2485第七类二分图(至少3题)1325 1469 2195 (KM 算法或最小费用最大流) (难) 2446 1422 and 2594第八类最大流(至少2题)1087 1459 1149 2516 (最小费用最大流) (难)第九类快速查找(B-Search, Hash and so on) (至少3题)2503 2513 (+Euler回路的判定) 1035 1200 2002第十类数论(至少2题)1061 1142 2262 2407 1811(难) 2447 (难)第十一类线段树(无最少题数要求)2352 (可用简单方法) 2528第十二类计算几何(至少2题,1113凸包算法必做)1113 1292 2148 (难) 2653 1584第十三类高精度(至少3题,1001必做)1001 1047 1131 1503 1504 1060 and 1996 (多项式)SCU1002, 1003, 1004 (/soj)第十四类模拟(至少5题)1029 and 1013 1083 and 2028 2234 and 1067 1012 1026 1068 1120 2271 2632第十五类数学(至少4题)2249 1023 2506 1079 1019 and 1095 1905 and 1064 (二分)POJ分类1、排序1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379,1002(需要字符处理,排序用快排即可)1007(稳定的排序)2159(题意较难懂)2231 2371(简单排序)2388(顺序统计算法)2418(二叉排序树)2、搜索、回溯、遍历1022 1111 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 23861010,1011,1018,1020,1054,1062,1256,1321,1363,1501,1650,1659,1664,1753,2078,2083,2303,2310,2329简单:1128, 1166, 1176, 1231, 1256, 1270, 1321, 1543, 1606, 1664, 1731, 1742, 1745, 1847,1915, 1950, 2038, 2157, 2182, 2183, 2381, 2386, 2426,不易:1024, 1054, 1117, 1167, 1708, 1746, 1775, 1878, 1903, 1966, 2046, 2197, 2349,推荐:1011, 1190, 1191, 1416, 1579, 1632, 1639, 1659, 1680, 1683, 1691, 1709, 1714, 1753, 1771, 1826, 1855, 1856, 1890, 1924, 1935, 1948, 1979, 1980, 2170, 2288, 2331, 2339,2340,1979(和迷宫类似)1980(对剪枝要求较高)3、历法1008 2080 (这种题要小心)4、枚举1012,1046,1387,1411,2245,2326,2363,2381,1054(剪枝要求较高),1650 (小数的精度问题)5、数据结构的典型算法容易:1182, 1656, 2021, 2023, 2051, 2153, 2227, 2236, 2247, 2352, 2395,不易:1145, 1177, 1195, 1227, 1661, 1834,推荐:1330, 1338, 1451, 1470, 1634, 1689, 1693, 1703, 1724, 1988, 2004, 2010, 2119, 2274, 1125(弗洛伊德算法) ,2421(图的最小生成树)6、动态规划1037 A decorative fence、1050 To the Max、1088 滑雪、1125 Stockbroker Grapevine、1141 Brackets Sequence、1159 Palindrome、1160 Post Office、1163 The Triangle、1458 Common Subsequence、1579 Function Run Fun、1887 Testing the CATCHER、1953 World Cup Noise、2386 Lake Counting7、贪心1042, 1065, 1230, 1323, 1477, 1716, 1784,1328 1755(或用单纯形方法),2054,1017,1328,1862,1922 ,2054,2209,2313,2325,2370。

acm课程设计

acm课程设计

acm课程设计一、教学目标本课程旨在通过ACM课程的学习,让学生掌握以下知识和技能:1.知识目标:(1)理解并掌握ACM的基本概念和原理;(2)了解ACM的发展历程和现状;(3)熟悉ACM的编程语言和工具;(4)了解ACM在各领域的应用。

2.技能目标:(1)能够使用ACM编程语言和工具进行简单的程序设计;(2)能够独立解决ACM中的基本问题;(3)能够团队协作,解决复杂的ACM问题;(4)能够对ACM程序进行调试和优化。

3.情感态度价值观目标:(1)培养学生对ACM的兴趣和热情;(2)培养学生勇于挑战、积极进取的精神;(3)培养学生团队协作、沟通交流的能力;(4)培养学生关注社会、服务社会的责任感。

二、教学内容本课程的教学内容主要包括以下几个部分:1.ACM的基本概念和原理;2.ACM的发展历程和现状;3.ACM的编程语言和工具;4.ACM在各领域的应用;5.ACM编程实践。

具体的教学安排如下:第1-2课时:ACM的基本概念和原理;第3-4课时:ACM的发展历程和现状;第5-6课时:ACM的编程语言和工具;第7-8课时:ACM在各领域的应用;第9-10课时:ACM编程实践。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解ACM的基本概念、原理和发展历程;2.案例分析法:分析ACM在各领域的应用实例;3.实验法:实践ACM编程,解决实际问题;4.讨论法:分组讨论,分享学习心得和经验。

四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:ACM课程教材;2.参考书:ACM相关书籍;3.多媒体资料:ACM相关视频、PPT等;4.实验设备:计算机、网络等。

通过以上教学资源,为学生提供丰富的学习材料和实践机会,提高学生的学习效果。

五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:占课程总评的30%,包括课堂参与度、团队合作、问题解决能力等;2.作业:占课程总评的20%,主要考察学生对知识的理解和应用能力;3.考试:占课程总评的50%,包括期中考试和期末考试,主要考察学生的知识掌握和运用能力。

ACM入门训练指南

ACM入门训练指南

ACM入门训练指南目标读者:想要在ACM/ICPC里进行发展,并通过SDUTOJ进行训练的初学者。

使用语言:只要会一门程序设计语言,就可以进行ACM训练了。

通过训练,可以更好地掌握语言使用能力、程序和算法设计能力。

一般通用语言如C、C++和JAVA都可以,它们有各自的优势和缺点:1.C语言设计算法效率比较高,但输入输出的格式控制比较麻烦,而ACM 对程序进行评测时对输入输出的格式要求比较高,使用C务必要熟练掌握输入输出方法。

2.C++封装了输入输出流,方便输入输出操作,减少出错的可能性;C++提供了非常强大的标准模版库(STL),使得很多在C上实现起来比较麻烦的代码,在C++上却非常方便。

3.JAVA在大型工程和安全方面有比较独特的优势,但在ACM里面却不是一种优秀的语言,因为JAVA的执行效率要比C、C++慢很多,而ACM的题目都对程序运行时间有限制,如果题目限时比较紧的话,就不适合用JAVA,然而JAVA却提供了很方便的高精度运算(大整数运算)。

建议刚学完C就用纯C来训练,在训练过程中可以学习C++,有时间再把STL 好好学学。

输入输出:初次接触ACM训练时经常会遇到的问题,就是输入和输出问题。

如果对语言的输入输出问题不是很熟悉的话,一定要先重点研究一下,特别在输入和输出时不能有冗余信息,因为学习语言时可能习惯了使用提示信息来提高程序的交互性,但ACM不需要任何交互性。

不严格按照题目要求进行输入输出的程序是无法通过系统测试的。

在线评测系统:在线评测系统,英文叫Online Judge(简称OJ),是开放的程序自动评判系统。

只要能上网,注册并登录系统后,就可以选择题目,编写程序,提交程序代码,然后由系统自动进行编译和执行,并通过系统预设测试数据来检验程序代码的正确性。

通过使用OJ训练,可以提高编程和算法设计能力,随着训练的深入,可以参加在评测系统上举行的ACM-ICPC程序设计竞赛。

很多学校都有自己的在线评测系统,里面提供了很多题目给平时学习训练用。

ACM学习建议

ACM学习建议

ACM学习建议2008-05-07 09:36 一位高手对我的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。

下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.8. 调用系统的qsort, 技巧很多,慢慢掌握.9. 任意进制间的转换第二阶段:练习复杂一点,但也较常用的算法。

如:1. 二分图匹配(匈牙利),最小路径覆盖2. 网络流,最小费用流。

3. 线段树.4. 并查集。

5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp6.博弈类算法。

博弈树,二进制法等。

7.最大团,最大独立集。

8.判断点在多边形内。

9. 差分约束系统.10. 双向广度搜索、A*算法,最小耗散优先.第三阶段:前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法。

这就要平时多做做综合的题型了。

1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。

2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来做:-P )3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力.4. 一道题不要过了就算,问一下人,有更好的算法也打一下。

5. 做过的题要记好:-)马牛的acm学习(第一天)-我找资源,我找~收藏今天是2005年秋季学期考完试后的第一天,想着前面好几门都应该过了,难道败在最后考的物理上?oh,yeah~不管了。

ACM训练计划初步设想

ACM训练计划初步设想
g,其余时间复习自己的知识点,平时多看书。
2,对于活动的一些建议。
a,对于英语题目,强烈要求不要直接用翻译器,自己慢慢来。平时也可收集一些好的单词。
b,在刷题过程中,以训练自己的思维为主,少看代码,以思路为主,代码自己实现为好。
c,在刷题过程中,有些模板一定要收集要,而且要理解含义,灵活运用,而且要打印出来。
1,先刷题,后总结。
如,后写代码。
c,是好题,将解题报告写于自己blog上,注重质量,把大的问题划分在小问题。
d,刷题总结过程中,以表达自己的思路为主。越有清晰,越有条理性越好。
e,刷题分类先不固定。可能一次刷题会涉及到多种类型。
f,刷题时间为上班时间。

acm培训计划

acm培训计划

acm培训计划导言ACM (Association for Computing Machinery) 是一个国际性的计算机学会,旨在为计算机专业人士提供交流学习和培训的平台。

ACM 培训计划旨在帮助学生提升他们的算法和编程能力,从而更好地参与 ACM 竞赛。

本培训计划将围绕算法与数据结构、编程语言、数学及竞赛技巧展开,以帮助学生提升专业知识、提高团队合作能力和竞赛技能。

一、培训目标1. 提升学生算法和数据结构基础知识,使其能够灵活运用于解决实际问题。

2. 培养学生对编程语言的深刻理解和应用能力。

3. 加强学生的数学基础,提高解决问题的抽象能力。

4. 提高学生的 ACM 竞赛技巧,培养解决问题的思考和团队合作能力。

二、培训内容1. 算法与数据结构1.1. 基本算法:递归、分治、贪心、动态规划1.2. 基本数据结构:栈、队列、链表、树、图1.3. 高级算法:最短路径、最小生成树、网络流、字符串算法1.4. 算法分析与设计:时间复杂度、空间复杂度和算法优化2. 编程语言2.1. C/C++/Java/Python 等主流编程语言的基本语法和特性2.2. 编程范例分析和练习2.3. 算法实现与调试技巧3. 数学基础3.1. 离散数学基础知识3.2. 数论、组合数学和图论基础3.3. 动态规划数学建模4. ACM 竞赛技巧4.1. ACM 竞赛规则和常见题型分析4.2. 模拟训练和解题技巧分享4.3. 队伍协作与策略分享三、培训方式1. 理论授课1.1. 定期组织专家授课,系统讲解培训内容,由资深ACM 竞赛选手分享解题技巧和经验。

1.2. 组织学习交流会,鼓励学生积极提问和讨论。

2. 实践训练2.1. 组织编程实践训练,引导学生独立完成算法实现和调试。

2.2. 选派导师进行一对一指导,帮助学生解决练习中遇到的难点问题。

3. 竞赛准备3.1. 组织模拟 ACM 竞赛,帮助学生提前适应竞赛环境和节奏。

3.2. 参与区域赛和国际赛前的模拟训练,为学生提供更加真实的竞赛体验。

ACM培训计划

ACM培训计划

ACM培训计划书制作人:xxx2008/10/21一、什么是ACMACM/ICPC ( ACM International Collegiate Programming Contest)国际大学生程序设计竞,ACM/ICPC 是由国际计算机界历史悠久、颇具权威性的组织ACM (Association for Computing Machinery ,美国计算机协会) 主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。

该项竞赛从1970 年举办至今已历31 届,一直受到国际各知名大学的重视,并受到全世界各著名计算机公司的高度关注,在过去十几年中,APPLE 、AT&T 、MICROSOFT 和IBM 等世界著名信息企业分别担任了竞赛的赞助商。

可以说,ACM 国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事,是广大爱好计算机编程的大学生展示才华的舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。

该项竞赛分区域预赛和国际决赛两个阶段进行,各预赛区第一名自动获得参加世界决赛的资格,世界决赛安排在每年的 3 ~ 4 月举行,而区域预赛安排在上一年的9 ~12 月在各大洲举行。

ACM/ICPC 的区域预赛是规模很大、范围很广的赛事。

仅在2003 年参加区域预赛的队伍就有来自75 个国家(地区),1411 所大学的3150 支代表队,他们分别在127 个赛场中进行比赛,以争夺全球总决赛的73 个名额,其激烈程度可想而知。

2004 年第29 届ACM/ICPC 亚洲赛区预赛共设了北京、上海、台北、高雄、汉城、德黑兰、爱媛(日本)、达卡(孟加拉国)、马尼拉、坎普尔(印度)等10 个赛站,来自亚洲各国知名高校的各个代表队进行了激烈的角逐。

中国内地从1996 年开始参加ACM/ICPC 亚洲区预赛,至今已历九届。

acm大赛项目计划书

acm大赛项目计划书

acm大赛项目计划书一、项目背景及意义ACM(Association for Computing Machinery)大赛是国际性的计算机科学比赛,旨在提高学生的计算机编程技能,培养他们的逻辑思维能力和团队合作精神。

ACM大赛已经成为了全球性的计算机编程赛事,吸引了大量计算机科学爱好者参与其中。

在当今信息化的社会中,计算机科学的发展日新月异,各种新技术层出不穷。

ACM大赛所涉及的计算机编程知识和技能对于学生在未来的学习和工作中都具有重要意义。

因此,本项目旨在通过组织ACM大赛活动,为学生提供一个锻炼自身技能、提高竞争力的平台。

二、项目目标1. 提高学生的计算机编程技能:通过ACM大赛的比赛形式,激发学生对计算机编程的兴趣和热情,提高他们的编程能力和技巧。

2. 培养学生的团队合作意识:ACM大赛是一个团队合作的比赛,每个团队需要合作完成各项任务。

通过这种形式,培养学生的团队合作意识和团队协作能力。

3. 拓展学生的思维能力:ACM大赛的题目通常具有一定难度,要求参赛者具备较强的逻辑思维能力和解决问题的能力。

通过参与ACM大赛,拓展学生的思维视野,培养他们的解决问题的能力。

三、项目内容及实施方案1. 主题:本次ACM大赛的主题为“智能科技”,围绕人工智能、物联网、大数据等领域展开。

参赛队伍可以根据此主题进行编程设计和开发。

2. 时间安排:本次ACM大赛共分为三个阶段,分别为初赛、复赛和决赛。

初赛将在校内进行,产生优秀队伍晋级复赛;复赛将在省内进行,产生优秀队伍晋级决赛;决赛将在全国进行,最终确定ACM大赛的获胜队伍。

3. 参赛资格:本次ACM大赛面向全校学生开放,每个队伍由3-5名同学组成,参赛队员应具备一定的计算机编程基础和团队合作能力。

4. 奖项设置:本次ACM大赛将设置一、二、三等奖以及优秀组织奖、优秀编程奖等奖项,鼓励参赛队伍积极参与比赛,竞争优胜。

5. 宣传推广:为了吸引更多学生参与ACM大赛,我们将通过校园宣传、社交媒体、海报、校园活动等方式进行广泛宣传,提高大赛的知名度和影响力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这个训练计划我也只是把我知道的知识点罗列出来而已.其实acm还有很多方面的知识。

可能到acm生涯结束的时候还是无法把所有的知识都吃透所以acm的知识能学多少算多少,知识重要的不是你知道的多,重要的是你能否熟练的运用他们!题目注意事项:zoj:/grid:/hdu:/zquoj:也就是我们的oj一.数据机构基础。

请自学完数据结构书:2,3,4,6,7,9.1,9.2.1 9.3 10 这几章,带*号可以暂时掠过,以后再看。

然后自行完成oj DS开头的题目。

注意栈队列这些数据结构一般不用像书本那样写得那么严谨。

在acm中,往往因为时间关系,一般写成简单的模式:请参考附件:栈与队列acm中的简单实现.txt 其它数据结构请自行简化。

二.其他数据结构1.trie树请看附件trie树的相关附件或到网上搜索。

注意自己写好和简化模版。

Trie树最好使用静态分配实现!poj 3630 hdu 12512.并查集Hdu:1558 1811 1829 11983.图论专题:简单的说下图怎么存储。

图通常分为邻接表和邻接矩阵两种方式储存。

请先移步到数据结构书祥看这两种实现方式。

邻接表:我们知道要动态分配内存。

这种方式有时会导致效率低下。

我们可以模拟一下动态分配内存,详见附件静态分配。

这部分图论可参考/p-251720691.html部分题目.这本书有讲解。

1.图的基本概念poj:16592.图的遍历和活动问题zoj:2110 1709 1649 2913 1060 2193 2412 1008 2165 1136 1361 1091 1083poj:2935 1270 36873.树与图的生成树zoj:1203 1542 1586 2158 1406 1372 1718 1914 2048poj:1679 2421 1258 30264最短路径zoj:1298 2750 1092 1721 1967 1952 2770 1508 1053 1655 1232 2008 1791 3088 3103 1942 2027 2797 1082 1221 1857 1260 1420 1455poj:3268 3259 1192 31695可行遍性问题zoj:1395 2016 2398 1130 1919poj:25136.网络流问题zoj:1734 2874 2314 1994 1157 1992 2587 2788 2404 1553poj:1149 1273 2112 3469 1815 3422 2391 3436 25167.支配集覆盖集独立集问题zoj:1654 1364 1140 2429 1516 1137 1059 1525poj:30418.图的连通性问题zoj:1119 2182 2588 1979 1311 2532 2470poj:2942 3177 2762 2186 1236 3352 3694 3160 35929.平面图问题zoj:2394 1084 2589poj:1419三.常用算法。

//可与数据结构的题目交叉做。

做以下题目时,请参考附件:Hdu课件参考课本李文新老师的《程序设计导引及在线实践》.pdf。

1.简单数学:高中程度的数学能力基本能解决。

所以速度秒杀下面几道题目:hdu:1049、1060、1061、1066grid:2750 1657 2808 28012.递推题目:考察的主要是数学的推理能力hdu:1290 1297 1438 1465 ~1466 1480 2013 2018 2041~20423.进制转换:grid:2972 2973 2734 2735 2798 27654.简单的字符串处理:grid:2742 2974 2744 2975 2743 2976 2818 2819 2820 2804 2797 27995.模拟题:主要考察的是你的编码能力,题目做出来后,可以去网上找这道题目的相关代码,参考别人的做法简化自己的代码。

grid:2733 2712 2964 2965 2966 2723 2967 2746 2950 27456.大整数:涉及知识点:大整数加法,乘法,除法,减法除法的实现相对来说比较难,可以掠过。

大整数运算其实可以使用java来实现比较方便,有兴趣的同学,可以去网上搜下另外里面有一道题涉及二进制快速幂,请参考附件二进制快速幂.docgrid:2981 2980 2737 2706 2809 2738 29517.枚举:简单点的枚举,就是用几个循环枚举每个数的每种情况,然后找出符合条件的,这种题目比赛时经常会出现,如果一心想着好的算法,而放弃这种暴力手段的话,有可能与水题失之交臂。

grid:2977 2692 2810 2811 2812 2739 2747 2813 11838.递归+搜索(二分搜索+ bfs+dfs)grid:2753 2756 2694 1664 2816 2754 2817 2815 2749 2790hdu:1010、1240、1241、1242 1072、1253 、1312、1372 (以上题目类似于1010)1238、1239、1015、1016 1401、1515、1548poj:1064 2507 2002 3685 2503 2413(高精度)1826(并查集或dfs或dfs+二分法最好用并查集)9.DP基础:grid:2757 1661 2806 2979 2809 2795 1088 2733 2786 2792 2766hdu:1003 、1466 、1087、1159、11761058、1069、2059、208410.贪心算法入门:hdu:1045 1050 1051 1052 1053 1054 2037 1076 1203 1204 1239 1579 1730 228512.计算几何基础请参考算法导论计算几何里面的相关内容。

一。

点,线,面,形基本关系,点积叉积的理解POJ 2318 TOYS(推荐)/JudgeOnline/problem?id=2318POJ 2398 Toy Storage(推荐)/JudgeOnline/problem?id=2398一个矩形,有被若干直线分成N个格子,给出一个点的坐标,问你该点位于哪个点中。

知识点:其实就是点在凸四边形内的判断,若利用叉积的性质,可以二分求解。

POJ 3304 Segments/JudgeOnline/problem?id=3304知识点:线段与直线相交,注意枚举时重合点的处理POJ 1269 Intersecting Lines/JudgeOnline/problem?id=1269知识点:直线相交判断,求相交交点POJ 1556 The Doors (推荐)/JudgeOnline/problem?id=1556知识点:简单图论+简单计算几何,先求线段相交,然后再用Dij求最短路。

POJ 2653 Pick-up sticks/JudgeOnline/problem?id=2653知识点:还是线段相交判断POJ 1066 Treasure Hunt/JudgeOnline/problem?id=1066知识点:线段相交判断,不过必须先理解“走最少的门”是怎么一回事。

POJ 1410 Intersection/JudgeOnline/problem?id=1410知识点:线段与矩形相交。

正确理解题意中相交的定义。

详见:/novosbirsk/blog/item/68c682c67e8d1f1d9d163df0.htmlPOJ 1696 Space Ant (推荐)/JudgeOnline/problem?id=1696德黑兰赛区的好题目。

需要理解点积叉积的性质POJ 3347 Kadj Squares/JudgeOnline/problem?id=3347本人的方法极度猥琐。

复杂的线段相交问题。

这个题目是计算几何的扩大数据运算的典型应用,扩大根号2倍之后就避免了小数。

POJ 2826 An Easy Problem?! (推荐)/JudgeOnline/problem?id=2826问:两条直线组成一个图形,能容纳多少雨水。

很不简单的Easy Problem,要考虑所有情况。

你不看discuss看看能否AC。

(本人基本不能)提示一下,水是从天空垂直落下的。

POJ 1039 Pipe/JudgeOnline/problem?id=1039又是线段与直线相交的判断,再加上枚举的思想即可。

POJ 3449 Geometric Shapes/JudgeOnline/problem?id=3449判断几何体是否相交,不过输入输出很恶心。

此外,还有一个知识点,就是给出一个正方形(边不与轴平行)的两个对角线上的顶点,需要你求出另外两个点。

必须掌握其方法。

POJ 1584 A Round Peg in a Ground Hole/JudgeOnline/problem?id=1584知识点:点到直线距离,圆与多边形相交,多边形是否为凸POJ 2074 Line of Sight (推荐)/JudgeOnline/problem?id=2074与视线问题的解法,关键是求过两点的直线方程,以及直线与线段的交点。

数据有一个trick,要小心。

二。

凸包问题POJ 1113 Wall/JudgeOnline/problem?id=1113知识点:赤裸裸的凸包问题,凸包周长加上圆周。

POJ 2007 Scrambled Polygon/JudgeOnline/problem?id=2007知识点:凸包,按极角序输出方案POJ 1873 The Fortified Forest (推荐)/JudgeOnline/problem?id=1873World Final的水题,先求凸包,然后再搜索。

由于规模不大,可以使用位运算枚举。

详见:/novosbirsk/blog/item/333abd54c7f22c52574e0067.htmlPOJ 1228 Grandpa's Estate (推荐)/JudgeOnline/problem?id=1228求凸包顶点数目,很多人求凸包的模板是会多出点的,虽然求面积时能得到正确答案,但是在这个题目就会出问题。

此外,还要正确理解凸包的性质。

POJ 3348 Cows/JudgeOnline/problem?id=3348凸包面积计算三。

面积问题,公式问题POJ 1654 Area/JudgeOnline/problem?id=1654知识点:利用有向面积(叉积)计算多边形面积POJ 1265 Area/JudgeOnline/problem?id=1265POJ 2954 Triangle/JudgeOnline/problem?id=2954Pick公式的应用,多边形与整点的关系。

相关文档
最新文档