Sicily、uva、pc部分题目分类

Classified Problems on Online Judge

练习题选自以下在线测评系统

 

    * sicily:http://soj.me, 中山大学Sicily在线测评系统

    * UVA OnlineJudge, 题号前缀为uva

    * ProgrammingChanlanges Online Judge, 题号前缀为pc

 

题目的分类仅供参考,很多题目有多种实现,有些题目比较综合,所以或许有不确切或不正确的分类,发现问题请提醒我。

 

1. 编程入门

2. 数据结构

3. 字符串

4. 排序

5. 算术与代数

6. 组合问题

7. 数论

8. 搜索: 回溯法,启发式搜索

9. 图遍历

10. 图算法

11. 动态规划

12. 网格,几何,计算几何

 

 

【编程入门】

PC 110101, uva 100, The 3n+1 problem, 难度 1

PC 110102, uva 10189, Minesweeper, 难度 1

PC 110103, uva 10137, The Trip, 难度 1

pc 110104, uva 706, LC-Display, 难度 1

pc 110105, uva 10267, Graphical Editor, 难度 1

PC 110106, uva 10033, Interpreter, 难度 2

pc 110107, uva 10196, Check the Check, 难度 1

PC 110108, uva 10142, Australian Voting, 难度 1

 

sicily 1144陶陶摘苹果. 简单计数,难度0

sicily 1145校门外的树. 简单计数,难度0

sicily 1232Electrical Outlets.简单计数,难度0

sicily 1324 Score.简单计数,难度0

sicily 1157 Thehardest problem.简单大小比较,难度0

sicily 1147谁拿了最多奖学金. 结构体、数组、分支,难度1

sicily 1795 Table tennis, 几何题, 难度

sicily 1798 Aliceand Bob,策略, 难度1

sicily 1087 Funny game. 简单策略. 难度1

sicily 1510 Mispelling, 字符串, 难度0

sicily 1500 Prime Gap. 求小于给定整数的最大素数. 难度1.

sicily 1561 PRIME Number. 难度1

sicily 1007 To and Fro, 数组与下标(二维数组), 难度1

sicily 1036 Crypto Columns, 二维数组,字符串,排序, 难度1

sicily 1014, Specialized Four-Dig, 进制转换,字符串, stack, 难度 1

sicily 1813 M进制数问题, 难度 1

sicily 1298 数制转换. 把整数转换成特殊3进制. 难度1.

sicily 1325 Digit Generator. 提取整数各位数字. 难度0

sicily 1154 easysort.简单排序. 难度0

sicily 1814 日期计算问题

sicily 1815 计算两点间的距离

sicily 1816 平面几何问题

sicily 1817 校歌手大奖赛

sicily 1818 成绩转换

 

【数据结构】

/* Data Structure:

Stacks and Queues

Binary Search Tree

Hash Table

Dictionaries (set, map)

Priority Queues

Disjoint Sets

tries

Suffix Trees

B-Trees

Kd-Trees

Skip-Lists 

Balanced Trees: AVL Tree, Splay Tree, Red-Black Tree

*/

 

pc 110201, uva 10038, Jolly Jumper, 难度 1

pc 110202, uva 10315, Poker Hands, 难度 2

pc 110203, uva 10050, Hartals, 难度 2

pc 110204, uva 843, Crypt Kicker, 难度 2

pc 110205, uva 10205, Stack 'em Up, 难度 1

pc 110206, uva 10044, Erdos Numbers, 难度 2

pc 110207, uva 10258, Contest Scoreboard, 难度 1

pc 110208, uva 10149, Yahtzee, 难度 3

 

sicily 1200 Stick. 简单查找配对,或排序或用set,难度1

sicily 1194 Message Flood.  单词查找。排序后二分查找,或哈希或平衡二叉树或set, 难度1

sicily 1931 卡片游戏. 队列,难度2

sicily 1443 Printer Queue. 基本队列操作。

sicily 1021 couples. 栈, 难度1

sicily 1934 移动小球. 线性表,难度2

sicily 1509 Rails. 难度2

sicily 1768 双栈排序

sicily 1021 couples. 栈,难度2

sicily 1210 二叉树, 二叉树遍历顺序先后中转换,挺经典的。

