北大ACM-题型分类

合集下载

acm数学竞赛试题

acm数学竞赛试题

acm数学竞赛试题
ACM数学竞赛试题通常涉及各种数学领域,包括但不限于代数、几何、概率统计和组合数学等。

以下是一些经典的ACM数学竞赛试题:
1. 平面上n个点的k距离和最小值问题:给定平面上n个点,对于每个点,计算它到其他所有点的距离,然后求出这些距离中的k个最小值。

问题是:如何有效地计算这k个最小值?
2.最长公共子序列问题:给定两个序列,找出它们的最长公共子序列。

例如,对于序列
A = [1, 2, 3, 4] 和
B = [2, 3, 4, 5],最长公共子序列是[2, 3, 4]。

3. 凸包问题:给定平面上的一组点,找到一个最小的凸多边形,使得这个多边形能够包含这组点中的所有点。

4. 最短路问题:给定一个有向图,其中每条边都有一个非负的权重,找出图中任意两点之间的最短路径。

5. 子集和问题:给定一个正整数数组和一个目标值,判断数组中是否存在和为目标值的两个非空子集。

例如,给定数组[1, 2, 3, 4] 和目标值7,判断是否存在两个子集,它们的和分别为7。

以上只是ACM数学竞赛试题的一部分,实际上还有更多涉及数学各个领域的题目。

要提高解决这类问题的能力,需要不断练习和研究。

大学ACM考试题目及作业答案整理

大学ACM考试题目及作业答案整理

ACM作业与答案整理1、平面分割方法:设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。

#include <iostream.h>int f(int n){if(n==1) return 2;else return f(n-1)+2*(n-1);}void main(){int n;while(1){cin>>n;cout<<f(n)<<endl;}}2、LELE的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.编程全部的满足要求的涂法.#include<iostream.h>int f(int n){if(n==1) return 3;else if(n==2) return 6;else return f(n-1)+f(n-2)*2;}void main(){int n;while(1){cin>>n;cout<<f(n)<<endl;}}3、北大ACM(1942)Paths on a GridTime Limit: 1000MS Memory Limit: 30000K DescriptionImagine you are attending your math lesson at school. Once again, you are bored because your teacher tells things that you already mastered years ago (this time he's explaining that (a+b)2=a2+2ab+b2). So you decide to waste your time with drawing modern art instead.Fortunately you have a piece of squared paper and you choose a rectangle of size n*m on the paper. Let's call this rectangle together with the lines it contains a grid. Starting at the lower left corner of the grid, you move your pencil to the upper right corner, taking care that it stays on the lines and moves only to the right or up. The result is shown on the left:Really a masterpiece, isn't it? Repeating the procedure one more time, you arrive with the picture shown on the right. Now you wonder: how many different works of art can you produce?InputThe input contains several testcases. Each is specified by two unsigned 32-bit integers n and m, denoting the size of the rectangle. As you can observe, the number of lines of the corresponding grid is one more in each dimension. Input is terminated by n=m=0.OutputFor each test case output on a line the number of different art works that can be generated using the procedure described above. That is, how many paths are there on a grid where each step of the path consists of moving one unit to the right orone unit up? You may safely assume that this number fits into a 32-bit unsigned integer.Sample Input5 41 10 0Sample Output1262#include<iostream>using namespace std;longlong f(long long m, long long n){if(n==0) return 1;else return f(m-1,n-1)*m/n;}int main(){longlongm,n;while(scanf("%I64d %I64d",&n,&m) &&n+m){printf("%I64d\n",f(m+n,min(m,n)));}return 0;}1、(并查集)若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。

北大ACM训练课程点

北大ACM训练课程点

ACM/ICPC竞赛中用到的大量算法,包括:组合数学、数论、图论、计算几何、高级数据结构等。

北京大学
课程内容共八个专题,除理论知识外还包括精选例题讲解:
7.14 数据结构(一): 线段树,树状数组,二维线段树
7.15 数学题:组合数学,数论等
7.16 数据结构(二): 并查集, DFA, Trie图等
7.17 若干图论问题:最小生成树最短路强连通分量、桥和割点等
7.21 计算几何:线与线求交,线与面求交,求凸包,半平面求交等
7.22 搜索:深搜,广搜,剪枝,A*算法
7.24 动态规划
7.24 网络流算法:基本的网络流算法,Dinic算法,带上下界的网络流,最小费用
流。

北京大学OJ题目分类

北京大学OJ题目分类

ACM 题型算法分类题目均来自:/JudgeOnline/主流算法:1.搜索//回溯2.DP(动态规划)3.贪心4.图论//Dijkstra、最小生成树、网络流5.数论//解模线性方程6.计算几何//凸壳、同等安置矩形的并的面积与周长7.组合数学//Polya定理8.模拟9.数据结构//并查集、堆10.博弈论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 1111d 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 2386 1010,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题型

