编程题目分类

1. 编程入门
2. 数据结构
3. 字符串
4. 排序
5. 图遍历
6. 图算法
7. 搜索:剪枝,启发式搜索
8. 动态规划/递推
9. 分治/递归
10. 贪心
11. 模拟
12. 算术与代数
13. 组合问题
14. 数论
15. 网格,几何,计算几何

【编程入门】
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 1232 Electrical Outlets. 简单计数,难度0
sicily 1388 Quicksum. 简单计数,难度0
sicily 1324 Score. 简单计数,难度0
sicily 1157 The hardest problem. 简单大小比较,难度0
sicily 1147 谁拿了最多奖学金. 结构体、数组、分支,难度1
sicily 1051. Biker's Trip Odomete. 简单计算题
sicily 1795. Table tennis. 几何题. 
sicily 1798. Alice and Bob. 策略. 难度1
sicily 1087 Funny game.  简单博弈. 难度1
sicily 1510 Mispelling, 字符串, 难度0
sicily 1500 Prime Gap. 求小于给定整数的最大素数. 难度1.
sicily 1561 PRIME Number. 求第n个素数. 难度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进制. 难度2.
sicily 1325 Digit Generator. 提取整数各位数字. 难度0 
sicily 1154 easy sort. 简单排序. 难度0
sicily 1636. show me the money. 简单计算. 难度0
sicily 1814 日期计算问题. 计算两个日期之间的间隔天数. 难度1. 
sicily 1815 计算两点间的距离 
sicily 1816 平面几何问题 
sicily 1817 校歌手大奖赛 
sicily 1818 成绩转换
sicily 1765 笨小猴. 统计字符串中字母出现最大次数和最小次数之差,判定是否为质数。