sicily 1935 二叉树重建. 二叉树,难度2

sicily 1082 manager, 维护一个能够删除最小元和最大元的数据结构,可以用一个大根堆和一个小根

堆实现,Wanglei用了两个set,set1支持最小元的删除,set2支持最大元的删除,每

加入一个新元素x,将x加入set1,-x加入set2,这样set1的头元素就是最小元,

set2的头元素的相反数就是最大元.

sicily 1310 Right-Heavy Tree   笛卡尔树相关,复杂度O(N)或O(NlogN)。

sicily 1426 Phone List         电话号码前缀检索,trie树相关。

sicily 1149 等价表达式         判断表达式是否等价(递归求解)

sicily 1136 山海经             n长序列里求m次区间询问的最大连续子区间和。线段树/RMQ

sicily 1375 Balanced Lineup. 哈希

 

 

【字符串】

/*

String Problems:

String Matching

Approximate String Matching

Text Compression

Cryptography

Longest Common Substring/Subsequence

Shortest Common Superstring

*/

 

pc 110302, uva 10010, Where's Waldorf, 字符串

pc 110304, uva 850, Crypt Kicker II, 字符串 

pc 110306 File Fragmentation, 字符串

pc 110307 Doublets, 字符串

sicily 1133 SPAM               输出输入字符串里的合法email地址。

sicily 1323 Switch text        字符串处理。

 

【排序和查找】

/*

Sorting: Insertion Sort, Selection Sort, Heapsort,Mergesort, Quicksort, Counting Sort, Bucket Sort

Searching: Sequence Search, Binary Search

Median and Selection

*/

pc 110401, uva 10041, Vito's Family

pc 110403, uva 10037, Bridge

pc 110405, uva 10026, Shoemaker's Problem

pc 110406, uva 10138, CDVII

 

pc 110402, uva 120, Stacks of Flapjacks, 堆栈, 排序

pc 110404, uva 10191, Longest Nap

pc 110407, uva 10152, ShellSort, 龟壳排序

pc 110408, uva 10194, Football

 

sicily 1930 排序. 直接选择排序. 难度1.

sicily 1046 Plane Spotting. 排序. 难度1.

sicily 1134 积木分发. 从小到大排序. 难度1.

sicily 1097 LED Modding        排序。

sicily 1438 Shopaholic         排序,隔三求和。

sicily 1306 Sorting Algorithm  基本的排序,输出。

sicily 1198 Substring. 字符串,排序. 难度1.

sicily 1252 Defining Moment    字符串划分前后缀

 

【图遍历】

/* Graph Travasal

Breadth-First Search and Applications: ConnectedComponents, Two-Coloring Graphs,

Depth-First Search and Applications: Finding Circles,Articulation Vertices寻找割点, 

  TopologicalSorting, Strongly Connected Componensts,  

*/

pc 110901, uva 10004, Bicoloring, 难度1

pc 110902, uva 10067, Playing with Wheels, 难度2

pc 110903, uva 10099, The Tourist Guide, 难度3

pc 110904, uva 705, Slash Maze, 难度2

pc 110905, uva 10029, Edit Step Ladders, 难度3

pc 110906, uva 10051, Tower of Cubes, 难度3  (USE UVA JUDGE-- NOT PC JUDGE)

pc 110907, uva 10187, From Dusk Till Dawn, 难度3

pc 110908, uva 10276, Hanoi Tower Troubles Again, 难度3

sicily 1936 Knight Moves. 深度优先搜索,回溯

sicily 1940 Ordering Tasks. 拓扑排序. 难度3

sicily 1155 Can I Post the letter 判断两点是否可达。(图的遍历)

sicily 1308 Dependencies among Jobs 图的遍历。

sicily 1424 奖金               拓扑排序

sicily 1034 Forest             森林的定义,求最大宽度与深度。(深度优先遍历)

sicily 1114 Food Cubes         广度优先遍历给3维空间图染色。(dfs容易栈溢出)

 

【图算法】

