以及补充
Dp 状态设计与方程总结
1. 不完全状态记录
<1> 青蛙过河问题
<2> 利用区间 dp
2. 背包类问题
<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> 构造树的最小环
(二):
麻烦题:
1697, 1712, 1713, 1720, 1729, 1765, 1772, 1858, 1872, 1960, 1963, 2050, 2122, 2162, 2219, 2237,
简单题目:
1000, 1003, 1004, 1005, 1007, 1046, 1207, 1226, 1401, 1504, 1552, 1607, 1657, 1658, 1674, 1799, 1862, 1906, 1922, 1929, 1931, 1969, 1976, 2000, 2005, 2017, 2027, 2070, 2101, 2105, 2109, 2116, 2136, 2160, 2190, 2232, 2234, 2275, 2301, 2350, 2363, 2389, 2393, 2413, 2419,
推荐:
1063, 1064, 1131, 1140, 1715, 2163,
杂题:
1014, 1218, 1316, 1455, 1517, 1547, 1580, 1604, 1663, 1678, 1749, 1804, 2013, 2014, 2056, 2059, 2100, 2188, 2189, 2218, 2229, 2249, 2290, 2302, 2304, 2309, 2313, 2316, 2323, 2326, 2368, 2369, 2371, 2402, 2405, 2407,
推荐:
1146, 1147, 1148, 1171, 1389, 1433, 1468, 1519, 1631, 1646, 1672, 1681, 1700, 1701, 1705, 1728, 1735, 1736, 1752, 1754, 1755, 1769, 1781, 1787, 1796, 1797, 1833, 1844, 1882, 1933, 1941, 1978, 2128, 2166, 2328, 2383, 2420,
高精度:
1001, 1220, 1405, 1503,
排序:
1002, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379, 2388, 2418,
推荐:
1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380,
搜索 1676,1376,@3009,
容易:
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,
数据结构
容易:
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,
动态规划
容易:
1018, 1050, 1083, 1088, 1125, 1143 (博弈树) , 1157, @1163, 1178, 1179, @1189, 1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740, 1742, 1887, 1926, 1936, 1952, 1953, 1958, 1959, 1962, 1975, 1989, 2018, 2029, 2033, 2063, 2081, 2082, 2181, 2184, 2192, 2231, 2279, 2329, 2336, 2346, 2353, 2355, 2356, 2385, 2392, 2424,
不易:
1019, 1037, 1080, 1112, 1141, 1170, 1192, 1239, 1655, 1695, 1707, 1733, 1737, 1837, 1850, 1920, 1934, 1937, 1964, 2039, 2138, 2151, 2161, 2178,
推荐:
1015, 1635, 1636, 1671, 1682, 1692, 1704, 1717, 1722, 1726, 1732, 1770, 1821, 1853, 1949, 2019, 2127, 2176, 2228, 2287, 2342, 2374, 2378, 2384, 2411,
字符串:
1488, ⊙ 1598, 1686, *1706, 1747, 1748, 1750, 1760, 1782, 1790, 1866, 1888, 1896, 1951, 2003, 2121, 2141, 2145, 2159, 2337, 2359, 2372, 2406, 2408,
贪心:
1042, 1065, 1230, 1323, 1477, 1716, 1784,
图论
容易:
1161, 1164, 1258, 1175, 1308, 1364, 1776, 1789, 1861, 1939, 1940, 1943, 2075, 2139, 2387, 2394, 2421,
不易:
1041, 1062, 1158, 1172, 1201, 1275, 1718, 1734, 1751, 1904, 1932, 2173, 2175, 2296,
网络流:
1087, 1273, 1698, 1815, 2195,
匹配:
1274, 1422, 1469, 1719, 2060, 2239,
Euler :
1237, 1637, 1394, 2230,
推荐:
2049, 2186,
计算几何
容易:
@1319, @1654, @1673, @1675, 1836, 2074, 2137, 2318,
不易:
1685, 1687, 1696, 1873, 1901, 2172, 2333,
凸包:
1113, 1228, 1794, 2007, 2187,
模拟
容易:
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,
数学
容易:
@1061, @1091, @1142, 1289, @1305, @1306, 1320, @1565, @1665, 1666, @1730, @1894, @1914, 2006, @2042, @2142, 2158, 2174, @2262, @2305, @2321, @2348,
不易:
@1067, @1183, 1430, 1759, 1868, 1942, 2167, 2171, 2327,
推荐:
@1423, 1450, 1640, @1702, 1710, 1721, 1761, 1830, @1930, @2140,
(三):
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 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 、 1050 、 1088 、 1125 、 1141 、 1159 、 1160 、 1163 、 1458 、 1579 、 1887 、 1953 、 2386
7 、 贪心
1042, 1065, 1230, 1323, 1477, 1716, 1784,1328 1755 (或用单纯形方法), 2054 , 1017 , 1328 , 1862 , 1922 , 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 2015
9 、 递归
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 2403
11 、数论
1006,1014,1023,1061,1152,1183,1730,2262
12 、几何有关的题目
凸包: 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 1503 1504 1519 1565 1650 1969 2000 2006 2081 2247 2262 2305 2316 2389
1001, 1220, 1405, 1503,1001 (高精度乘法) 2413( 高精度加法,还有二分查找 )
14 、概率统计
1037,1050
15 、小费用最大流、最大流
2195 , 2400 ,1087 , 1149 , 1273 , 1274 , 1325 , 1459 , 2239
16 、压缩存储的 DP
1038 , 1185 , 2430
17 、最长公共子串( LCS )
1080 , 1159 , 1458 , 2192
18 、图论及组合数学
2421 、 2369 、 2234 、 2243 、 2249 、 2255 、 2084 、 1906 、 1833 、 1850 、 1562 、 1496 、 1306 、 1125 、 1129 、 1146 、 1095
找规律
2247 、 2309 、 2346 、 2370 、 2365 、 2101 、 2028 、 2084 、 1915 、 1922 、 1941 、 1953 、 1958 、 1969 、 1806 、 1809 、 1844 、 1870 、 1702 、 1728 、 1604 、 1642 、 1656 、 1657 、 1662 、 1663 、 1313 、 1316 、 1320 、 1323 、 1338 、 1244 、 1250 、 1102 、 1147 、 1013
19 、博弈类
1067 、 1740 、 2234 、 1082 、 2348 、 2413 、 2419
20 、简单、模拟题
1001 、 1002 、 1003 、 1701 、 2301 、 2304 、 2328 、 2403 、 2406 、 2339 、 2350 、 2218 、 2260 、 2262 、 2272 、 2136 、 2174 、 2183 、 2000 、 2014 、 2051 、 2081 、 1918 、 1922 、 1970 、 1972 、 1974 、 1978 、 1979 、 1617 、 1666 、 1674 、 1503 、 1504 、 1528 、 1546 、 1547 、 1573 、 1575 、 1581 、 1590 、 1454 、 1363 、 1218 、 1281 、 1132 、 1028
21 、初等数学
1003 、 1045 、 1254 、 1269 、 1401 、 1410 、 2363 、 2365 、 2242 、 2291 、 2295 、 2126 、 2191 、 2196 、 1914 、 1835 、 1799 、 1607 、 1244 、 1269 、 1299 、 1183 、
22 、匹配
1274, 1422, 1469, 1719, 2060, 2239,
(四)很有意思的分类
短代码: 0.01K--0.50K ;中短代码: 0.51K--1.00K ;中等代码量: 1.01K--2.00K ;长代码: 2.01K 以上。
短: 1147 、 1163 、 1922 、 2211 、 2215 、 2229 、 2232 、 2234 、 2242 、 2245 、 2262 、 2301 、 2309 、 2313 、 2334 、 2346 、 2348 、 2350 、 2352 、 2381 、 2405 、 2406 ;
中短: 1014 、 1281 、 1618 、 1928 、 1961 、 2054 、 2082 、 2085 、 2213 、 2214 、 2244 、 2247 、 2255 、 2257 、 2258 、 2260 、 2265 、 2272 、 2273 、 2275 、 2287 、 2299 、 2329 、 2376 ;
中等: 1001 、 1018 、 1037 、 1039 、 1054 、 1125 、 1655 、 2165 、 2210 、 2212 、 2225 、 2240 、 2241 、 2243 、 2246 、 2254 、 2303 、 2312 、 2339 ;
长: 1009 、 1010 、 1015 、 2050 。
附注:
短(中短)代码但要有思想(一定难度): 1014 、 1147 、 1618 、 1961 、 2054 、 2082 、 2232 、 2244 、 2255 、 2273 、 2287 、 2299 、 2313 、 2348 、 2352 、 2376 、 2406 ;
长代码但没有难度: 2050 。
(五):很详细
算法入门(简单题)
1000 1003 1004 1005 1006 1007 1015 (学会 dp ) 1016 1017 1018 1042 ( dp ) 1046 (简单数学) 1054 (简单的剪枝) 1062 ( dp ) 1068
1095 1113 (凸包,但规模小, O(n^2) 的也行) 1125 1127 1152 1154
1183 (用笔算算) 1218 1221 1244 1281 1312 1313 (找找规律)
1315 (学会搜索) 1321 (同 1315 ) 1323(dp)1326 1331 1491
1493 (找规律) 1503 (高精度) 1504 1517 1519 1547 1552
1563 (考虑仔细一点,还要注意精度) 1650 (不是好题) 1651 ( dp ) 1656
1657 1658 1663 1675 (计算几何) 1681 1702 (三进制运算) 1799
1828 1862 (简单数学) 1887 1906 (实战好题) 1914 1915 (宽搜)
1928 1936 1978 1979 2000 2019 ( dp 好题) 2027 (垃圾题) 2028
2078 (不要重复搜索) 2080 2081 2083 2140 2141 2184 (活用 dp )
2190 2192 2193 2196 2199 2209 22112243 2248 (搜索)
2260 2261 2262 2291 2301 2304 2309 (找规律) 2316 2317
2318 2325 2355 2357 2363 2378 (树的 dp ) 2381 2385 2393
2394 2395 2413 (高精度基础) 2418 2419
经典
1011 (搜索好题)
1012 (学会打表)
1013
1019 (它体现了很多此类问题的特点)
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 (贪心,哈哈)
2231
2305 (不需要高精度噢)
2328 (要仔细噢)
2356 (数论知识)
2359 (约瑟夫问题变种)
2392 (有趣的问题)
很繁的题
1001
1008
1087 (构图很烦,还有二分图的最大匹配)
1128 ( USACO )
1245
1329
1550 (考的是读题和理解能力)
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 (桶排和二叉树都行)