【数据结构】
/* 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 1052. Candy Sharing Game. 环形线性结构. 
sicily 1200 Stick. 简单查找配对,或排序或用set,multiset,map,难度1
sicily 1486 统计数字. 用map可轻松解决。难度2.
sicily 1819 Matrix. 二进制矩阵乘法,可用bitset或vector。难度2 
sicily 1194 Message Flood.  单词查找。排序后二分查找,或哈希或平衡二叉树或set,或trie 难度2 
sicily 1931 卡片游戏. 队列,难度2
sicily 1003. Hit or Miss. 队列,模拟. 难度2.5
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 二叉树重建. 给出二叉树的先序遍历序列和中序遍历序列,求它的广度优先遍历序列. 递归建树,BFS. 难度3
sicily 1082 manager. 维护一个能够删除最小元和最大元的数据结构,可以用一个大根堆和一个小根
堆实现. 难度3. 
sicily 2543. 完全二叉树。求完全二叉树中两个结点的最近公共祖先。递归。
sicily 1490. Tree Grafting. 树到二叉树的转换,求转换前后树的高度,输入是树的DFS序列。
sicily 1838. Sub Tree. 给出两棵m-ary树,判断一棵是否是另一棵的子树. 
sicily 1875. Small tree. 带权树.
sicily 1063. Who's the Boss. 排序,堆栈,隐形树结构
sicily 1042. Squadtrees. 
sicily 1088. Cows. 树状数组,将区间[S,E]按S从小到大,S相同时E从大到小排序,把E插入到树状数组,注意区间相同时的处理。
sicily 1375 Balanced Lineup. 哈希
sicily 1149 等价表达式.      判断表达式是否等价(递归求解)
sicily 1156. Binary tree. 给出一棵有向树的边集,对其进行先序遍历
sicily 1310. Right-Heavy Tree. 二叉搜索树,遍历;笛卡尔树相关,复杂度O(N)或O(NlogN)。
sicily 1426 Phone List.       电话号码前缀检索,trie树相关。
sicily 1686. Happy Children's Day. 线段树
sicily 1136 山海经. n长序列里求m次区间询问的最大连续子区间和。线段树/RMQ
sicily 1092 Stars in Your Window 线段树.


【字符串】
/* 
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 1753. 解码.  
sicily 1129. ISBN号码. 给定规律求ISBN最后一位.
sicily 1133. SPAM. 输出输入字符串里的合法email地址。
sicily 1323. Switch text. 字符串处理。
sicily 1035. DNA matching. 难度2.
sicily 1299. Academy Award. 统计字符串出现次数. 难度2.
sicily 1282. Computer Game. 字符串的子串匹配. 标准KMP. 难度3.


【排序和查找】
/*
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 1046 Plane Spotting. 排序. 难度2.
sicily 1097 LED Modding. 排序.
sicily 1134 积木分发. 从小到大排序. 难度1.
sicily 1154. Easy sort. 任意排序算法. 难度1.
sicily 1198 Substring. 字符串,排序. 难度1. 
sicily 1252 Defining Moment. 字符串划分前后缀.
sicily 1306. Sorting Algorithm. 基本排序,O(nlogn)排序算法. 难度2.
sicily 1341 明明的随机数. 输入n个数,去重复并排序。难度1.
sicily 1351. Multi-key Sorting. 多键排序. 难度2.
sicily 1438. Shopaholic. 排序,隔三求和. 难度1.
sicily 1482. 奖学金. 多key排序. 难度2. 
sicily 1532. Binary Search. 难度4.
sicily 1628. Extended Normal Order Sort. 难度4.
sicily 1641. Binary Searchable. 难度2.
sicily 1775. Simple Sort. 多key排序. 难度3. 
sicily 1930. 排序. 直接选择排序. 难度2.

【图遍历】
/* Graph Travasal
Breadth-First Search and Applications: Connected Components, Two-Coloring Graphs, 
Depth-First Search and Applications: Finding Circles, Articulation Vertices寻找割点,  
  Topological Sorting, 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 1424 奖金. 拓扑排序
sicily 1030 Task Scheduling. 拓扑排序. 难度4
sicily 1155 Can I Post the letter 判断两点是否可达。(图的遍历)
sicily 1308 Dependencies among Jobs. 给出N个工作,然后给出完成每个工作需要花费的时间,最后给出每个工作的依赖关系,求完成某个工作需要多少时间. 宽度优先搜索BFS. 难度2
sicily 1034 Forest. 森林的定义,求最大宽度与深度. 深度优先搜索
sicily 1068. Euro Efficiency. 给出6种分值的硬币,问如何组合得到100以内的数. 广度优先搜索. 难度2.
sicily 1114 Food Cubes         广度优先遍历给3维空间图染色。(dfs容易栈溢出)
sicily 1187 Laserbox           在N×N的网格上,有M个转换器,当射线遇到转换器时,射线就会向右偏转90度。射线从网格的边缘进入网格,如果最后射线会射出去,则输出它出去时的位置,否则输出“0 0”。dfs遍历。
sicily 1304. Delivering Food. 搜索,需剪枝优化. 难度4

【图算法】
/*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 UVA JUDGE -- NOT PC JUDGE)
pc 111006, uva 10199, Tourist Guide, 难度 3 
pc 111007, uva 10249, The Grand Dinner, 难度 4,  (USE UVA JUDGE -- 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 Problem Setter, 难度 3
sicily 1031. Campus. 单源最短路,dijkstra.难度3。
sicily 1321. Robot. 单源最短路,dijkstra.难度3。
sicily 1090. Highways. 最小生成树。难度2。
sicily 1402. Panic Room. 构图求网络最大流
sicily 1303. Job Assignment.  二分图的最大权匹配
sicily 1684. Christmas. 二分,二分图最大匹配,匈牙利算法
sicily 1192 Guardian of Decency 求最大独立集,比较特殊可以转二分匹配做。
sicily 1211. 商人的宣传. 简单题,有向图矩阵乘法,O(n^3*logL);直接迭代也行,O(n*m*L)。
 
sicily 1350. Piggy banks. 给出每个点出度为1的有向图,求环的个数. 不断找父结点,如果祖先结点都没标记过则答案加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 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 1019. Apple tree. DFS或者dp.
sicily 1835 N Queens Problem. 搜索,回溯。
sicily 1444 Prime Path   广度优先搜索
sicily 1428. B Baby Climber(心宝去爬山). 广度优先搜索,BFS
sicily 1048 Inverso. 广度优先搜索BFS,二进制表示状态判重;暴力DFS。难度3
sicily 1317 Sudoku. 数独求解的个数。
sicily 1171 The Game of Efil   2^16 dfs枚举棋盘后检测
sicily 1219 新红黑树. 砍树博弈,min-max搜索或记忆化搜索
sicily 1215 脱离地牢. 有限制的迷宫求两人相遇的最小步骤。(广度优先搜索)
sicily 1180 Pasting Strings    给10个字符串,求一个排列使得某种权和最大,全排列搜索。

sicily 1024 Magic Island. 求树中的最长路. BFS或者DFS. 难度2

sicily 1050 Numbers & Letters  回溯  DFS求5个数可否运算得到目标数, 否则输出可得到的小于目标数的最大数.
sicily 1135 飞越原野           最短时间过地图,广度优先搜索.
sicily 1107 Simple Puzzle      按题意搜索,有可能有前置零,输出排序.
sicily 1150 简单魔板. 广度优先搜索,
sicily 1151 魔板. 	       
sicily 1515 魔板C. 
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 1782. Knapsack. 01背包.
sicily 1342. 开心的金明. 01背包.
sicily 1146. 采药. 01背包, 类似sicily 1342.
sicily 1077. Case Machine. 可用类似求多重背包算法求解.
sicily 1750. 运动会. 分组背包.
sicily 1346. 金明的预算方案. 有依赖关系的背包.
sicily 1091. Maximum Sum. 最大m段子段和问题.
sicily 1888. Circular Sequence. 求一次最大MAX,判断是否是整个串,如果是就求一次最小MIN,然后MAX-MIN就是最后解,否则MAX就是解. 
sicily 1564. HOUSING. 可转换为硬币找零问题.
sicily 1902. Counting Problem. 可看成硬币问题. 
sicily 1060. Bridging Signals. 需要用特殊法做.
sicily 1685. Missile. 最长不单调子序列. 数据小,O(n^2).
sicily 1448. Antimonotonicity. 最长不单调子序列(f[0]>f[1]f[3]..)统计极点个数. 数据大,需O(n)算法.
sicily 1345. 能量项链. 类似矩阵链问题, 二维状态存储dp. 
sicily 1176 Two Ends. 二人从两头取数,对方贪心取大的,你尽量使得两者的差大. 二维状态dp. 
sicily 1563. GECKO. dp.
sicily 1822. Fight Club. dp.
sicily 1326. 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 1225. 电子眼. 树+一边的图上求最小边覆盖. 树形dp.
sicily 1898. Tree. 给一棵树,每个结点或为白色,或为黑色,问最少经过多少次结点颜色交换,可以使黑色结点互连. 树形dp.
sicily 2681. Tree. 给一棵树,结点皆为黑色。按某一结点,可将该结点和它的相邻结点变色(黑则变白,白则变黑)。求使所有结点全变色的最少按键次数. 树形dp.
sicily 1404 Hie with the Pie. 状态压缩dp.
sicily 1123. The Longest Walk. 有向图求任意起终点的无重复点的最长路,状态压缩dp.
sicily 1148. 过河. 路径压缩,贪心动态规划.
sicily 1103 The Top-Code. 字符串划分dp,要求字典序输出方案时的状态表示方法.


sicily 1001. Alphacode. dp基本题.
sicily 1010. Zipper. dp. 
sicily 1011. Lenny's Lucky Lotto. dp. 
sicily 1049. Mondriaan. 2*1跟1*1的砖铺成2*n的走道的方法数%10. DP
sicily 1057. Rhyme Schemes. dp. 
sicily 1073. Pearls. dp. 
sicily 1081. Game. dp.
sicily 1108. Online Selection. 问答游戏,n层k个回答拿了m分,求最大的回答0的个数.
sicily 1121. Tri Tiling. 2*1的砖铺成3*n的走道的方法数. DP.
sicily 1138. 寻宝之旅. dp.
sicily 1158. Pick numbers. 给出M*N的数字矩阵,起点左上角点(1,1),终点右下角点(M,N),只能向右或下移动,要求找出从起点到终点的一条路径,使得经过的数字之和为尽可能小的正数. DFS. 难度2
sicily 1166. Computer Transformatation. dp. 
sicily 1211. 商人的宣传. 图dp. 难度3
sicily 1221. 数字游戏. n个数序列每个数每次会减少b[i], 取出m个数,求最大值.
sicily 1222. 单词选择. 在给定文章里选出连续的一段包含最多的word且长度最短, 这题的hash很恶心.
sicily 1264. Atomic Car Race. dp基本题.
Sicily 1373. Cows Of The Round Table. dp.
sicily 1274. Pascal's Travels. dp.
sicily 1419. On the run. 牛奶快递. dp. 
sicily 1687. Permutation. dp. 
sicily 1828. Minimal. dp. 


【未归类的 动态规划/递推/组合计数】
sicily 1355 The Bus.        二维的最长上升子序列,最长不递减子序列的变种,用STL里的map写巨简单.
sicily 1169 ACM(ACronymMaker)  给一些短语求按题意要求构成指定缩写的方法数.
sicily 1163 Tour. 欧几里德旅行商问题(吴文虎那本书p314)
sicily 1233 Necklace Decomposition 按题意分割字母.
sicily 1197 Hotel              字符串含通用符的匹配,记忆化搜索.
sicily 1120 Walk Through the Forest 简单无向图,求节点1到节点2的按题意走法的方法数.
sicily 1091. Maximum Sum        给出一个数列,求分两个部分和的和最大.
sicily 1098 Marching in the Corp 给出部分偏序关系,求可能的排名方法数.
sicily 1327 Pinary             递推求第k个Pinary数。
sicily 1233 Necklace Decomposition 按题意分割字母.
sicily 1139 电路稳定性         递归处理括号对序列算电路不通概率.
sicily 1033 City Road          求0,0走到n+1,m+1的最短路方法数,中间有一些障碍.
sicily 1413 Whac-a-Mole        打地鼠游戏,求一定时间内能打到最多地鼠的方案。
sicily 1415  Honeycomb Walk    蜜蜂窝走N步回到出发地的方法数。

【分治和递归】
sicily 1017 Rate of Return. 求解方程,二分. 难度2
sicily 1211 商人的宣传         求两点间L步到达的方法数.
sicily 1137 河床. 求一个最长的连续区间满足其中的最小数和最大数之差不大于k。
sicily 1376. Monthly Expense. 给N个数的序列,要求将其分成M段,使每段之和的最大值尽可能小. 二分,贪心. 难度3
sicily 1441 Pie  二分
sicily 1454. Pseudoprime numbers. 数论,二分,递归。难度3

【贪心】
sicily 1739. Helpful Paper. 任务调度问题.
sicily 1717. Computer. 单机任务调度. 贪心+最小堆.
sicily 1198 Substring          8个串排出最小字典序。(用ab 
 

你可能感兴趣的:(Sicily)