/*Graph Problems

1. Polynomial-Time Problems

Connected Components

Topological Sorting

Minimum Spanning Tree

Shortest Path

Transitive Closure and Reduction

Mathcing

Eulerian Cycle/Chinese Postman

Edge and Vertex Connectivity

Network Flow

 

2. Hard Problems

Clique

Independent Set

Vertex Cover

Traveling Salesman Problem

Hamitonian Cycle

Graph Partition

Vertex Coloring

Edge Coloring

Graph Isomorphism

Steiner Tree

Feedback Edge/Vertex Set

*/

 

pc 111001, uva 10034, Freckles, 难度 2

pc 111002, uva 10054, The Necklace, 难度 3,  (USE UVAJUDGE -- NOT PC JUDGE)

pc 111006, uva 10199, Tourist Guide, 难度 3

pc 111007, uva 10249, The Grand Dinner, 难度 4,  (USE UVAJUDGE -- NOT PC JUDGE)

 

pc 111003, uva 10278, Fire Station, 难度 2

pc 111004, uva 10039, Railroads, 难度 3

pc 111005, uva 10158, War, 难度 3

pc 111008, uva 10092, The problem with the ProblemSetter, 难度 3

sicily 1031 Campus             单源最短路,dijkstra。

sicily 1090 Highways           最小生成树。难度2。

sicily 1402 Panic Room         构图求网络最大流

sicily 1303 Job Assignment     二分图的最大权匹配

sicily 1192 Guardian of Decency 求最大独立集,比较特殊可以转二分匹配做。

sicily 1211 商人的宣传, 简单题,有向图矩阵乘法,O(n^3*logL);直接迭代也行,O(n*m*L)。

 

sicily 1350 Piggy banks        给出每个点出度为1的有向图,求环的个数。(简单)

sicily 1423 魔王bug的2色定理   构图求网络的最小割。

sicily 1173 Reliable Nets      无向图求最小的二连通子图。(数据小可以搜索)

sicily 1141 猴子的争斗         完全图最小生成树的方法数,节点全排列: n!*(n^(n-2))

sicily 1196 Conflict           关系闭包的转换

sicily 1170 Countdown          建树,统计

sicily 1132 ROUTES             用括号序列表示树,求两节点最近公共祖先。

sicily 1210 二叉树             知道前序后序求可能的方法数

sicily 1326 Apple Tree,        建树,求两结点最近公共祖先。

利用栈:计数器=0,遇到'0',计数器入栈,计数器++;遇到'1',栈顶元素出栈,并且当前栈顶元素为出栈元素父节点,连边

 

 

 

【搜索:回溯,启发式搜索,剪枝】

pc 110801, uva 861, Bishops

pc 110802, uva 10181, 15-Puzzle Problem  (USE UVA JUDGE -- NOT PC JUDGE)

pc 110805, uva 10032, Tug of War

pc 110806 Garden of Eden

pc 110807, uva 704, Colour Hash

 

sicily 1002 Anti-Prime Sequences. 搜索,回溯。

sicily 1835 N Queens Problem. 搜索,回溯。

sicily 1444 Prime Path  广度优先搜索

sicily 1048 Inverso. 广度优先搜索BFS,二进制表示状态判重。难度3

sicily 1317 Sudoku. 数独求解的个数。

sicily 1171 The Game of Efil   2^16 dfs枚举棋盘后检测

sicily 1219 新红黑树. 砍树博弈,min-max搜索或记忆化搜索

v1215 脱离地牢. 有限制的迷宫求两人相遇的最小步骤。(广度优先搜索)

sicily 1180 Pasting Strings    给10个字符串,求一个排列使得某种权和最大,全排列搜索。

 

sicily 1024 Magic Island. 无向图的最长路,深度优先搜索DFS. 难度2

 

sicily 1050 Numbers & Letters  回溯  DFS求5个数可否运算得到目标数, 否则输出可得到的小于目标数的最大数.

sicily 1135 飞越原野           最短时间过地图,广度优先搜索.

sicily 1107 Simple Puzzle      按题意搜索,有可能有前置零,输出排序.

sicily 1150 简单魔板           广度优先搜索,全排列的hash函数设计

sicily 1151 魔板              广度优先搜索,全排列的hash函数设计

sicily 1152 简单的马周游问题,迷宫问题的可行性剪枝.