3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)
六.数学
(1)组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系. (POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问题
(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用). (poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多边形的内核(半平面交)(poj3130,poj3335)
(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
(2)记录状态的动态规划. (POJ3254,poj2411,poj1185)
(3)树型动态规划(poj2057,poj1947,poj2486,poj3140)
六.数学
(1)组合数学:
1.容斥原理.
2.抽屉原理.
3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).
五.动态规划
(1)需要用数据结构优化的动态规划. (poj2754,poj3378,poj3017)
(2)四边形不等式理论.
(3)较难的状态DP(poj3133)
六.数学
(1)组合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕论.
----------------------------------------------------------------------------------------------- -----------------------------------补充 Dp状态设计与方程总结

acm构造题

acm构造题

acm构造题
当谈到构造题时,有许多不同类型的ACM构造问题。

以下是一些常见的ACM构造题目类型和解决方法:
1.排列组合构造:这类问题通常要求你构造一个满足某种条件的排列或组合。

解决这类问题的关键是理解条件并找到一种满足条件的构造方法。

可以使用递归、迭代或其他数学技巧来解决这类问题。

2.图论构造:这类问题涉及到构建满足某些图论性质的图。

常见的图论构造问题包括树的构造、连通图的构造、二分图的构造等。

解决这类问题通常需要理解图论的基本概念和性质,并使用合适的算法进行构造。

3.数据结构构造:这类问题要求你构造一个满足某种数据结构性质的数据结构。

例如,构造一个满足平衡二叉搜索树性质的树,或者构造一个满足堆性质的数组。

解决这类问题通常需要对特定数据结构的性质和操作进行了解,并设计相应的构造方法。

4.数学构造:这类问题要求你构造一个满足某种数学性质的对象。

例如,构造一组满足特定方程的整数,或者构造一种满足特定性质的数列。

解决这类问题通常需要运用数学知识和技巧,并找到合适的构造方法。

对于ACM构造题目,关键是理解问题的要求和条件,并设计一个满足条件的构造方法。

可以根据问题的性质选择适当的算法、数据结构或数学技巧来解决问题。

在解题过程中,需要注意时间复杂度和空间复杂度的控制,以确保算法的效率和正
确性。

另外,多进行思维训练和练习,熟悉不同类型的构造问题,能够提高解决问题的能力。

最新北大ACM-题型分类

最新北大ACM-题型分类

11、排序 (4)22、搜索、回溯、遍历 (4)33、历法 (5)44、枚举 (5)55、数据结构的典型算法 (6)66、动态规划 (6)77、贪心 (8)88、模拟 (8)99、递归 (8)1010、字符串处理 (9)1111、数论 (9)1212、几何有关的题目 (9)1313、任意精度运算、数字游戏、高精度计算 (10)1414、概率统计 (10)1515、小费用最大流、最大流 (10)1616、压缩存储的DP (11)1717、最长公共子串(LCS) (11)1818、图论及组合数学 (11)1919、博弈类 (16)2020、简单、模拟题 (17)2121、匹配 (24)2222、经典 (24)2323、趣味 (25)2424、很繁的题 (26)2525、难题 (27)2626、多解题 (27)2727、Note: (28)282930主流算法:32331.搜索//回溯34352.DP(动态规划)36373.贪心384.图论//Dijkstra、最小生成树、网络流39405.数论//解模线性方程41426.计算几何//凸壳、同等安置矩形的并的面积与周长43447.组合数学//Polya定理45468.模拟47489.数据结构//并查集、堆495010.博弈论5153541、排序55561423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 572380, 1318, 1877,58591928, 1971, 1974, 1990, 2001, 2002, 2092, 2379,60611002(需要字符处理,排序用快排即可) 1007(稳定的排序) 2159(题意较62难懂) 2231 2371(简单排6364序) 2388(顺序统计算法) 2418(二叉排序树)65662、搜索、回溯、遍历67681022 1111 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 692378 238670711010,1011,1018,1020,1054,1062,1256,1321,1363,1501,72731650,1659,1664,1753,2078,2083,2303,2310,232974简单:1128, 1166, 1176, 1231, 1256, 1270, 1321, 1543, 1606, 1664, 1731, 761742, 1745, 1847,77781915, 1950, 2038, 2157, 2182, 2183, 2381, 2386, 2426,79不易:1024, 1054, 1117, 1167, 1708, 1746, 1775, 1878, 1903, 1966, 2046, 802197, 2349,81推荐:1011, 1190, 1191, 1416, 1579, 1632, 1639, 1659, 1680, 1683, 1691, 821709, 1714, 1753,83841771, 1826, 1855, 1856, 1890, 1924, 1935, 1948, 1979, 1980, 2170, 2288, 852331, 2339,86872340,1979(和迷宫类似) 1980(对剪枝要求较高)88893、历法90911008 2080 (这种题要小心)92934、枚举94951012,1046, 1387, 1411, 2245, 2326, 2363, 2381,1054(剪枝要求96较高),1650 (小数的精9798度问题)991005、数据结构的典型算法101102容易:1182, 1656, 2021, 2023, 2051, 2153, 2227, 2236, 2247, 2352, 2395, 103不易:1145, 1177, 1195, 1227, 1661, 1834,104推荐:1330, 1338, 1451, 1470, 1634, 1689, 1693, 1703, 1724, 1988, 2004, 1052010, 2119, 2274,1061071125(弗洛伊德算法) ,2421(图的最小生成树)1081096、动态规划1101111037 A decorative fence、1121131050 To the Max、1141151088 滑雪、1161171125 Stockbroker Grapevine、1181191141 Brackets Sequence、1201211159 Palindrome、1221231160 Post Office、1241251163 The Triangle、1261271458 Common Subsequence、1281291579 Function Run Fun、1301311887 Testing the CATCHER、1321331953 World Cup Noise、1341352386 Lake Counting1361377、贪心1381391042, 1065, 1230, 1323, 1477, 1716, 1784,1328 1755(或用单纯形方法),1402054,1017, 1328,1411421862, 1922 ,2054, 2209, 2313, 2325, 2370。

ACM题目分类

ACM题目分类
三.数据结构.
(1)串 (poj1035,poj3080,poj1936)
(2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)
(3)简单并查集的应用.
(4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)
(3)点集最小圆覆盖.
(4)对踵点(poj2079)
八.综合题.
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
同时由于个人练习的时候可能有些偏向性,可能上面的总结不是很全,还请大家提出和指正,而且由于ACM的题目中专门针对某个算法的题目可能比较少出现,所以上面的分类中的题有可能有多种解法或者是一些算法的综合,这都不会影响大家做题,希望练习的同学能够认真,扎实地训练,做到真正的理解算法,掌握算法. 同时在论坛上还有许多前辈的分类,总结,大家也可以按自己的情况采用.注意FTP上有很多的资料,希望大家好好地利用.
目的). (poj2823)
(4)左偏树(可合并堆).
(5)后缀树(非常有用的数据结构,也是赛区考题的热点).
(poj3415,poj3294)
四.搜索
(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(5)杂题.
(poj1870,poj3296,poj3286,poj1095)
七.计算几何学.
(1)坐标离散化.
(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用).
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)

acm程序设计大赛试题

acm程序设计大赛试题

acm程序设计大赛试题ACM程序设计大赛试题是计算机科学领域中的一项重要竞赛活动,旨在选拔和培养具有优秀编程能力和创新思维的学生。

这项比赛既考察参赛选手解决实际问题的能力,又对他们的编程技巧、算法设计和计算机知识有着较高的要求。

本文将介绍ACM程序设计大赛试题的特点和题目类型。

一、ACM程序设计大赛试题的特点ACM程序设计大赛试题具有以下几个特点:1. 实际问题背景:ACM程序设计大赛试题往往以实际问题为基础,模拟真实世界中的场景,让选手能够将所学知识应用到实际中去。

2. 多样性:ACM程序设计大赛试题涵盖了多个领域的问题,如图论、动态规划、贪心算法等,选手需要具备广泛的知识储备和灵活的思维方式。

3. 时间限制:ACM程序设计大赛试题通常要求选手在有限的时间内解决问题,这既考验了选手对问题的理解能力,也考察了他们的编程速度和应变能力。

二、ACM程序设计大赛试题的题目类型ACM程序设计大赛试题的题目类型多种多样,以下是其中几个常见的类型:1. 编程题:选手需要根据题目要求,设计算法并编写代码解决问题。

这类题目旨在考察选手的编程能力和算法设计思维。

2. 选择题:选手需要在给定的选项中选择正确答案,这类题目常常涉及到基础的计算机知识和数据结构。

3. 填空题:选手需要根据题目要求,在给定的空格中填入适当的代码或数值,这类题目考察选手对编程语言和计算机原理的理解程度。

4. 简答题:选手需要对给定问题进行理论分析,并进行文字解释或证明,这类题目考察选手的理解能力和表达能力。

三、ACM程序设计大赛试题的难度ACM程序设计大赛试题的难度各有不同,通常分为初级、中级和高级三个层次,以满足不同年级和专业背景的选手需求。

初级试题注重基础知识和算法简单实现,中级试题涉及到较为复杂的数据结构和算法设计,高级试题则对选手的编程能力和创新思维提出更高要求。

四、参加ACM程序设计大赛的意义参加ACM程序设计大赛对学生有着重要的意义:1. 锻炼编程能力:参加ACM程序设计大赛能够提升选手的编程技巧和实际问题解决能力。

北大ACM题分类

北大ACM题分类

北大ACM-题型分类经典1011(搜索好题)1012(学会打表)10131019(它体现了很多此类问题的特点)1050(绝对经典的dp)1088(dp好题)1157(花店经典的dp)1163(怎么经典的dp那么多呀)1328(贪心)1458(最长公共子序列)1647(很好的真题考临场分析准确和下手迅速)1654(学会多边形面积的三角形求法)1655(一类无根树的dp问题)1804(逆序对)2084(经典组合数学问题)2187(用凸包求最远点对求出凸包后应该有O(N)的求法可我就是调不出来)2195(二分图的最佳匹配)2242(计算几何经典)2295(等式处理)2353(dp 但要记录最佳路径)2354(立体解析几何)2362(搜索好题)2410(读懂题是关键)2411(经典dp)趣味1067(很难的数学但仔细研究是一片广阔的领域)1147(有O(n)的算法需要思考)1240(直到一棵树的先序和后序遍历那么有几种中序遍历呢dp)1426(是数论吗错是图论!)1648(别用计算几何用整点这个特点绕过精度的障碍吧)1833(找规律)1844(貌似dp或是搜索其实是道有趣的数学题)1922(贪心哈哈)22312305(不需要高精度噢)2328(要仔细噢)2356(数论知识)2359(约瑟夫问题变种)2392(有趣的问题)很繁的题100110081087(构图很烦还有二分图的最大匹配)1128(USACO)124513291550(考的是读题和理解能力)1649(dp)2200(字符串处理+枚举)2358(枚举和避免重复都很烦)2361(仔细仔细再仔细)难题1014(数学证明比较难但有那种想法更重要)1037(比较难的dp)1405(高精度算法也分有等级之分不断改进吧)2002(不知道有没有比O(n^2*logn)更有的算法)2054(极难很强的思考能力)2085(组合数学)2414(dp 但要剪枝)2415(搜索)2423(计算几何+统计)多解题1002(可以用排序也可以用统计的方法)1338(搜索和dp都可以)1664(搜索和dp都练一练吧)2082(这可是我讲的题噢)2352(桶排和二叉树都行)Note:1011: 很经典的剪支1014: 难在数学上1017: 严格的数学证明貌似不容易1021: 有点繁考察对图形进行各种旋转的处理1083: 巧妙的思考角度1150: 分奇偶讨论 lg(n)算法1218: 三行就够了虽然简单但也有优劣之别1505: 二分加贪心1654: 做法也许很多吧本人用有向面积做的1674: 计算圈的个数(算是graph 吧) 1700: 数学证明不容易1742: O(m*n)的算法1863: 要耐心地慢慢写…^_^1988: 并查集2051: 堆2078: 不难但剪支可以做到很好2082::O(n) 你想到了吗?2084: 卡特兰数2182: 线段树2195: 最小费用最大流2234: 经典博弈算法2236: 并查集2299: 二分思想2395: Kruskal 最小生成树的拓展2406: KMP2411: 用二进制串来表示状态。

北京大学ACM暑期课讲义-lcc-博弈

北京大学ACM暑期课讲义-lcc-博弈
– 如果当前是我的回合,无论怎么做,轮到对方时, 对方都存在一种必胜策略,那么当前我面对的局面 就是必败局面
• 例:取石子问题
– 有一堆n个石子 两人轮流取 每次可以取1..m个 没得取的判负 在游戏中,n不断变化,m是定值 一个局面可以用当前的石子数n来表示 n = 0 必败 n = 1..m都是必胜局面 n = m+1 是必败局面(为什么?) n = m+2.. 2m+1 是必胜局面(为什么?)
– 附加问题:先手必胜时,输出当前一步可选 步
• 最终局面都是P局面 • 对于一个局面,若至少有一种操作使它变为P局 面,则它是N局面
– 如果当前是我的回合,我有一种操作选择,使得下 回合对方面对的局面是个必输局面,那么我的局面 就是必胜局面 – 问题:如何寻找这一步操作选择?(输出解)
• 对于一个局面,无论如何操作都使它变为N局面, 则它是P局面
• 双方每步可以从并行存在的多个子游戏中选择 一个操作
– 维度可以进一步变得更多 – 可能存在一个子游戏,由同一个玩家连续两次对其 操作
• 对sg函数来说:怎么变都无所谓,它只关心所 有子局面的异或值
– Sg(x)的变量x永远是一维的。
竞赛中的博弈题策略
• 利用最简单的N-P图染色来判定 • 博弈搜索:用搜索方式来对图染色
• 同样可以用拓扑序对节点计算sg值
SG函数与NP局面的关系
• 初始节点(必须是P节点)没有出边, sg = 0 • 若v有边指向某sg(vi) = 0的vi,则sg(v)>0 • 若v没有边指向某sg(vi) = 0的vi,则sg(v) =0
• 所有P节点sg = 0 • 所有N节点sg > 0
– 可以看做α-β剪枝的特例

ACM题目分类

ACM题目分类

-----------------------------最优化问题------------------------------------- ----------------------常规动态规划SOJ1162 I-KeyboardSOJ1685 ChopsticksSOJ1679 GangstersSOJ2096 Maximum SubmatrixSOJ2111 littleken bgSOJ2142 Cow ExhibitionSOJ2505 The County FairSOJ2818 QQ音速SOJ2469 Exploring PyramidsSOJ1833 Base NumbersSOJ2009 Zeros and OnesSOJ2032 The Lost HouseSOJ2113 数字游戏SOJ2289 A decorative fenceSOJ2494 ApplelandSOJ2440 The days in fzkSOJ2494 ApplelandSOJ2515 Ski LiftSOJ2718 BookshelfSOJ2722 Treats for the CowsSOJ2726 Deck of CardsSOJ2729 Space ElevatorSOJ2730 Lazy CowsSOJ2713 Cut the SequenceSOJ2768 BombSOJ2779 Find the max (I) (最大M子段和问题)SOJ2796 Letter DeletionSOJ2800 三角形SOJ2804 Longest Ordered Subsequence (II)SOJ2848 River Hopscotch(二分)SOJ2849 Cow Roller CoasterSOJ2886 Cow WalkSOJ2896 AlphacodeSOJ2939 bailey's troubleSOJ2994 RSISOJ3037 Painting the ballsSOJ3072 ComputersSOJ3078 windy's "K-Monotonic"SOJ3084 windy's cake IVSOJ3104 Game(注意大数运算,高精度)SOJ3110 k Cover of LineSOJ3111 k Median of LineSOJ3123 Telephone WireSOJ3142 Unfriendly Multi Permutation SOJ3213 PebblesSOJ3219 Cover UpSOJ3263 FunctionSOJ3264 Evil GameSOJ3339 graze2SOJ3341 SkiSOJ3352 The Baric BovineSOJ3503 Banana BoxesSOJ3633 Matches's GameSOJ3636 理想的正方形SOJ3711 Mountain RoadSOJ3723 Robotic Invasionnankai1134 Relation Orderingsrm150--div1--500----------------背包问题SOJ2222 Health PowerSOJ2749 The Fewest CoinsSOJ2785 Binary PartitionsSOJ2930 积木城堡SOJ3172 FishermanSOJ3300 Stockholm CoinsSOJ3360 Buying HaySOJ3531 Number Pyramids----------------状态DPSOJ2089 lykooSOJ2768 BombSOJ2819 AderSOJ2842 The TSP problemSOJ3025 Artillery(状态DP)SOJ3088 windy's cake VIIISOJ3183 Fgjlwj's boxesSOJ3259 Counting numbersSOJ3262 Square Fields(二分+状态DP) SOJ3371 Mixed Up CowsSOJ3631 Shopping Offers----------------树状DPSOJ 1870 Rebuilding RoadsSOJ 2136 Apple(树形依赖背包n*C算法)SOJ 2514 Milk Team SelectSOJ 2199 Apple TreeSOJ 3295 Treeland ExhibitionSOJ 3635 World Cup 2010hdoj1561 The more, The BetterPKU1655 Balancing ActPKU3107 GodfatherPKU3345 Bribing FIPAPKU2378 Tree CuttingPKU3140 Contestants DivisionPKU3659 Cell Phone Network---------------配合数据结构的优化DPSOJ 2702 AlannaSOJ 2978 TasksSOJ 3234 Finding SeatsSOJ 3540 股票交易-------------- 斜率优化SOJ 3710 特别行动队SOJ 3734 搬家SOJ 3736 Lawrence of Arabia---------------四边形不等式SOJ 1702 Cutting SticksSOJ 2775 Breaking Strings--------------- 最优化之排序(思考两个元素之间的先后关系,以此得出一个二元比较关系,并验证此关系可传递,反对称,进而排序)SOJ2509 The Milk QueueSOJ2547 cardsSOJ2850 Protecting the FlowersSOJ2957 Setting ProblemsSOJ3167 ComputerSOJ3331 Cards(2547加强版)SOJ3327 Dahema's Computer(通过此题学会排序)-----------------最优化之必要条件枚举(思考最优解所具有的性质,得出最优解的一个强必要条件,在此基础上枚举)SOJ3317 FGJ's PlaneSOJ3429 Food portion sizes--------------------------------贪心---------------------------------------SOJ1078 BlueEyes' ScheduleSOJ1203 Pass-MurailleSOJ1673 Gone FishingSOJ2574 pieSOJ2645 Buy One Get One FreeSOJ2701 In a CycleSOJ2876 Antimonotonicity(经典模型 O(n)算法)SOJ3343 Tower--------------------------------搜索--------------------------------------- SOJ1106 DWeepSOJ1626 squareSOJ2061 8 puzzleSOJ2485 SudokuSOJ1045 SticksSOJ2736 FliptileSOJ2771 Collecting StonesSOJ2715 Maze BreakSOJ2518 Magic Cow ShoesSOJ2829 binary strings(双向BFS)SOJ3005 Dropping the stonesSOJ3136 scu07t01的迷宫(BFS预处理然后枚举交汇点)SOJ3330 Windy's Matrix(BFS)--------------------------------DFA---------------------------------------- ---------------状态矩阵SOJ1826 Number SequenceSOJ1936 FirepersonsSOJ2552 Number of TilingsSOJ2919 Matrix Power Series (学习矩阵的快速乘法从此开始)SOJ2920 Magic BeanSOJ3021 Quad TilingSOJ3046 Odd Loving BakersSOJ3176 E-stringSOJ3246 Tiling a Grid With DominoesSOJ3323 K-Satisfied NumbersSOJ3337 Wqb's Word----------------DFA+DPSOJ1112 Repeatless Numbers(DFA+二分)SOJ2913 Number SubstringSOJ2826 Apocalypse SomedaySOJ3128 windy和水星 -- 水星数学家 1SOJ3182 Windy numbers---------------------------------图论-----------------------------------------------------------最短路SOJ1697 Cashier EmploymentSOJ2325 Word TransformationSOJ2427 Daizi's path systemSOJ2468 CatcusSOJ2751 Wormholes(SPFA判断负圈回路的存在性)SOJ2932 道路SOJ3160 Clear And Present DangerSOJ3335 Windy's Route(最短路径的分层图思想)SOJ3346 Best Spot(N^3放心的写)SOJ3423 Revamping Trails---------------------查分约束SOJ1687 Intervals---------------------最小生成树SOJ1169 NetworkingSOJ2198 HighwaysSOJ3366 Watering HoleSOJ3427 Dark roads---------------------强连通分支SOJ2832 Mars city---------------------2-SATSOJ3535 Colorful DecorationHDU3062 Party---------------------拓扑排序SOJ1075 BlueEyes and Apples (II)---------------------无向连通图上的割点和割边问题SOJ1935 ElectricityWHU145 Railway---------------------二分图的匹配------------------最大匹配SOJ1183 Girls and BoysSOJ1186 CoursesSOJ2035 The Tiling ProblemSOJ2077 Machine ScheduleSOJ2160 Optimal MilkingSOJ2342 Rectangles(Beloved Sons 模型)SOJ2472 Guardian of DecencySOJ2681 平方数 2SOJ2737 AsteroidsSOJ2764 Link-up GameSOJ2806 LED DisplaySOJ2958 Weird FenceSOJ3043 Minimum CostSOJ3038 Beloved Sons(简单贪心一下)SOJ3453 Stock ChartsZOJ3265 Strange Game---------------最佳匹配SOJ1981 Going HomeWHU1451 Special Fish---------------------最近公共祖先问题SOJ1187 Closest Common AncestorsSOJ1677 How far awaySOJ3023 NetworkSOJ3098 Bond---------------------其他SOJ3013 treeSOJ3056 Average distance(树上的DFS)---------------------------------网络流------------------------------------- ---------------------最大流POJ 1273 Drainage DitchesPOJ 1274 The Perfect Stall (二分图匹配)POJ 1698 Alice's ChancePOJ 1459 Power NetworkPOJ 2112 Optimal Milking (二分)POJ 2455 Secret Milking Machine (二分)POJ 3189 Steady Cow Assignment (枚举)POJ 1637 Sightseeing tour (混合图欧拉回路)POJ 3498 March of the Penguins (枚举汇点)POJ 1087 A Plug for UNIXPOJ 1149 Pigs (构图题)ZOJ 2760 How Many Shortest Path (边不相交最短路的条数)POJ 2391 Ombrophobic Bovines (必须拆点,否则有BUG)WHU 1124 Football Coach (构图题)SGU 326 Perspective (构图题,类似于 WHU 1124)UVa 563 CrimewaveUVa 820 Internet BandwidthPOJ 3281 Dining (构图题)POJ 3436 ACM Computer FactoryPOJ 2289 Jamie's Contact Groups (二分)SGU 438 The Glorious Karlutka River =) (按时间拆点)SGU 242 Student's Morning (输出一组解)SGU 185 Two shortest (Dijkstra 预处理,两次增广,必须用邻接阵实现,否则 MLE) HOJ 2816 Power LinePOJ 2699 The Maximum Number of Strong Kings (枚举+构图)ZOJ 2332 GemsJOJ 2453 Candy (构图题)SOJ 2414 Leapin' LizardsSOJ 2835 Pick Up PointsSOJ 3312 Stockholm KnightsSOJ 3353 Total Flow--------------------最小割SOJ2662 PlaygroundSOJ3106 Dual Core CPUSOJ3109 Space flightSOJ3107 SelectSOJ3185 Black and whiteSOJ3254 Rain and FgjSOJ3134 windy和水星 -- 水星交通HOJ 2634 How to earn moreZOJ 2071 Technology Trader (找割边)HNU 10940 CoconutsZOJ 2532 Internship (找关键割边)POJ 1815 Friendship (字典序最小的点割集)POJ 3204 Ikki's Story I - Road Reconstruction (找关键割边)POJ 3308 ParatroopersPOJ 3084 Panic RoomPOJ 3469 Dual Core CPUZOJ 2587 Unique Attack (最小割的唯一性判定)POJ 2125 Destroying The Graph (找割边)ZOJ 2539 Energy MinimizationZOJ 2930 The Worst ScheduleTJU 2944 Mussy Paper (最大权闭合子图)POJ 1966 Cable TV Network (无向图点连通度)HDU 1565 方格取数(1) (最大点权独立集)HDU 1569 方格取数(2) (最大点权独立集)HDU 3046 Pleasant sheep and big big wolfPOJ 2987 Firing (最大权闭合子图)SPOJ 839 Optimal Marks (将异或操作转化为对每一位求最小割)HOJ 2811 Earthquake Damage (最小点割集)2008 Beijing Regional Contest Problem A Destroying the bus stations ( BFS 预处理 )(http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=4322)ZOJ 2676 Network Wars (参数搜索)POJ 3155 Hard Life (参数搜索)ZOJ 3241 Being a Hero-----------------有上下界ZOJ 2314 Reactor Cooling (无源汇可行流)POJ 2396 Budget (有源汇可行流)SGU 176 Flow Construction (有源汇最小流)ZOJ 3229 Shoot the Bullet (有源汇最大流)HDU 3157 Crazy Circuits (有源汇最小流)-----------------最小费用流HOJ 2715 Matrix3HOJ 2739 The Chinese Postman ProblemPOJ 2175 Evacuation Plan (消一次负圈)POJ 3422 Kaka's Matrix Travels (与 Matrix3 类似)POJ 2516 Minimum Cost (按物品种类多次建图)POJ 2195 Going HomePOJ 3762 The Bonus Salary!BUAA 1032 Destroying a PaintingPOJ 2400 Supervisor, Supervisee (输出所有最小权匹配)POJ 3680 IntervalsHOJ 2543 Stone IVPOJ 2135 Farm TourSOJ 3186 SegmentsSOJ 2927 终极情报网SOJ 3634 星际竞速HDU 3376 Matrix Again-----------------------------------数据结构--------------------------------- -----------------------------------基础数据结构----------------------栈SOJ2511 MooooSOJ3085 windy's cake V(经典栈与单调性的结合)SOJ3279 hm 与 zx 的故事系列2SOJ3329 Maximum Submatrix II(转化为上面两题的模型)---------------------双端队列SOJ2978 TasksSOJ3139 Sliding Window(双端队列最经典的应用)SOJ3636 理想的正方形-------------------- --------------高级数据结构---------------------线段树SOJ1862 Choice PearsSOJ2057 The manager's worrySOJ2249 Mayor's postersSOJ2309 In the Army NowSOJ2436 Picture puzzle gameSOJ2556 Find the PermutationSOJ2562 The End of CorruptionSOJ2719 Corral the Cows(线段树+二分)SOJ2740 Balanced LineupSOJ2745 零序列SOJ2776 Matrix SearchingSOJ2808 Thermal Death of the UniverseSOJ2822 Buy TicketsSOJ2937 TetrisSOJ2938 Apple Tree(先DFS获得欧拉序列)SOJ2965 capitally playersSOJ2968 Matrix(二维线段树)SOJ3019 Count ColorSOJ3022 Difference Is Beautiful( RMQ+二分经典模型)SOJ3086 windy's cake VI(二维线段树)SOJ3099 A Simple Problem with IntegersSOJ3248 MousetrapSOJ3321 Windy's Sequence IISOJ3370 Light SwitchingSOJ3640 Special Subsequence---------------------树状数组SOJ2309 In the Army Now---------------------归并排序思想SOJ2906 Ultra-QuickSortSOJ2431 Cows distribute food(利用归并排序求逆序数:nlogn) SOJ2497 Number sequenceSOJ2559 What is the Rank?SOJ2728 MooFestSOJ3009 Stones for AmySOJ3010 K-th NumberSOJ3147 K-th number---------------------并查集SOJ1824 The SuspectsSOJ1953 keySOJ2245 Ubiquitous ReligionsSOJ2389 Journey to TibetSOJ2438 PetSOJ2490 Math teacher's testPOJ2832 How many pairs?POJ2821 Auto-Calculation MachineSOJ2979 食物链SOJ3282 Kingdom of HeavenSOJ3417 Skyscrapers------------------------块状链表SOJ3032 Big StringSOJ3035 反转序列----------------------------------- 字符串---------------------后缀数组SOJ1948 sekretarkaSOJ3045 Long Long MessageSOJ3075 回文子串SOJ3296 Windy's S---------------------KMPSOJ2652 OulipoSOJ2307 String MatchingSOJ3014 Seek the Name, Seek the FameSOJ3596 Article Decryption--------------------trie树SOJ3076 相同字符串SOJ3336 DiarySOJ3596 Article Decryption---------------------------------组合数学及数论----------------------------- SOJ1839 Relatives(Euler函数)SOJ1942 FotoSOJ2714 Mountains (II)SOJ2668 C(n,k)SOJ2666 分解 n!SOJ2106 GCD & LCM InverseSOJ2498 Count primeSOJ2238 Let it Bead(置换群-polya定理的应用)SOJ2924 完美交换(置换群)SOJ2638 Cow Sorting(置换群)-------------费马小定理SOJ 3578 H1N1's Problem--------------------------容斥原理SOJ3191 Free squareSOJ3082 windy's cake IISOJ3502 The Almost Lucky NumbersSOJ3547 Coprime----------------------------------博弈论------------------------------------SOJ1128 控制棋SOJ1866 Games(诡异的博弈)SOJ2197 A Funny GameSOJ2188 A multiplication gameSOJ2403 Black and white chessSOJ2477 Simple GameSOJ2687 草稿纸 2SOJ2688 草稿纸 3SOJ2836 Pick Up Points IISOJ2845 JangeSOJ2922 A New Tetris GameSOJ2993 NimSOJ3066 JohnSOJ3132 windy和水星 -- 水星游戏 1SOJ3133 windy和水星 -- 水星游戏 2SOJ3174 Good gameSOJ3307 Stockholm GameSOJ3446 Nim or not NimSOJ3461 Nim-kSOJ3463 Ordered NimSOJ3468 Flip CoinsSOJ3548 gameSOJ3584 Baihacker and Oml-----------------------------------计算几何---------------------------------SOJ1138 WallSOJ1102 Picnic。

ACM中的数学问题

ACM中的数学问题

Stein算法
另一种算法:Stein算法 渐近时间,空间复杂度均与欧几里德算法 相同 原理:gcd(ka,kb)=k*gcd(a,b) 最大特点:只有移位和加减法计算,避免了 大整数的取模运算
Stein算法
Stein算法(假设0<=b<a): r←0 while b>0 do if a偶,b偶 then a←a>>1 b←b>>1 r←r+1 else if a ,b then a a>>1 a偶,b奇 a←a>>1 else if a奇,b偶 then b←b>>1 else if a奇,b奇 then a←(a-b)>>1 if a<b then 交换a,b return a<<r
整除的性质
性质5 a=kb±c => a,b的公因数与b,c的 公因数完全相同 利用性质3(a|b,a|c => a|kb±lc)证明: 3(a|b,a|c a|kb lc) : 对于任意的a,b的公因数d a=kb±c => c=±(a-kb) => d|c
最大公约数 最小公倍数
求最大公约数:欧几里德算法(辗转相除 法,短除法) 原理:若a≡r(mod b),则 gcd(a,b)=gcd(b,r) 可利用性质5(a=kb±c => a,b的公因数与 b,c的公因数完全相同)证明 最小公倍数:lcm(a,b)=a*b/gcd(a,b)
欧拉定理
若a和m互质,则aφ(m)≡1(mod m) 证明:
设φ(m)个正整数r1,r2,...,rφ(m)满足:ri与m互质,对于 任意i≠j,ri≠rj(mod m) 由于a与m互质,可以证明ar1,ar2,...,arφ(m)依然满足 上述条件 这样就有(ar1)(ar2)...(arφ(m) ) ≡r1r2...rφ(m)(mod m) 而(ar1)(ar2)...(arφ(m) ) ≡aφ(m) r1r2...rφ(m)(mod m) 两边同时约去r1r2...rφ(m)即得到欧拉定理

acm

acm
32
堆(优先队列)
优点:
• 动态维护一组数据中最小(大)的一个 • 实现简单
• 数组维护
<priority_queue>
33
例题: 积水
• 一个长方形网格包含了n*m块地,每块地上面有1个 长方体。每一个长方形盖住了一块地,地的面积是1 平方英寸。相邻的地上的长方体之间没有空隙。一场 大雨降临了这个建筑物,在建筑物的某些区域有积水 产生。 • 给各方格高度, 求积水总量
12
网络资源
• • http://acm.timus.ru • http://acm.sgu.ru • /usacogate • • /bbs/index.php
是多少?
39
• 字符串: • 方法一: 折叠法:即把所有字符的ASCII码加起来 • 方法二:ELFhash函数
int ELFhash( char* key ) { unsigned int h = 0; while( *key ){ h = ( h << 4 ) + *key++; unsigned long g = h & 0Xf0000000L; if ( g ) h ^= g >> 24; h &= -g; } return h % M; }
ACM竞赛 常用算法 &数据结构
浙江大学微ቤተ መጻሕፍቲ ባይዱ技术俱乐部 彭鹏
1
1、ACM/ICPC简介
2、竞赛中常见的16种题型 3、时空复杂度的分析 4、竞赛中基本的数据结构与算法 5、ZOJ入门
2
ACM/ICPC简介
• ACM
– Association for Computing Machinery

acm考试题目及答案

acm考试题目及答案

acm考试题目及答案1. 题目:给定一个整数数组,找出数组中没有出现的最小的正整数。

答案:首先,我们可以遍历数组,将每个元素与它的索引对应起来,即如果数组中存在数字`i`,则将其与索引`i-1`对应。

然后,我们可以遍历数组,检查索引`i`是否与数组中第`i`个元素相等。

如果不相等,则索引`i`对应的值就是没有出现的最小正整数。

如果所有元素都与其索引对应,则没有出现的最小正整数为数组长度加1。

2. 题目:实现一个函数,检查一个链表是否为回文结构。

答案:我们可以将链表的前半部分反转,然后比较反转后的前半部分与后半部分是否相同。

如果相同,则链表是回文的;如果不相同,则不是。

具体步骤如下:首先找到链表的中点,然后反转前半部分链表,接着比较反转后的前半部分与后半部分是否相同,最后将前半部分链表再次反转回来。

3. 题目:给定一个只包含 '(' 和 ')' 的字符串,判断字符串是否有效。

答案:我们可以使用一个栈来解决这个问题。

遍历字符串中的每个字符,如果遇到'(',则将其压入栈中;如果遇到')',则检查栈是否为空,如果为空,则字符串无效;如果不为空,则弹出栈顶元素。

遍历结束后,如果栈为空,则字符串有效;如果栈不为空,则字符串无效。

4. 题目:找出一个无序数组中第k大的元素。

答案:我们可以使用快速选择算法来解决这个问题。

首先,选择一个元素作为基准,然后将数组分为两部分:一部分是大于基准的元素,另一部分是小于基准的元素。

根据基准的位置,我们可以确定第k大的元素是在基准的左边还是右边,然后递归地在相应的部分中寻找第k大的元素。

重复这个过程,直到找到第k大的元素。

5. 题目:给定一个字符串,找出其中不含有重复字符的最长子串的长度。

答案:我们可以使用滑动窗口的方法来解决这个问题。

维护一个窗口,记录窗口内字符的出现情况。

遍历字符串,如果遇到重复的字符,则移动窗口的左边界,直到窗口内没有重复的字符。

acm 二分查找题型

acm 二分查找题型

acm 二分查找题型二分查找是一种高效的查找算法,常用于ACM竞赛中。

在这篇文章中,我们将深入探讨ACM二分查找题型,包括基本原理、常见变体以及实际应用。

## 基本原理二分查找是一种通过将查找区间不断缩小来逼近查找目标的算法。

其基本原理如下:1. 初始化左右边界,通常开始时左边界为0,右边界为数组长度减一。

2. 计算中间位置mid,取mid处的值与目标值进行比较。

3. 如果mid处的值等于目标值,则返回mid。

4. 如果mid处的值大于目标值,则更新右边界为mid-1,继续查找左半部分。

5. 如果mid处的值小于目标值,则更新左边界为mid+1,继续查找右半部分。

6. 重复步骤2-5,直到左边界大于右边界,说明查找失败。

## 变体问题在ACM竞赛中,二分查找常常涉及一些变体问题,下面介绍几种常见的变体题型:### 1. 查找第一个值等于给定值的元素如果题目要求找到第一个值等于给定值的元素,我们可以稍作修改。

当mid处的值等于目标值时,我们需要判断其前一个位置是否也等于目标值。

若是,则说明目标值在左半部分,更新右边界为mid-1;若否,则说明mid为第一个值等于给定值的元素。

### 2. 查找最后一个值等于给定值的元素与上一个问题类似,当mid处的值等于目标值时,我们需要判断其后一个位置是否也等于目标值。

若是,则说明目标值在右半部分,更新左边界为mid+1;若否,则说明mid为最后一个值等于给定值的元素。

### 3. 查找第一个大于等于给定值的元素如果题目要求找到第一个大于等于给定值的元素,我们可以稍作修改。

当mid处的值大于等于目标值时,我们需要判断其前一个位置是否小于目标值。

若是,则说明目标值在左半部分,更新右边界为mid-1;若否,则说明mid即为第一个大于等于给定值的元素。

### 4. 查找最后一个小于等于给定值的元素与上一个问题类似,当mid处的值小于等于目标值时,我们需要判断其后一个位置是否大于目标值。

简便算法的题型 ACM 题型算法分类

简便算法的题型 ACM 题型算法分类

ACM 题型算法分类题目均来自主流算法搜索//回溯DP(动态规划)贪心图论//Dijkstra、最小生成树、网络流数论//解模线性方程计算几何//凸壳、同等安置矩形的并的面积与周长组合数学//Polya定理模拟数据结构//并查集、堆10.博弈论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 1111d 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 2386 1010,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 Stockpoker 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国际大学生程序设计竞赛(The ACM International Collegiate Programming Contest)是全球范围内最具声誉的大学生程序设计竞赛之一。

每年都有来自世界各地的顶尖大学参加这一比赛,他们将在规定的时间内解决一系列编程问题,以展示他们的算法和编程技巧。

历年来,ACM大赛的程序题目一直是各个大学的计算机科学学生学习和训练的重要素材。

ACM大赛历年程序题的设计旨在考察参赛者的算法设计与实现能力。

这些问题通常具有一定的难度,涵盖了多种算法和数据结构。

在ACM大赛中,选手需要在规定的时间内,根据给定的输入数据,编写程序解决问题,并输出正确的结果。

ACM大赛历年程序题通常分为多个分类,下面将列举几个常见的分类及其特点:1. 图论问题:图论是ACM大赛中常见的题目类型之一。

这类问题涉及到对图的建模和算法设计。

参赛者需要熟悉常见的图观念和算法,如图的遍历、最短路径、最小生成树等。

2. 动态规划问题:动态规划是ACM大赛中常用的解决问题的方法之一。

动态规划问题通常需要设计状态转移方程,并根据之前已经计算过的结果来推导最优解。

这类问题要求选手具备良好的逻辑思维和数学推导能力。

3. 贪心算法问题:贪心算法是一种简单而高效的算法思想。

贪心算法问题一般需要选手根据问题的特性,每次都选择当前情况下最优的解决方案。

这类问题在实际应用中非常常见,选手需要能够灵活地运用贪心策略解决问题。

4. 字符串处理问题:字符串处理问题涉及到对字符串进行各种操作,如匹配、查找、替换等。

选手需要熟练掌握字符串的各种操作和常见算法,如KMP算法、Boyer-Moore算法等。

5. 数学问题:数学问题在ACM大赛中也是常见的题目类型。

这类问题通常涉及到各种数学公式和算法,如排列组合、素数判定、快速幂等。

选手需要具备扎实的数学知识和计算能力。

ACM大赛历年程序题的学习对于计算机科学学生来说是非常重要的。

北京大学 acm程序设计 图论讲义

北京大学 acm程序设计 图论讲义
22
for (w=G->first(v); w<G->n(); w = G>next(v,w))
if (G->getMark(w) == UNVISITED) { G->setMark(w, VISITED); Q->enqueue(w); }
PostVisit(G, v); // Take action }}
Q Q
31
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
Q Q
Q
32
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
Q Q
33
Q () ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
求解算法
穷举法 贪心法 深度/广度优先搜索
图和树的搜索 回溯法(深度优先)
递归
分治
动态规划法
55
谢谢!
56
49
动态规划法的思想
自底向上构造 在原问题的小子集中计算 每一步列出局部最优解,并用一张
表保留这些局部最优解,以避免重 复计算 子集越来越大,最终在问题的全集 上计算,所得出的就是整体最优 解。
50
Fib(1)=Fib(2)=1
Fibonacci数列 Fib(n)=Fib(n-1) + Fib (n-2)
23
八数码 深度优先搜索
1
23 184 765
2
c
3
283 164 75
283 14 765
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、排序.............................................................................................. 错误!未定义书签。

2、搜索、回溯、遍历...................................................................... 错误!未定义书签。

3、历法.............................................................................................. 错误!未定义书签。

4、枚举.............................................................................................. 错误!未定义书签。

5、数据结构的典型算法.................................................................. 错误!未定义书签。

6、动态规划.................................................................................... 错误!未定义书签。

7、贪心.............................................................................................. 错误!未定义书签。

8、模拟.............................................................................................. 错误!未定义书签。

9、递归.............................................................................................. 错误!未定义书签。

:10、字符串处理................................................................................ 错误!未定义书签。

11、数论............................................................................................ 错误!未定义书签。

12、几何有关的题目........................................................................ 错误!未定义书签。

13、任意精度运算、数字游戏、高精度计算................................ 错误!未定义书签。

14、概率统计.................................................................................... 错误!未定义书签。

15、小费用最大流、最大流............................................................ 错误!未定义书签。

16、压缩存储的DP .......................................................................... 错误!未定义书签。

17、最长公共子串(LCS) .............................................................. 错误!未定义书签。

18、图论及组合数学........................................................................ 错误!未定义书签。

19、博弈类........................................................................................ 错误!未定义书签。

|20、简单、模拟题............................................................................ 错误!未定义书签。

21、匹配............................................................................................ 错误!未定义书签。

22、经典............................................................................................ 错误!未定义书签。

23、趣味............................................................................................ 错误!未定义书签。

24、很繁的题.................................................................................... 错误!未定义书签。

25、难题............................................................................................ 错误!未定义书签。

26、多解题........................................................................................ 错误!未定义书签。

27、Note: ........................................................................................... 错误!未定义书签。

:主流算法:1.搜索心4.图论论算几何合数学拟9.数据结构弈论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。

8、模拟@容易:1006, 1008, 1013, 1016, 1017, 1169, 1298, 1326, 1350, 1363, 1676, 1786, 1791, 1835, 1970, 2317, 2325, 2390,不易:1012, 1082, 1099, 1114, 1642, 1677, 1684, 1886,1281 1928 2083 2141 20159、递归1664~10、字符串处理1488, 1598, 1686, 1706, 1747, 1748, 1750, 1760, 1782, 1790, 1866, 1888, 1896, 1951, 2003, 2121, 2141, 2145, 2159, 2337, 2359, 2372, 2406, 2408, 1016 1051 1126 1318 1572 1917 1936 2039 2083 2136 2271 2317 2330,2121 240311、数论;1006,1014,1023,1061,1152,1183,1730,226212、几何有关的题目凸包:1113, 1228, 1794, 2007, 2187,1113 wall,2187 beauty contest容易:1319, 1654, 1673, 1675, 1836, 2074, 2137, 2318,不易:1685, 1687, 1696, 1873, 1901, 2172, 2333,《13、任意精度运算、数字游戏、高精度计算1001 1023 1047 1060 1079 1131 1140 1142 1207 1220 1284 1289 1306 1316 1338 1405 1454 15031504 1519 1565 1650 1969 2000 2006 2081 2247 2262 2305 2316 23891001, 1220, 1405, 1503,1001(高精度乘法)2413(高精度加法,还有二分查找)14、概率统计1037,1050{15、小费用最大流、最大流2195 going home,2400 supervisor, supervisee,1087 a plug for UNIX,1149 PIGS,1273 drainage ditches,1274 the perfect stall,1325 machine schedule,1459 power network,2239 selecting courses16、压缩存储的DP\1038 bugs integrated inc,1185 炮兵阵地,2430 lazy cow17、最长公共子串(LCS)1080 human gene functions,1159 palindrome,1458 common subsequence,2192 zipper 18、图论及组合数学2421 Constructing Roads、、2369 Permutations、2234 Matches Game、2243 Knight Moves、2249 Binomial Showdown、2255 Tree Recovery、—2084 Game of Connections、1906 Three powers、1833 排列、1850 Code、1562 Oil Deposits、/1496 Word Index、1306 Combinations、1125 Stockbroker Grapevine、1129 Channel Allocation、1146 ID Codes、>1095 Trees Made to Order、找规律2247 Humble Numbers、2309 BST、2346 Lucky tickets、2370 Democracy in danger、,2365 Rope、2101 Honey and Milk Land 2028 When Can We Meet、2084 Game of Connections、1915 Knight Moves、[1922 Ride to School、1941 The Sierpinski Fractal、1953 World Cup Noise、1958 Strange Towers of Hanoi、1969 Count on Canton、)1806 Manhattan 2025、1809 Regetni、1844 Sum、1870 Bee Breeding、1702 Eva\'s Balance、,1728 A flea on a chessboard、1604 Just the Facts、1642 Stacking Cubes、1656 Counting Black、1657 Distance on Chessboard、·1662 CoIns、1663 Number Steps、1313 Booklet Printing、1316 Self Numbers、1320 Street Numbers、@1323 Game Prediction、1338 Ugly Numbers、1244 Slots of Fun、1250 Tanning Salon、1102 LC-Display、,1147 Binary codes、1013 Counterfeit Dollar、19、博弈类1067 取石子游戏、1740 A New Stone Game、,2234 Matches Game、1082 Calendar Game 、2348 Euclid\'s Game、2413 How many Fibs、2419 Forest》20、简单、模拟题1001 Exponentiation 、1002 487-3279、1003 Hangover 、1701 Dissatisfying Lift、2301 Beat the Spread!、$2304 Combination Lock、2328 Guessing Game、2403 Hay Points 、2406 Power Strings、2339 Rock, Scissors, Paper、*2350 Above Average、2218 Does This Make Me Look Fat、2260 Error Correction、2262 Goldbach\'s Conjecture、2272 Bullseye、`2136 Vertical Histogram、2174 Decoding Task、2183 Bovine Math Geniuses、2000 Gold Coins、2014 Flow Layout、{2051 Argus、2081 Calendar、1918 Ranking List、1922 Ride to School、1970 The Game、.1972 Dice Stacking、1974 The Happy Worm、1978 Hanafuda Shuffle、1979 Red and Black、1617 Crypto Columns、/1666 Candy Sharing Game、1674 Sorting by Swapping、1503 Integer Inquiry、1504 Adding Reversed Numbers、1528 Perfection、—1546 Basically Speaking、1547 Clay Bully、1573 Robot Motion、1575 Easier Done Than Said、1581 A Contesting Decision、!1590 Palindromes、1454 Factorial Frequencies、1363 Rails、1218 THE DRUNK JAILER、1281 MANAGER、>1132 Border、1028 Web Navigation、21、初等数学1003 Hangover、1045 Bode Plot、?1254 Hansel and Grethel、1269 Intersecting Lines、1401 Factorial、1410 Intersection、2363 Blocks 、^2365 Rope、2242 The Circumference of the Circle、2291 Rotten Ropes、2295 A DP Problem、2126 Factoring a Polynomial、!2191 Mersenne Composite Numbers、2196 Specialized Four-Digit Numbers、1914 Cramer\'s Rule、1835 宇航员、1799 Yeehaa!、&1607 Deck、1244 Slots of Fun、1269 Intersecting Lines、1299 Polar Explorer、1183 反正切函数的应用、—21、匹配1274, 1422, 1469, 1719, 2060, 2239,------------------------------------------------------------------------------------------- 22、经典1011(搜索好题)1012(学会打表)》10131019(它体现了很多此类问题的特点)1050(绝对经典的dp)1088(dp好题)1157(花店,经典的dp)1163(怎么经典的dp那么多呀)1328(贪心)1458(最长公共子序列)1647(很好的真题,考临场分析准确和下手迅速)1654(学会多边形面积的三角形求法):1655(一类无根树的dp问题)1804(逆序对)2084(经典组合数学问题)2187(用凸包求最远点对,求出凸包后应该有O(N)的求法,可我就是调不出来)2195(二分图的最佳匹配)2242(计算几何经典)2295(等式处理)2353(dp,但要记录最佳路径)2354(立体解析几何)2362(搜索好题)(2410(读懂题是关键)2411(经典dp)23、趣味1067(很难的数学,但仔细研究,是一片广阔的领域)1147(有O(n)的算法,需要思考)1240(直到一棵树的先序和后序遍历,那么有几种中序遍历呢dp)1426(是数论吗错,是图论!)1648(别用计算几何,用整点这个特点绕过精度的障碍吧)1833(找规律)》1844(貌似dp或是搜索,其实是道有趣的数学题)1922(贪心,哈哈)22312305(不需要高精度噢)2328(要仔细噢)2356(数论知识)2359(约瑟夫问题变种)2392(有趣的问题)24、很繁的题~100110081087(构图很烦,还有二分图的最大匹配)1128(USACO)124513291550(考的是读题和理解能力)1649(dp)2200(字符串处理+枚举)2358(枚举和避免重复都很烦)*2361(仔细仔细再仔细)25、难题1014(数学证明比较难,但有那种想法更重要)1037(比较难的dp)1405(高精度算法也分有等级之分,不断改进吧)2002(不知道有没有比O(n^2*logn)更有的算法)2054(极难,很强的思考能力)2085(组合数学)2414(dp,但要剪枝)2415(搜索)2423(计算几何+统计)26、多解题1002(可以用排序,也可以用统计的方法)1338(搜索和dp都可以)1664(搜索和dp都练一练吧)2082(这可是我讲的题噢)2352(桶排和二叉树都行)27、Note:1011: 很经典的剪支1014: 难在数学上1017: 严格的数学证明貌似不容易1021: 有点繁,考察对图形进行各种旋转的处理1083: 巧妙的思考角度1150: 分奇偶讨论,lg(n)算法1218: 三行就够了,虽然简单,但也有优劣之别1505: 二分加贪心1654: 做法也许很多吧,本人用有向面积做的1674: 计算圈的个数(算是graph 吧)1700: 数学证明不容易1742: O(m*n)的算法1863: 要耐心地慢慢写…^_^1988: 并查集2051: 堆2078: 不难,但剪支可以做到很好2082::O(n),你想到了吗2084: 卡特兰数2182: 线段树2195: 最小费用最大流2234: 经典博弈算法2236: 并查集2299: 二分思想2395: Kruskal 最小生成树的拓展2406: KMP2411: 用二进制串来表示状态。

相关文档
最新文档