北大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各大OJ题目分类
id page section no title18 1.2.1例题1盒子里的气球148359 3.1.2例题2管道问题149387 3.3.1例题1篱笆问题150388 3.3.1例题2合金制造问题151401 3.3.4例题1点集的直径29 1.2.1例题2图书馆313 1.2.2例题1钓鱼1438 1.3.1引例小球钟——时间与运动1540 1.3.1引例笑脸1644 1.3.2引例猜猜我想说什么1750 1.3.3引例勇士Ilya的故事1852 1.3.3例题1蚂蚁和瓢虫413 1.2.2例题2照亮的山景515 1.2.2例题3镜子盒2468 1.3.5例题1电缆2569 1.3.5引例黑白按钮2670 1.3.5例题2煎饼2772 1.3.5引例傻瓜Ivanushka的故事619 1.2.3例题1折纸痕720 1.2.3例题2三色多边形820 1.2.3例题3聪明的学生923 1.2.3例题4丢失的数1028 1.2.4例题1月亮之眼1129 1.2.4例题2Yanghee的数表1231 1.2.4例题3原子链1336 1.3.1引例铁轨1438 1.3.1引例小球钟——时间与运动1540 1.3.1引例笑脸1644 1.3.2引例猜猜我想说什么1750 1.3.3引例勇士Ilya的故事1852 1.3.3例题1蚂蚁和瓢虫1954 1.3.3例题2隔三遍历2061 1.3.4引例拯救大兵瑞恩的故事2162 1.3.4引例英雄和公主的故事2264 1.3.4引例电气工程师2367 1.3.5引例爱丽丝和精灵的故事2468 1.3.5例题1电缆2569 1.3.5引例黑白按钮2670 1.3.5例题2煎饼2772 1.3.5引例傻瓜Ivanushka的故事2875 1.3.5例题3士兵排队2976 1.3.5例题4最小可靠交换3080 1.4.1例题1代码等式3181 1.4.1例题2团伙3281 1.4.1例题3银河英雄传说3382 1.4.1例题4可爱的猴子3483 1.4.1例题5蜗牛3589 1.4.2例题1积水3689 1.4.2例题2赛车3790 1.4.2例题3可怜的奶牛3891 1.4.2例题4最轻巧的语言3997 1.4.3例题1马尔可夫链4099 1.4.3例题2促销41102 1.4.3例题3采矿42108 1.4.4例题1火星地图43110 1.4.4例题2最长回文子串44113 1.5.1例题1括号序列45116 1.5.1例题2棋盘分割46117 1.5.1例题3决斗47117 1.5.1例题4“舞蹈家”怀特先生48119 1.5.1例题5积木游戏49123 1.5.2例题1方块消除50123 1.5.2例题2公路巡逻51125 1.5.2例题3并行期望值52126 1.5.2例题4高性能计算机53130 1.5.2例题5模板匹配54131 1.5.2例题6不可分解的编码55133 1.5.2例题7青蛙的烦恼56134 1.5.2例题8排列问题57135 1.5.2例题9最优排序二叉树58138 1.5.2例题10Bugs公司59139 1.5.2例题11迷宫统计60142 1.5.2例题12贪吃的九头龙61150 1.5.3问题1最长公共子序列问题62150 1.5.3例题1排列的LCS问题63151 1.5.3问题2最长上升子序列问题64151 1.5.3问题3最优二分检索树65152 1.5.3问题4任务调度问题66155 1.5.3例题2序列分割67160 1.6.2引例加密网格68162 1.6.2引例最优程序69164 1.6.2引例旋转的玩具70169 1.6.3引例编辑书稿71171 1.6.3引例埃及分数72175 1.6.4引例三角形大战73178 1.6.4例题1L游戏74180 1.6.5例题1带宽75181 1.6.5例题2小木棍76181 1.6.5例题3生日蛋糕77183 1.6.5例题4汽车问题78184 1.6.5例题5Betsy的旅行79189 1.6.6例题1外公的难题80193 1.6.7例题1篮球冠军赛81204 2.1例题1 “麻烦”子82204 2.1例题2沙漠83205 2.1例题3浪人苏比84206 2.1例题4好动的佳佳85207 2.1例题5细菌86208 2.1例题6X行星87220 2.2.1例题1佳佳的困惑88220 2.2.1例题2除法表达式89221 2.2.1例题3数字游戏90221 2.2.1例题4fibonacci质数91222 2.2.1例题5神秘数92225 2.2.2例题1自动取款机93226 2.2.2例题2人类学家的烦恼94226 2.2.2例题3征服者的军营95233 2.2.3例题1仓库问题96233 2.2.3例题2二进制Stirling数97234 2.2.3例题3荒岛野人98240 2.3.2例题1单色三角形99243 2.3.2引例互不攻击的象100245 2.3.3例题1传球游戏101247 2.3.3例题2无聊的排序102252 2.3.3例题3多边形103257 2.3.4例题1装饰栅栏104258 2.3.4例题2Pibonacci数105259 2.3.4例题3巧克力106274 2.4.2例题1绣花107275 2.4.2例题2漆门108275 2.4.2例题3原始基因109276 2.4.2例题4超级翻转110281 2.4.3例题1地图的五着色111282 2.4.3例题2滑雪112283 2.4.3例题3水平可见线段的三角形113287 2.4.4例题1往返路114287 2.4.4例题2连通图编号问题115287 2.4.4例题3跳舞蝇116289 2.4.4例题4参观洞穴117291 2.4.4例题5公主和英雄118293 2.4.4例题6通讯员119295 2.4.4例题7幼儿园小朋友分组120299 2.5.1引例岛国121300 2.5.1引例野餐计划122303 2.5.1引例地震123304 2.5.2引例罗密欧与朱丽叶124306 2.5.2引例出纳员的雇佣125308 2.5.2例题1瘦陀陀与胖陀陀126309 2.5.2例题2新桥127310 2.5.2例题3穿越沙漠128311 2.5.2例题4隐型石头129312 2.5.2例题5双调路径130315 2.5.3引例奶牛的新年晚会131317 2.5.3引例航天计划问题132318 2.5.3引例终极情报网133323 2.5.3例题1圆桌吃饭问题134324 2.5.3例题2数字游戏135324 2.5.3例题3混合图的欧拉回路136325 2.5.3例题4家园137326 2.5.3例题5道路扩容138329 2.5.4引例神奇的魔术师139331 2.5.4引例任务安排140332 2.5.4引例棋盘上的骑士141333 2.5.4引例丘比特的烦恼142333 2.5.4引例魔术球问题143334 2.5.4例题1皇家卫士144336 2.5.4例题2固定分区的内存管理145336 2.5.4例题3玩具兵146338 2.5.4例题4千年盛典147353 3.1.2例题1房间最短路问题148359 3.1.2例题2管道问题149387 3.3.1例题1篱笆问题150388 3.3.1例题2合金制造问题151401 3.3.4例题1点集的直径152402 3.3.4例题2最小外接矩形153404 3.3.4例题3点集分割154410 3.4.1例题1锡刀154410 3.4.2例题2锡刀154410 3.4.3例题3锡刀154410 3.4.4例题4锡刀154410 3.4.5例题5锡刀154410 3.4.6例题6锡刀154410 3.4.7例题7锡刀154410 3.4.8例题8锡刀154410 3.4.9例题9锡刀154410 3.4.10例题10锡刀154410 3.4.11例题11锡刀154410 3.4.12例题12锡刀problem sourceACM/ICPC World Finals 2002. Problem A. Balloons in a BoxACM/ICPC Regional Contest Central Europe 1995. Problem D. Pipe(Classic)(Classic)(Classic)ACM/ICPC Regional Contest Northeast Europe 2001. Problem G. Library. Author: Elena Kryuchkova, Roman Elizarov ACM/ICPC Regional Contest East Central North America 1999. Problem G. Gone FishingACM/ICPC World Finals 1995. Problem B. Tempus et mobilius Time and MotionInternet Problem Solving Contest 2001. Problem F. A Censored SmileIOI2002 Practice Session Problem 2. String from substringsUSU high school programming contest 2001. Problem G.Ilya Murumetz. Author: Katz O.E.Polish Olympiad in Informatics 2001. Stage II Problem 4. Ants and the ladybugCentral European Olympiad in Informatics 2000. Day 2 Problem 3. Enlightened LandscapeBaltic Olympiad in Informatics 2001. Day 1 Problem 3. MirrorACM/ICPC Regional Contest Northeast Europe 2001. Problem C. Cable Master. Author: Vladimir Pinaev, Roman Elizaro Internet Problem Solving Contest 2000. Problem F. PuzzleUniversity of Duke Programming Contest 1993. Problem C. Stacks of FlapjacksUSU high school programming contest 2001. Problem A. Gaby Ivanushka. Author: Shamgunov N.ACM/ICPC Regional Contest South Pacific 1992. Problem F. Paper FoldingThird USU personal programming contest, Ekaterinburg, Russia, February 16, 2002. Author:Dmitry Filimonenkov CTSC 2001. Day 1 Problem 3. Clever. Author: Li Zhang(Classic)Balkan Olympiad in Informatics 1998. Day 2 Problem 2. Evil EyesACM/ICPC Regional Contest Asia-Taejon 2000. Problem H. Lost ListsCentral European Olympiad in Informatics 2001. Day 1 Problem 1. ChainACM/ICPC Regional Contest Central European 1997. Problem A. RailsACM/ICPC World Finals 1995. Problem B. Tempus et mobilius Time and MotionInternet Problem Solving Contest 2001. Problem F. A Censored SmileIOI2002 Practice Session Problem 2. String from substringsUSU high school programming contest 2001. Problem G.Ilya Murumetz. Author: Katz O.E.Polish Olympiad in Informatics 2001. Stage II Problem 4. Ants and the ladybugPolish Olympiad in Informatics 1995. Stage III Problem 2. Step Traversing a TreeCTSC 1999. Day 2 Problem 3. RescueACM/ICPC Regional Contest Asia-Shanghai 1999. Problem I. Princess and HeroCentral European Olympiad in Informatics 1996. Day 2 Problem 3. ElectricianInternet Problem Solving Contest 2000. Problem C. TrollsACM/ICPC Regional Contest Northeast Europe 2001. Problem C. Cable Master. Author: Vladimir Pinaev, Roman Elizaro Internet Problem Solving Contest 2000. Problem F. PuzzleUniversity of Duke Programming Contest 1993. Problem C. Stacks of FlapjacksUSU high school programming contest 2001. Problem A. Gaby Ivanushka. Author: Shamgunov N.Central European Olympiad in Informatics 1998. Day 2 Problem 1. SolidersACM/ICPC Regional Contest Central European 2001. Problem E. ExchangesPolish Olympiad in Informatics 1998. Stage II Problem 2. Word EquationsBaltic Olympiad in Informatics 2003. Day 2 Problem 1. The GangsNOI2002 Day 1 Problem 1. Galaxy. Author: Ji LuoPolish Olympiad in Informatics 2003. Stage III Problem 1. Monkey(Classic)Polish Olympiad in Informatics 1999. Stage III Problem 6. WaterCentral European Olympiad in Informatics 2003. Day 1 Problem 3. The RaceOIBH Reminiscene Programming Contest. Problem E. Eat or Not to Eat. Author: Rujia LiuPolish Olympiad in Informatics 1998. Stage III Problem 4. The lightest languageCTSC 2001. Day 2 Problem 2. Markov. Author: Runting ShiPolish Olympiad in Informatics 2000. Stage III Problem 6. PromotionPolish Olympiad in Informatics 2001. Stage III Problem 5. GoldmineBaltic Olympiad in Informatics 2001. Day 2 Problem 2. Mars MapsACM/ICPC Regional Contest Asia-Kanpur 2001. Problem E. Viewer's Prize in F-TVACM/ICPC Regional Contest Northeast Europe 2001. Problem B. Bracket Sequence. Author: Andrew StankevichNOI99 Day 2 Problem 1. ChessPolish Olympiad in Informatics 1999. Stage I Problem 1. MusketeersACM/ICPC Regional Contest Asia-Shanghai 2000. Problem C. Dance Dance RevolutionNOI97 Day 2 Problem 2. GameIOI2003 National Training Team Originals. Author: Cailiang Liu. ModifiedCTSC2000. Day 1 Problem 3. Patrol. Author: Shenjie LiACM/ICPC Regional Contest Asia-Tehran 2001. Problem G. Parallel ExpectationIOI2001 National Training Team Winter Camp. Problem 2. HPC. Author: Xin QiCentral European Olympiad in Informatics 2001. Day 2 Problem 2. PatternsACM/ICPC World Finals 2002. Problem B. Undecodable Codes(Classic)(Classic)CTSC2001. Day 2 Problem 2. Tree. Author: Fan YangCentral European Olympiad in Informatics 2002. Day 1 Problem 1. BugsElite Problemsetters' First Contest. Problem A. Maze Statistics. Author: Derek KismanNOI2002 Day 1 Problem 3. Dragon. Modification of Internet Problem Solving Contest 2001. B. Author: Ziqing Mao (Classic)(Classic)(Classic)(Classic)IOI2002 Day 2 Problem 1. BatchBalkan Olympiad in Informatics 2003. Day 2 Problem 2. Euro. ModifiedCentral European Olympiad in Informatics 1996. Day 1 Problem 1. Encoding GridACM/ICPC Regional Contest Southwestern Europe 1996. Problem A. Optimal ProgramsACM/ICPC Regional Contest Southwestern Europe 1999. Problem E. Color HashACM/ICPC Regional Contest Asia-Kanpur 2001. Problem G. Editing a Book(Classic)ACM/ICPC Regional Contest East Central North America 1999. Problem A. Traingle WarBaltic Olympiad in Informatics 2002. Day 2 Problem 2. L game. Author: Jimmy MårdellNew Zealand Programming Contest 1991. Problem A. BandwidthACM/ICPC Regional Contest Central Europe 1995. Problem H. SticksNOI99 Day 1 Problem 3. CakeIOI94 Day 2 Problem 1. CarUSACO Computing Olympiad4th Shuguang Programming Contest. Author: Rujia LiuBaltic Olympiad in Informatics 1999. Day 1 Problem 3. BasketballUral Collegiate Programming Contest, April 2001, Perm English TourRomanian Open Contest, December 2001. Author: Mugurel Ionut AndreicaIOI99 National Training Team Originals. Author: Fangfang XiaIV Ural State University Collegiate Programming Contest. Problem G. Nikifor's Walk. Author: Dmitry Filimonenkov Internet Problem Solving Contest 2003. Problem H. Hordes of BacteriaCentral European Olympiad in Informatics 2000. Day 1 Problem 1. X-PlanetUSU Open Collegiate Programming Contest March'2001 Senior Session. Problem F. Nikifor. Author: Filimonenkov D. Baltic Olympiad in Informatics 2000. Day 2 Problem 1. DIVRandy Game. Problem D. Number Game. Author: Chong LongACM/ICPC World Finals Warm-up Contest(Oriental) 2002, Problem A. The Fibonacci Primes. Author: Shahriar Manzoor ACM/ICPC Regional Contest Southeastern European 2001. Problem C. Secret NumbersPolish Olympiad in Informatics 1998. Stage III Problem 2. ATM'sACM/ICPC Regional Contest Southwestern Europe 1999. Problem B. The Archeologists' DilemmaCentral European Olympiad in Informatics 2002. Day 1 Problem 2. ConquerTetrahedron Team Contest May 2001. Problem H. Warehouse Problem. Author: D. FilimonenkovACM/ICPC Regional Contest Central Europe 2001. Problem B. Binary Stirling Numbers.NOI2002. Day 2 Problem 1. Savages. Author: Rujia LiuPolish Olympiad in Informatics 1997. Stage III Problem 5. Monochromatic TrianglesACM/ICPC World Finals Warm-up Contest(Oriental) 2002, Problem B. Bishops. Author: Rezaul Alam ChowdhuryIOI2000 National Training Team Originals. Author: Yi GuoACM/ICPC World Finals 2002. Problem H. Silly Sort(Classic)Central European Olympiad in Informatics 2002. Day 1 Problem 3. FenceInternet Problem Solving Contest 2001. Problem G. FibonacciACM/ICPC Regional Contest Beijing 2002. Problem F. ChocolateUral Collegiate Programming Contest '99. Problem H. Cross-Stitch. Author: Zaletsky PIV Ural State University Collegiate Programming Contest. Problem F. Door Painting. Author: Magaz AsanovPolish Olympiad in Informatics 1999. Stage III Problem 5. PrimitivusIOI2003 National Training Team Originals. Author: Zhilei Xu.(Classic)Polish Olympiad in Informatics 2000. Stage I Problem 3. SkiersACM/ICPC Regional Contest Central Europe 2001. Problem H. Horizontally Visible SegmentsCentral European Olympiad in Informatics 2001. Day 1 Problem 3. Round Trip(Classic)Polish Olympiad in Informatics 2001. Stage III Problem 1. Wandering flees TrainersCentral European Olympiad in Informatics 1997. Day 1 Problem 1. CAVACM/ICPC Regional Contest Central Europe 2001. Problem A. Alice and BobPolish Olympiad in Informatics 1996. Stage I Problem 3. MessengersIV Ural State University Collegiate Programming Contest. Problem E. Partition into Groups. Author: Dmitry Filimonenko ACM/ICPC World Finals 2002. Problem E. IslandACM/ICPC Regional Contest East Central North America 2000. Problem A. PicnicUSACO Computing Olympiad US Open 2001. Problem 2. EarthquakeInternet Problem Solving Contest 1999. Problem H. Romeo and JulietACM/ICPC Regional Contest Asia-Tehran 2000. Problem G. Cashier EmploymentACM/ICPC World Finals Warm-up Contest(Occidental) 2002. Problem A. Asterix and Obelix. Author: Rezaul Alam Cho Balkan Olympiad in Informatics 2000. Day 2 Problem 1. BridgeACM/ICPC World Finals 2002. Problem C. Crossing the DesertACM/ICPC Regional Warm-up Contest 2002. Problem D. The Rock. Author: Jimmy MårdellBaltic Olympiad in Informatics 2002. Day 2 Problem 1. Bicriterial routingUSA Computing Olympiad Winter 2002. Problem 2. New Years Party. Author: Hal Burch(Classic)CTSC2001. Day 1 Problem 1. Agent. Authro: Li ZhangACM/ICPC World Finals Warm-up Contest(Occidental) 2002. Problem D. The Grand Dinner. Author: Rezaul Alam Chow UVA Monthly Contest. Problem H. The Eagles' Nest. Author: Monirul HasanACM/ICPC Regional Contest Northwestern Europe 2002. Problem G. Sightseeing tour. Author: Jimmy MårdellCTSC1999. Day 1 Problem 3. HomelandIOI2000 National Training Team Originals. Author: Li ZhangInternet Problem Solving Contest 2001. Problem H. MagicACM/ICPC Regional Contest Asia-Beijing 2002. Problem G. Machine ScheduleBaltic Olympiad in Informatics 2001. Day 2 Problem 1. KnightCTSC2000. Day 2 Problem 1. Cupid. Author: Fan YangOIBH Reminiscene Programming Contest. Problem H. Hanoi Tower Troubls Again! Author: Rujia LiuCentral European Olympiad in Informatics 2002. Day 2 Problem 2. GuardACM/ICPC World Finals 2001. Problem G. Fixed Partition Memory ManagementCTSC2002. Day 1 Problem 3. Toy. Author: Rujia LiuCTSC2003. Day 1 Problem 3. Ceremony. Author: Rujia LiuACM/ICPC Regional Contest Mid-Central North America 1996. Problem B. The doorACM/ICPC Regional Contest Central Europe 1995. Problem D. Pipe(Classic)(Classic)(Classic)ACM/ICPC Regioanl Warmup 2001. Problem F. Smallest Bounding Rectangle. Author: Rezaul Alam ChowdhuryACM/ICPC World Finals Warm-up Contest(Occidental) 2002. Problem K. The Great Divide. Author: Rezaul Alam Chow ACM/ICPC Regional Contest Central Europe 1996. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 1997. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 1998. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 1999. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2000. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2001. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2002. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2003. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2004. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2005. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2006. Problem A. Tin CutterACM/ICPC Regional Contest Central Europe 2007. Problem A. Tin Cutterdata submit how2submit n ny y uva303n nn nn ny y ural1188 y y uva757n y uva239y ny nn y ural1088 y nn ny ny y ural1184 y ny y uva120n y ural1082 y y uva177n y ural1181 y nn ny nn ny ny y uva514n y uva239y ny nn y ural1088 y ny ny nn y uva258n ny ny y ural1184 y ny y uva120n y ural1082 y ny y zju1388y ny ny ny nn ny ny ny y uva10273 y nn ny ny ny nn ny y ural1183y ny nn ny ny y uva10559y ny y zju1022y ny nn nn y ural1143n ny ny ny y uva10531y nn nn nn y uva10534(slightly modified) n y uva10304y ny nn ny y uva656n y uva704n ny ny y uva751y ny y uva140y y uva307y ny ny ny ny nn y ural1155n y ural1170y nn y ural1130y ny nn y ural1095y ny y uva10164n y uva10236y yy nn y uva701y nn y ural1107 n y zju1385 y y uva10413 y nn y uva10237 y nn nn ny ny ny y zju1363 n y ural1035 n y ural1129 y nn nn ny ny y zju1391 y nn ny ny ny y zju1384 y nn y ural1128 n ny yy ny ny y zju1420 n y uva10246 y nn nn y uva10381 y ny nn ny nn y uva10249 y y uva10546 y y zju1992 y ny ny ny y zju1364 y ny ny y uva10276 y nn ny y uva10418y ny y uva393 y y uva303 n nn nn nn y uva10173 n y uva10256 y y uva308 y y uva309 y y uva310 y y uva311 y y uva312 y y uva313 y y uva314 y y uva315 y y uva316 y y uva317 y y uva318 y y uva319。
acm常用板子题
acm常用板子题
ACM常用模板题包括但不限于:
字符串操作:如字符串匹配、字符串排序、字符串还原等题目,需要熟练掌握字符串的基本操作和常用算法。
数组操作:如数组排序、数组查找、数组分割等题目,需要熟练掌握数组的基本操作和常用算法。
树形结构:如二叉树、AVL树、红黑树等题目,需要熟练掌握树形结构的基本操作和常用算法。
图论算法:如最短路径、最小生成树、拓扑排序等题目,需要熟练掌握图论算法的基本操作和常用算法。
动态规划:如背包问题、最长公共子序列、最长递增子序列等题目,需要熟练掌握动态规划的基本操作和常用算法。
搜索算法:如深度优先搜索、广度优先搜索等题目,需要熟练掌握搜索算法的基本操作和常用算法。
数据结构:如哈希表、并查集、线段树等题目,需要熟练掌握数据结构的基本操作和常用算法。
以上是一些常见的ACM模板题,当然还有很多其他的题目类型。
要提高自己的ACM水平,需要多做题、多思考、多总结,不断拓宽自己的算法和数据结构知识面。
北大ACM训练课程点
ACM/ICPC竞赛中用到的大量算法,包括:组合数学、数论、图论、计算几何、高级数据结构等。
北京大学
课程内容共八个专题,除理论知识外还包括精选例题讲解:
7.14 数据结构(一): 线段树,树状数组,二维线段树
7.15 数学题:组合数学,数论等
7.16 数据结构(二): 并查集, DFA, Trie图等
7.17 若干图论问题:最小生成树最短路强连通分量、桥和割点等
7.21 计算几何:线与线求交,线与面求交,求凸包,半平面求交等
7.22 搜索:深搜,广搜,剪枝,A*算法
7.24 动态规划
7.24 网络流算法:基本的网络流算法,Dinic算法,带上下界的网络流,最小费用
流。
大学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;long long f(long long m, long long n){if(n==0) return 1;else return f(m-1,n-1)*m/n;}int main(){long long m,n;while(scanf("%I64d %I64d",&n,&m) && n+m){printf("%I64d\n",f(m+n,min(m,n)));}return 0;}1、北大ACM(1012)JosephTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 31213 Accepted: 11700 DescriptionThe Joseph's problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, . . ., n, standing in circle every mth is going to be executed and only the life of the last remaining person will be saved. Joseph was smart enough to choose the position of the last remaining person, thus saving his life to give us the message about the incident. For example when n = 6 and m = 5 then the people will be executed in the order 5, 4, 6, 2, 3 and 1 will be saved.Suppose that there are k good guys and k bad guys. In the circle the first k are good guys and the last k bad guys. You have to determine such minimal m that all the bad guys will be executed before the first good guy.题目大意:编号为1,2…, n的n个人排成一圈,从第一个人开始,去掉后面的第m个人,在从第m+1个人开始去掉后面第m个人,以此类推。
北京大学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题型
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构造题目类型和解决方法:
1.排列组合构造:这类问题通常要求你构造一个满足某种条件的排列或组合。
解决这类问题的关键是理解条件并找到一种满足条件的构造方法。
可以使用递归、迭代或其他数学技巧来解决这类问题。
2.图论构造:这类问题涉及到构建满足某些图论性质的图。
常见的图论构造问题包括树的构造、连通图的构造、二分图的构造等。
解决这类问题通常需要理解图论的基本概念和性质,并使用合适的算法进行构造。
3.数据结构构造:这类问题要求你构造一个满足某种数据结构性质的数据结构。
例如,构造一个满足平衡二叉搜索树性质的树,或者构造一个满足堆性质的数组。
解决这类问题通常需要对特定数据结构的性质和操作进行了解,并设计相应的构造方法。
4.数学构造:这类问题要求你构造一个满足某种数学性质的对象。
例如,构造一组满足特定方程的整数,或者构造一种满足特定性质的数列。
解决这类问题通常需要运用数学知识和技巧,并找到合适的构造方法。
对于ACM构造题目,关键是理解问题的要求和条件,并设计一个满足条件的构造方法。
可以根据问题的性质选择适当的算法、数据结构或数学技巧来解决问题。
在解题过程中,需要注意时间复杂度和空间复杂度的控制,以确保算法的效率和正
确性。
另外,多进行思维训练和练习,熟悉不同类型的构造问题,能够提高解决问题的能力。
ACM基础题目列表
题目【题目1】N皇后问题(八皇后问题的扩展)【题目2】排球队员站位问题【题目3】把自然数N分解为若干个自然数之和。
【题目4】把自然数N分解为若干个自然数之积。
【题目5】马的遍历问题。
【题目6】加法分式分解【题目7】地图着色问题【题目8】在n*n的正方形中放置长为2,宽为1的长条块,【题目9】找迷宫的最短路径。
(广度优先搜索算法)【题目10】火车调度问题【题目11】农夫过河【题目12】七段数码管问题。
【题目13】把1-8这8个数放入下图8个格中,要求相邻的格(横,竖,对角线)上填的数不连续.【题目14】在4×4的棋盘上放置8个棋,要求每一行,每一列上只能放置2个.【题目15】迷宫问题.求迷宫的路径.(深度优先搜索法)【题目16】一笔画问题【题目17】城市遍历问题.【题目18】棋子移动问题【题目19】求集合元素问题(1,2x+1,3X+1类)================================================================================================================================================================【题目】N皇后问题(含八皇后问题的扩展,规则同八皇后):在N*N的棋盘上,放置N个皇后,要求每一横行每一列,每一对角线上均只能放置一个皇后,问可能的方案及方案数。
const max=8;var i,j:integer;a:array[1..max] of 0..max; {放皇后数组}b:array[2..2*max] of boolean; {/对角线标志数组}c:array[-(max-1)..max-1] of boolean; {\对角线标志数组}col:array[1..max] of boolean; {列标志数组}total:integer; {统计总数}procedure output; {输出}var i:integer;beginwrite('No.':4,'[',total+1:2,']');for i:=1 to max do write(a[i]:3);write(' ');if (total+1) mod 2 =0 then writeln; inc(total);end;function ok(i,dep:integer):boolean; {判断第dep行第i列可放否}beginok:=false;if ( b[i+dep]=true) and ( c[dep-i]=true) {and (a[dep]=0)} and(col[i]=true) then ok:=trueend;procedure try(dep:integer);var i,j:integer;beginfor i:=1 to max do {每一行均有max种放法}if ok(i,dep) then begina[dep]:=i;b[i+dep]:=false; {/对角线已放标志}c[dep-i]:=false; {\对角线已放标志}col[i]:=false; {列已放标志}if dep=max then outputelse try(dep+1); {递归下一层}a[dep]:=0; {取走皇后,回溯}b[i+dep]:=true; {恢复标志数组}c[dep-i]:=true;col[i]:=true;end;end;beginfor i:=1 to max do begin a[i]:=0;col[i]:=true;end;for i:=2 to 2*max do b[i]:=true;for i:=-(max-1) to max-1 do c[i]:=true;total:=0;try(1);writeln('total:',total);end.【测试数据】n=8 八皇后问题No.[ 1] 1 5 8 6 3 7 2 4 No.[ 2] 1 6 8 3 7 4 2 5 No.[ 3] 1 7 4 6 8 2 5 3 No.[ 4] 1 7 5 8 2 4 6 3 No.[ 5] 2 4 6 8 3 1 7 5 No.[ 6] 2 5 7 1 3 8 6 4 No.[ 7] 2 5 7 4 1 8 6 3 No.[ 8] 2 6 1 7 4 8 3 5 No.[ 9] 2 6 8 3 1 4 7 5 No.[10] 2 7 3 6 8 5 1 4 No.[11] 2 7 5 8 1 4 6 3 No.[12] 2 8 6 1 3 5 7 4 No.[13] 3 1 7 5 8 2 4 6 No.[14] 3 5 2 8 1 7 4 6 No.[15] 3 5 2 8 6 4 7 1 No.[16] 3 5 7 1 4 2 8 6 No.[17] 3 5 8 4 1 7 2 6 No.[18] 3 6 2 5 8 1 7 4 No.[19] 3 6 2 7 1 4 8 5 No.[20] 3 6 2 7 5 1 8 4 No.[21] 3 6 4 1 8 5 7 2 No.[22] 3 6 4 2 8 5 7 1 No.[23] 3 6 8 1 4 7 5 2 No.[24] 3 6 8 1 5 7 2 4 No.[25] 3 6 8 2 4 1 7 5 No.[26] 3 7 2 8 5 1 4 6 No.[27] 3 7 2 8 6 4 1 5 No.[28] 3 8 4 7 1 6 2 5 No.[29] 4 1 5 8 2 7 3 6 No.[30] 4 1 5 8 6 3 7 2 No.[31] 4 2 5 8 6 1 3 7 No.[32] 4 2 7 3 6 8 1 5 No.[33] 4 2 7 3 6 8 5 1 No.[34] 4 2 7 5 1 8 6 3 No.[35] 4 2 8 5 7 1 3 6 No.[36] 4 2 8 6 1 3 5 7No.[37] 4 6 1 5 2 8 3 7 No.[38] 4 6 8 2 7 1 3 5No.[39] 4 6 8 3 1 7 5 2 No.[40] 4 7 1 8 5 2 6 3No.[41] 4 7 3 8 2 5 1 6 No.[42] 4 7 5 2 6 1 3 8No.[43] 4 7 5 3 1 6 8 2 No.[44] 4 8 1 3 6 2 7 5No.[45] 4 8 1 5 7 2 6 3 No.[46] 4 8 5 3 1 7 2 6No.[47] 5 1 4 6 8 2 7 3 No.[48] 5 1 8 4 2 7 3 6No.[49] 5 1 8 6 3 7 2 4 No.[50] 5 2 4 6 8 3 1 7No.[51] 5 2 4 7 3 8 6 1 No.[52] 5 2 6 1 7 4 8 3No.[53] 5 2 8 1 4 7 3 6 No.[54] 5 3 1 6 8 2 4 7No.[55] 5 3 1 7 2 8 6 4 No.[56] 5 3 8 4 7 1 6 2No.[57] 5 7 1 3 8 6 4 2 No.[58] 5 7 1 4 2 8 6 3No.[59] 5 7 2 4 8 1 3 6 No.[60] 5 7 2 6 3 1 4 8No.[61] 5 7 2 6 3 1 8 4 No.[62] 5 7 4 1 3 8 6 2No.[63] 5 8 4 1 3 6 2 7 No.[64] 5 8 4 1 7 2 6 3No.[65] 6 1 5 2 8 3 7 4 No.[66] 6 2 7 1 3 5 8 4No.[67] 6 2 7 1 4 8 5 3 No.[68] 6 3 1 7 5 8 2 4No.[69] 6 3 1 8 4 2 7 5 No.[70] 6 3 1 8 5 2 4 7No.[71] 6 3 5 7 1 4 2 8 No.[72] 6 3 5 8 1 4 2 7No.[73] 6 3 7 2 4 8 1 5 No.[74] 6 3 7 2 8 5 1 4No.[75] 6 3 7 4 1 8 2 5 No.[76] 6 4 1 5 8 2 7 3No.[77] 6 4 2 8 5 7 1 3 No.[78] 6 4 7 1 3 5 2 8No.[79] 6 4 7 1 8 2 5 3 No.[80] 6 8 2 4 1 7 5 3No.[81] 7 1 3 8 6 4 2 5 No.[82] 7 2 4 1 8 5 3 6No.[83] 7 2 6 3 1 4 8 5 No.[84] 7 3 1 6 8 5 2 4No.[85] 7 3 8 2 5 1 6 4 No.[86] 7 4 2 5 8 1 3 6No.[87] 7 4 2 8 6 1 3 5 No.[88] 7 5 3 1 6 8 2 4No.[89] 8 2 4 1 7 5 3 6 No.[90] 8 2 5 3 1 7 4 6No.[91] 8 3 1 6 2 5 7 4 No.[92] 8 4 1 3 6 2 7 5 total:92对于N皇后:┏━━━┯━━┯━━┯━━┯━━┯━━┯━━┯━━┓┃皇后N│ 4 │ 5 │ 6 │ 7│ 8 │ 9 │ 10 ┃┠───┼──┼──┼──┼──┼──┼──┼──┨┃方案数│ 2 │ 10 │ 4 │ 40 │ 92 │352 │724 ┃┗━━━┷━━┷━━┷━━┷━━┷━━┷━━┷━━┛【题目】排球队员站位问题┏━━━━━━━━┓图为排球场的平面图,其中一、二、三、四、五、六为位置编号,┃┃二、三、四号位置为前排,一、六、五号位为后排。
最新北大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题目分类
(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
大赛的程序题的例子:
1. 最短路径问题,给定一个有向带权图,求两个节点之间的最
短路径。
可以使用Dijkstra算法或者Floyd-Warshall算法来解决。
2. 字符串处理问题,给定一个字符串,要求对其进行特定的处理,比如反转、删除重复字符等。
可以使用字符串操作和遍历来解决。
3. 数组操作问题,给定一个数组,要求对其进行特定的操作,
比如排序、查找最大/最小值、计算数组的平均值等。
可以使用排序
算法、查找算法和遍历来解决。
4. 动态规划问题,给定一个问题和一组限制条件,要求找到满
足条件的最优解。
可以使用动态规划的思想,将问题拆分成子问题
并逐步求解。
5. 图论问题,给定一个图,要求对其进行特定的操作,比如查找连通分量、判断是否存在环等。
可以使用图的遍历和深度优先搜索或广度优先搜索来解决。
6. 数学问题,给定一个数学问题,要求求解或验证某个数学定理或公式。
可以使用数学运算和推导来解决。
这些只是一小部分例子,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大学生程序设计试题题目一:最大公约数(GCD)题目描述:给定两个正整数,求它们的最大公约数(GCD)。
输入两个正整数a和b(1 <= a, b <= 10^9),求它们的最大公约数。
输入格式:两个正整数,以空格分隔。
输出格式:输出一个整数,表示输入两个正整数的最大公约数。
示例:输入:14 21输出:7思路和分析:最大公约数(GCD)可以使用欧几里得算法来求解,即辗转相除法。
具体的步骤如下:1. 用较大的数除以较小的数,将得到的余数作为新的较大数。
2. 再用新的较大数除以较小数,将得到的余数作为新的较大数。
3. 如此重复,直到两个数可以整除,此时较小的数就是最大公约数。
代码实现:```cpp#include <iostream>using namespace std;int gcd(int a, int b) {if (b == 0)return a;return gcd(b, a % b);}int main() {int a, b;cin >> a >> b;int result = gcd(a, b);cout << result << endl;return 0;}```题目二:字符串反转题目描述:给定一个字符串,要求将其反转并输出。
输入一个字符串s(1 <= |s| <= 1000),输出该字符串的反转结果。
输入格式:一个字符串s,只包含大小写字母和数字。
输出格式:一个字符串,表示输入字符串的反转结果。
示例:输入:HelloWorld123输出:321dlroWolleH思路和分析:字符串反转可以使用双指针的方法来实现。
初始时,左指针指向字符串的开头,右指针指向字符串的末尾,然后交换左右指针所指向的字符,并向中间移动,直到左指针不小于右指针。
代码实现:```cpp#include <iostream>using namespace std;string reverseString(string s) {int left = 0, right = s.length() - 1; while (left < right) {swap(s[left], s[right]);left++;right--;}return s;}int main() {string s;cin >> s;string result = reverseString(s); cout << result << endl;return 0;}```题目三:字符串匹配题目描述:给定一个字符串s和一个模式串p,判断s中是否存在与p相匹配的子串。
acm试题分类
第一篇1001 这个就不用说了吧1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键10111012 简单题1013 简单题(有个小陷阱)1014 简单题1015 可以看作搜索题吧1016 经典的搜索1017 简单数学题1018 简单数学题大数阶乘后的位数1019 简单数学题最小公倍数1020 简单的字符串处理1021 找规律的数学题1022 数据结构的题(栈的应用)1023 特殊的数(Catalan Number)1024 经典DP,最大M子段和1025 经典DP,最长递增子序列(要用NLogN的方法过)1026 搜索1027 数学题(或用STL)1028 经典问题,整数拆分,用母函数做1029 简单题(一般方法容易超时)1030 简单题,可用模拟过1031 简单题1032 简单题1033 模拟题1034 Candy Sharing Game1035 模拟题1036 简单题1037 简单题,不是一般的简单1038 简单题1039 字符串处理1040 简单题,排序1041 简单题,用大数1042 大数1043 经典搜索题,八数码问题1044 稍微有点麻烦的搜索题1045 搜索题,可用匹配做1046 简单题1047 简单的大数1048 简单字符串处理1049 简单题1050 贪心1051 经典贪心,也可以用DP1052 贪心1053 贪心,关于Huffman编码1054 二分匹配1055 二分匹配1056 简单题1057 模拟题1058 经典问题,丑数,DP1059 经典问题,可以用母函数或DP(不针对题目优化都会超时)1060 数学题1061 数学题1062 简单字符串处理1063 模拟大数1064 简单题1065 简单题1066 数学题,找规律10671068 经典二分匹配1069 经典DP1070 简单题1071 简单数学题1072 搜索1073 字符串处理1074 DP1075 字典树1076 简单题10771078 DP1079 博弈(DP)1080 DP1081 经典DP1082 简单题1083 二分匹配1084 简单题1085 母函数1086 简单几何题1087 简单DP1088 字符串处理1089~1096 (练习输入输出的8个题目)1097 简单数学题1098 数学题,注意找规律1099 数学题模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 1202 1205 1209 1212(大数取模) 1216(链表)1218 1219 1225 1228 1229 1230 1234 1235 1236 1237 1239 12501256 1259 1262 1263 1265 1266 1276 1279 1282 1283 1287 1296 1302 1303 1304 1305 1306 1309 1311 1314复杂模拟搜索,递归求解1010 1016 1026 1043(双广) 1044 (BFS+DFS) 1045 1067 1072 1104 1175 1180 1195 1208 1226 1238 1240 1241 1242 1258 1271 1312 1317博奕1079动态规划1003 1024 1025 1028 1051 1058 1059 1069 1074 1078 1080 1081 1085 1087 1114 1158 1159 1160 1171 1176 1181 1203 1224 1227 1231 1244 1248 1253 1254 1283 1300数学,递推,规律1005 1006 1012 1014 1018 1019 1021 1023 1027 1030 1032 1038 1041 1046 1059 1060 1061 1065 1066 1071(微积分) 1097 1098 1099 1100 1108 1110 1112 1124 1130 1131 1132 1134 1141 1143 1152 1155(物理题) 1163 1165 1178 1194 1196(lowbit) 1210 1214 1200 1221 1223 1249 1261 1267 1273 1290 1291 1292 1294 1297 1313 1316数论1164 1211 1215 1222 1286 1299计算几何1086 1115 1147贪心1009 1052 1055 1257并查集1198 1213 1232 1272线段树,离散化1199 1255图论最短路相关的问题 1142 1162 1217 1301二分图问题 1054 1068 1150 1151 1281其他1053 (huffman) 1102(MST) 1116(欧拉回路) 1233(MST) 1269(强连通)数据结构1103(堆+模拟)1166(数状树组)1247 1251 1285(Topol) 1298汉诺塔系列1207最近顶点对 10071500 DP1501 DP1502 DP or 记忆化1503 DP1504 模拟1505 DP1506 DP1507 2分匹配1508 记忆化容易点1509 模拟1510 DP1511 搜索可以过1512 左偏树1513 DP1514 DP1515 DFS1516 DP1517 博奕1518 搜索1519 DP(不确定)1520 树状DP1521 数学题,母函数什么的。
acm大学生程序试题及答案
acm大学生程序试题及答案1. 题目:字符串反转描述:给定一个字符串,编写一个函数来将字符串中的字符按相反的顺序重新排列。
输入:一个字符串输出:反转后的字符串答案:```pythondef reverse_string(s):return s[::-1]```2. 题目:寻找最大数描述:给定一个整数数组,找出数组中的最大数。
输入:一个整数数组输出:数组中的最大数答案:```pythondef find_max(nums):return max(nums)```3. 题目:两数之和描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的索引(从1开始计数)。
输入:一个整数数组和一个目标值输出:两个数的索引,如果没有则返回空数组答案:```pythondef two_sum(nums, target):num_to_index = {}for i, num in enumerate(nums):complement = target - numif complement in num_to_index:return [num_to_index[complement] + 1, i + 1] num_to_index[num] = ireturn []```4. 题目:无重复字符的最长子串描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
输入:一个字符串输出:最长子串的长度答案:```pythondef length_of_longest_substring(s):char_map = {}start = max_length = 0for end in range(len(s)):if s[end] in char_map:start = max(start, char_map[s[end]] + 1)char_map[s[end]] = endmax_length = max(max_length, end - start + 1)return max_length```5. 题目:整数转罗马数字描述:将一个整数转换为罗马数字。
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 PermutationSOJ3213 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 game如不慎侵犯了你的权益,请联系告知!SOJ3584 Baihacker and Oml-----------------------------------计算几何---------------------------------SOJ1138 WallSOJ1102 Picnic(本资料素材和资料部分来自网络,仅供参考。
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处的值小于等于目标值时,我们需要判断其后一个位置是否大于目标值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北大acm试题分类(转)版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logs/13929723.html经过我初步的整理,一个比较完整的归类已经完成,现在发布给大家,希望可以方便大家练习,如有不足,还请大家见谅,这个可能会随时有更新,请大家注意.如果有什么要求或补充的可以跟贴提出,OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)(3)最小生成树算法(prim,kruskal)(poj1789,poj2485,poj1258,poj3026)(4)拓扑排序 (poj1094)(5)二分图的最大匹配 (匈牙利算法) (poj3041,poj3020)(6)最大流的增广路算法(KM算法). (poj1459,poj3436)三.数据结构.(1)串 (poj1035,poj3080,poj1936)(2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)(3)简单并查集的应用.(4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)(5)哈夫曼树(poj3253)(6)堆(7)trie树(静态建树、动态建树) (poj2513)四.简单搜索(1)深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)五.动态规划(1)背包问题. (poj1837,poj1276)(2)型如下表的简单DP(可参考lrj的书 page149):1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533)2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) (poj3176,poj1080,poj1159)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.进制位.3.同余模运算.(poj2635, poj3292,poj1845,poj2115)(3)计算方法.1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)七.计算几何学.(1)几何公式.(2)叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039)(3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)(poj1408,poj1584)(4)凸包. (poj2187,poj1113)中级:一.基本算法:(1)C++的标准模版库的应用. (poj3096,poj3007)(2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)二.图算法:(1)差分约束系统的建立和求解. (poj1201,poj2983)(2)最小费用最大流(poj2516,poj2516,poj2195)(3)双连通分量(poj2942)(4)强连通分支及其缩点.(poj2186)(5)图的割边和割点(poj3352)(6)最小割模型、网络流规约(poj3308, )三.数据结构.(1)线段树. (poj2528,poj2828,poj2777,poj2886,poj2750)(2)静态二叉检索树. (poj2482,poj2352)(3)树状树组(poj1195,poj3321)(4)RMQ. (poj3264,poj3368)(5)并查集的高级应用. (poj1703,2492)(6)KMP算法. (poj1961,poj2406)四.搜索(1)最优化剪枝和可行性剪枝(2)搜索的技巧和优化 (poj3411,poj1724)(3)记忆化搜索(poj3373,poj1691)五.动态规划(1)较为复杂的动态规划(如动态规划解特别的施行商问题等)(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)(2)记录状态的动态规划. (POJ3254,poj2411,poj1185)(3)树型动态规划(poj2057,poj1947,poj2486,poj3140)六.数学(1)组合数学:1.容斥原理.2.抽屉原理.3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).4.递推关系和母函数.(2)数学.1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)2.概率问题. (poj3071,poj3440)3.GCD、扩展的欧几里德(中国剩余定理) (poj3101)(3)计算方法.1.0/1分数规划. (poj2976)2.三分法求解单峰(单谷)的极值.3.矩阵法(poj3150,poj3422,poj3070)4.迭代逼近(poj3301)(4)随机化算法(poj3318,poj2454)(5)杂题.(poj1870,poj3296,poj3286,poj1095)七.计算几何学.(1)坐标离散化.(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用).(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)(3)多边形的内核(半平面交)(poj3130,poj3335)(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)高级:一.基本算法要求:(1)代码快速写成,精简但不失风格(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)(2)保证正确性和高效性. poj3434二.图算法:(1)度限制最小生成树和第K最短路. (poj1639)(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446(3)最优比率生成树. (poj2728)(4)最小树形图(poj3164)(5)次小生成树.(6)无向图、有向图的最小环三.数据结构.(1)trie图的建立和应用. (poj2778)(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和在线算法(RMQ+dfs)).(poj1330)(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的目的). (poj2823)(4)左偏树(可合并堆).(5)后缀树(非常有用的数据结构,也是赛区考题的热点).(poj3415,poj3294)四.搜索(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)五.动态规划(1)需要用数据结构优化的动态规划.(poj2754,poj3378,poj3017)(2)四边形不等式理论.(3)较难的状态DP(poj3133)六.数学(1)组合数学.1.MoBius反演(poj2888,poj2154)2.偏序关系理论.(2)博奕论.1.极大极小过程(poj3317,poj1085)2.Nim问题.七.计算几何学.(1)半平面求交(poj3384,poj2540)(2)可视图的建立(poj2966)(3)点集最小圆覆盖.(4)对踵点(poj2079)八.综合题.(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)同时由于个人练习的时候可能有些偏向性,可能上面的总结不是很全,还请大家提出和指正,而且由于ACM的题目中专门针对某个算法的题目可能比较少出现,所以上面的分类中的题有可能有多种解法或者是一些算法的综合,这都不会影响大家做题,希望练习的同学能够认真,扎实地训练,做到真正的理解算法,掌握算法. 同时在论坛上还有许多前辈的分类,总结,大家也可以按自己的情况采用.注意FTP上有很多的资料,希望大家好好地利用.如果同学能在明年暑假前能掌握上面大部分算法,那你也基本上达到了训练的目的,到暑假的时候你就可以选择自己比较喜欢的方面进行加深和强化,而且同学们不要觉得看算法的证明是很麻烦的事,这可以加强你的思维能力,这在ACM中也很重要.同时也希望老队员能帮助我整理习题和题目分类.同时ACM的题目是没有范围的,只能在平时中多积累多练习,多比别人多努力一点,你就会比别人多一线希望.我补充些动态规划、搜索方面的资料吧。
Dp状态设计与方程总结1.不完全状态记录<1>青蛙过河问题<2>利用区间dp2.背包类问题<1> 0-1背包,经典问题<2>无限背包,经典问题<3>判定性背包问题<4>带附属关系的背包问题<5> + -1背包问题<6>双背包求最优值<7>构造三角形问题<8>带上下界限制的背包问题(012背包)3.线性的动态规划问题<1>积木游戏问题<2>决斗(判定性问题)<3>圆的最大多边形问题<4>统计单词个数问题<5>棋盘分割<6>日程安排问题<7>最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等)<8>方块消除游戏(某区间可以连续消去求最大效益)<9>资源分配问题<10>数字三角形问题<11>漂亮的打印<12>邮局问题与构造答案<13>最高积木问题<14>两段连续和最大<15>2次幂和问题<16>N个数的最大M段子段和<17>交叉最大数问题4.判定性问题的dp(如判定整除、判定可达性等)<1>模K问题的dp<2>特殊的模K问题,求最大(最小)模K的数<3>变换数问题5.单调性优化的动态规划<1>1-SUM问题<2>2-SUM问题<3>序列划分问题(单调队列优化)6.剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大)<1>凸多边形的三角剖分问题<2>乘积最大问题<3>多边形游戏(多边形边上是操作符,顶点有权值)<4>石子合并(N^3/N^2/NLogN各种优化)7.贪心的动态规划<1>最优装载问题<2>部分背包问题<3>乘船问题<4>贪心策略<5>双机调度问题Johnson算法8.状态dp<1>牛仔射击问题(博弈类)<2>哈密顿路径的状态dp<3>两支点天平平衡问题<4>一个有向图的最接近二部图9.树型dp<1>完美服务器问题(每个节点有3种状态)<2>小胖守皇宫问题<3>网络收费问题<4>树中漫游问题<5>树上的博弈<6>树的最大独立集问题<7>树的最大平衡值问题<8>构造树的最小环排序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 CA TCHER、1953 World Cup Noise、2386 Lake Counting7、贪心1042, 1065, 1230, 1784,1328 1755(或用单纯形方法),2054,1017,1328,1862,1922 ,2054,2209,2313,2325,2370。