sicily 1153 马周游问题。   同上,扩展状态节点的时候按目标函数值排序。

sicily 1378 八数码问题. 启发式搜索。

 

【动态规划】

pc 111101 Is Bigger Smarter?  (USE UVA JUDGE -- NOT PC JUDGE)

pc 111103 Weights and Measures

pc 111104 Unidirectional TSP

pc 111106 Ferry Loading (USE UVA JUDGE -- NOT PC JUDGE)

 

sicily 1001 Alphacode, dp基本题

sicily 1264 Atomic Car Race    dp基本题.

sicily 1342 开心的金明         背包dp

sicily 1146 采药               01背包 剩余类dp

sicily 1419 On the run(牛奶快递), dp

sicily 1019 Apple Tree         树型dp,边dfs边更新最优值。05韩国赛区题,本题即是经典的最近公共祖先(LCA)的简化版。因为给出了访问顺序,而且只需求一次,所以比传统的LCA简单很多。可以使用传统的单个LCA问题的朴素算法来解这道题,简单介绍如下:

要求u和v的LCA,只要从u的父亲开始顺着树往上枚举u的祖先并保存在一个列表L中,然后

再用类似的方法枚举v,当第一次发现某个祖先x在L中时,则输出x。复杂度是o(n)。

由于这题的特殊性,也可以用一种更简单的方法来做。那就是根据DFS的原理,设一个栈,直接从左往右扫一次。这样也是o(n),但写起来更容易一些,不过比较易出错。

另外,这题还要注意的地方就是A=B的时候要特殊处理一下。

 

sicily 1138 寻宝之旅           dp

sicily 1225 电子眼             树+一边的图上求最小边覆盖,树型dp.

sicily 1404 Hie with the Pie   状态压缩dp

sicily 1103 The Top-Code       字符串划分dp,要求字典序输出方案时的状态表示方法。

sicily 1123 The Longest Walk   有向图求任意起终点的无重复点的最长路,状态压缩dp

 

【未归类的 动态规划/递推/组合计数】

 

sicily 1355 The Bus            二维的最长上升子序列,最长不递减子序列的变种。用STL里的map写巨简单。

sicily 1169 ACM(ACronymMaker)  给一些短语求按题意要求构成指定缩写的方法数.

sicily 1163 Tour               欧几里德旅行商问题(吴文虎那本书p314)

sicily 1233 Necklace Decomposition 按题意分割字母.

sicily 1222 单词选择           在给定文章里选出连续的一段包含最多的word且长度最短.

 

sicily 1197 Hotel              字符串含通用符的匹配,记忆化搜索.

sicily 1120 Walk Through the Forest 简单无向图,求节点1到节点2的按题意走法的方法数.

sicily 1091 Maximum Sum        求分两个部分后的和最大.

sicily 1098 Marching in the Corp 给出部分偏序关系,求可能的排名方法数.

sicily 1049 Mondriaan          2*1跟1*1的砖铺成2*n的走道的方法数%10.

sicily 1121 Tri Tiling         2*1的转铺成3*n的走道的方法数。

sicily 1327 Pinary             递推求第k个pinary数。

sicily 1233 Necklace Decomposition 按题意分割字母.

sicily 1221 数字游戏           n个数序列每个数每次会减少b[i]。取出m个数,求最大值.

sicily 1139 电路稳定性         递归处理括号对序列算电路不通概率.

sicily 1108 Online Selection   问答游戏,n层k个回答拿了m分,求最大的回答0的个数.

sicily 1033 City Road          求0,0走到n+1,m+1的最短路方法数,中间有一些障碍.

sicily 1176 Two Ends           二人从两头取数,对方贪心取大的,你尽量使得两者的差大.

 

sicily 1413 Whac-a-Mole        打地鼠游戏,求一定时间内能打到最多地鼠的方案。

sicily 1415 Honeycomb Walk    蜜蜂窝走N步回到出发地的方法数。

 

【二分法/分治】

sicily 1017 Rate of Return. 求解方程,二分. 难度2

sicily 1211 商人的宣传         求两点间L步到达的方法数.

sicily 1137 河床. 求一个最长的连续区间满足其中的最小数和最大数之差不大于k。

sicily 1441 Pie  二分

 

【贪心】

sicily 1198 Substring          8个串排出最小字典序。(用ab

sicily 1140 国王的遗产         砍不大于n/2个节点的最大树枝

sicily 1172 Queens, Knights and Pawns 染色模拟

sicily 1193 Up the Stairs      搬箱子上楼梯.

 

 

【算数与代数】

/*

Numerical Problems:

Solving Linear Equations

Bandwidth Reduction

Matrix Multiplication

Determinants and Permantents

Constrained and Unconstrined Optimization

Linear Programing

Random Number Generation

Factoring and Primality Testing

Arbitrary-Precision Arithmetic

Kanpsack Prpblem

Discret Fourier Transform

*/

pc 110502 Reverse and Add

pc 110503 The Archeologists' Dilemma

pc 110504 Ones

pc 110505 A multiplication game

 

sicily 1813 M进制数问题. 进制转换,难度1

sicily 1201 01000001. 大整数二进制加法

sicily 1029 Rabbit. 高精度求和,难度2

sicily 1020 Big Integer. 高精度数求模,难度2

sicily 1381 a * b. 高精度乘法

sicily 1240 Faulty Odometer    十进制数少了4的计数

 

【组合问题】

/*

Combinatorial Problems:

Median and Selection

Generating Permutations

Generating Subsets

Generating Partitions

Generating Graphs

Generating Calculations

Job Scheduling

Satisfiability

*/

 

pc 110603 Counting

pc 110604 Expressions

pc 110606 The Priest Mathematician

pc 110607 Selfdescribing Sequence

 

sicily 1089 Farey Sequence. 计算Farey Sequence元素个数. 难度2

sicily 1224 速配游戏           组合数学上经典的稳定婚姻问题。

sicily 1242 Suit Distribution  无聊计数

sicily 1174 Square Count       数方块数,容斥原理。

sicily 1302 Magic Square       奇数阶的魔方构造

sicily 1125 Arnie versus the IRS. 两个日期间0-9数字出现次数统计,周末不计。

sicily 1200 Stick.            奇数根木棍,不同种类的有偶数个,有一种只有奇数个。异或. 难度1

sicily 1344 数列               某种规则的数列生成

sicily 1203 The Cubic End      给一个1,3,7,9结尾的数求一个数的立方的尾部是原数

sicily 1280 Permutation

sicily 1214 信号分析           数列找规律求an=n的个数. 二进制表示时是回文。出题人梁峰,   很有意思的一题,不是看过他的报告我也想不到。请问你是否有从二进制的方向想过这个数列呢?n=1,2,3,4,5,6,7,8;an=1,1,3,1,5,3,7,1,它们的二进制形式为n=(1)2,(10)2,(11)2,(100)2,(101)2,(110)2,(111)2,(1000)2;an=(1)2,(01)2,(11)2,(11)2,(001)2,(101)2,(011)2,(111)2,(0001)2,找出什么规律了吗?an的二进制串恰好是n的二进制串的反转。其实这个可以用归纳法证明:对于a2n=an,(2n)2=(n)2_0(注意这里设”_”为二进制串连接符号,再设~n为n的二进制串倒转),经函数a反转后等式成立(反转后0在前面实际就没了)。

对于a4n+1 = 2*a2n+1 - an,(4n+1)2=(n)2_01,(2n+1)2=(n)2_1,(a4n+1)2=10_(~n)2,2*a(2n+1)=2*[1_(~n)2]=1_(~n)2_0,an=(~n)2,a4n+1 + an = 10_(~n)2 + (~n)2 = 1_(~n)2_0 =

2*a2n+1。同理a4n+3等式亦相同证明,综上等式对所有n∈N均成立,证毕。知道这个性质,简单了,使得an=n的只有那些二进制形式是回文串的了,枚举二进制的前半部分p,翻转复制到后一半,注意要生成两个n值,一个是p_(~p),一个是p_~(int(p/2)),如果小于等于n,则统计。时间复杂度是O(√n)。

【数论】

/* Numberic Theory:

素数:寻找素数,素数的个数

整除性:最大公约数,最小公倍数

模算术

同余

*/

pc 110702 Carmichael Numbers  (USE UVA JUDGE -- NOT PC JUDGE)

pc 110704 Factovisors

pc 110707 Marbles

pc 110708 Repackaging

 

【暂时未细分的数学】

 

sicily 1251 Plinko             弹珠游戏算概率

sicily 1258 It                 多项式求导

sicily 1047 Super Snooker      连续的数和可否二分.

sicily 1448 Antimonotonicity   最长不单调子序列(f[0]>f[1]f[3]..)统计极点个数

 

sicily 1433 Optimal Parking    直接算

sicily 1259 Sum of Consecutive Prime Numbers 连续素数和

sicily 1239 Smallest Differencev 一些数码,组成差最小的两个数

sicily 1231 The Embarrassed Cryptographer 两个素数积,枚举因子

 

 

sicily 1218 纪念邮票           同1209

sicily 1209 Sequence Sum Possibilities 求m分解成不同的连续整数和的方法数

sicily 1206 Stacking Cylinders 堆圆筒,解方程.

sicily 1199 GCD                求小于N且与N的GCD大于M的数个数.

sicily 1190 Reduced ID Number  找最小的数使得给出的所有数mod它的结果不同

sicily 1099 Packing Passengers 线性模方程

sicily 1119 Factstone Benchmark 求n!<=2^k的最大n. 两边取对数.

sicily 1412 Tour Guide         n个物体向各个方向做匀速运动。

sicily 1305 Who’s Winner      博弈题,找规律。

 

 

【模拟/其他】

sicily 1122 Prerequisites      模拟统计学生选课。

sicily 1093 Air Express        枚举。

sicily 1237 Paint Mix          黑白染料混合出指定灰度的染料。

sicily 1202 The Bank of Kalii  日期比较

sicily 1187 Laserbox           机器人运动模拟,dfs遍历。

sicily 1177 Take Your Vitamins 按要求做一些基本的数据统计。

sicily 1182 Context-Free Clock 钟表时间和时针分针之间夹角的关系。

sicily 1100 Tennis Anyone      网球排名统计。

sicily 1110 ioi photos         模拟.统计

sicily 1128 DICE               判断骰子是左手型还是右手型,模拟旋转.(逆序可以做)

sicily 1129 ISBN               给定规律求ISBN最后一位.

sicily 1401 Children of the Candy Corn 模拟左手规则走迷宫。

sicily 1205 brainf*ck          模拟解释执行题目中定义的一种编程语言

 

 

【几何与计算几何】

/* Computatinal Geometry:

Robust Geometric Primitives

Convex Hull

Triangulation

Voronoi Diagrams

Nearest Neighbor Search

Range Search

Point Location

Intersection Detection

Bin Packing

Medial-Axis Transform

Polygon Partitioning

Simplifying Polygons

Sharpe Similarity

Motion Planning

Maintaining Line Arrangements

Minkowski Sum

*/

pc 111202 The Monocycle

pc 111203 Star

pc 111205 Robbery

pc 111207 Dermuba Triangle

 

pc 111301 Dog and Gopher

pc 111302 Rope Crisis in Ropeland!

pc 111305 Birthday Cake (USE UVA JUDGE -- NOT PC JUDGE)

pc 111308 How Big Is It?

 

pc 111401 Herding Frosh

pc 111403 Chainsaw Massacre

pc 111404 Hotter Colder

pc 111408 Nice Milk

 

sicily 1012 Stacking Cylinders. 平面几何. 难度2

sicily 1175 Swamp Things       平面上N个点,求一条经过最多点的直线。

sicily 1234 Playground         半圆圈能否构成封闭圈。平面图,转为判断多边形能否构成

sicily 1179 Extrusion          多边形求面积

sicily 1045 Space Management   求平面上矩形叠加的总面积,矩形切割或者离散化.

sicily 1092 Stars in Your Window 线段树.

sicily 1145 校门外的树         离散化或O(n)的扫描

sicily 1223 防御力场           求一条过目标点的直线,使得直线一边的点最少

sicily 1216 野外行军           光程最短路

sicily 1118 War on Weather     球外一点与球切线直接判断范围。

 

你可能感兴趣的:(数据结构与算法,人工智能,postman)