ZOJ题目分类

ZOJ题目分类
初学者题:
1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1334 1337 1338 1350 1365 1382 1383 1394 1402 1405 1414 1494 1514 1622 1715 1730 1755 1760 1763 1796 1813 1879 1889 1904 1915 1949 2001 2022 2099 2104 2108 2172 2176 2201 2208 2321 2345 2351 2376 2388 2405 2417 2433
模拟问题:
1006 1009 1012 1016 1019 1023 1026 1028 1038 1042 1045 1051 1056 1057 1058 1061 1065 1066 1068 1072 1073 1078 1087 1088 1097 1098 1099 1103 1111 1121 1124 1126 1128 1133 1138 1146 1152 1154 1160 1175 1178 1187 1194 1207 1222 1224 1244 1259 1267 1274 1275 1277 1278 1279 1281 1282 1294 1295 1300 1308 1317 1324 1339 1351 1362 1392 1393 1397 1398 1399 1400 1402 1432 1434 1444 1452 1475 1487 1493 1497 1517 1526 1527 1530 1531 1552 1569 1573 1592 1601 1610 1623 1631 1641 1652 1657 1659 1682 1692 1700 1702 1707 1708 1712 1728 1732 1737 1746 1747 1750 1752 1754 1758 1764 1768 1774 1797 1799 1804 1807 1811 1822 1824 1831 1834 1837 1838 1842 1844 1845 1854 1858 1862 1870 1881 1884 1889 1896 1906 1921 1951 1969 1978 2000 2022 2040 2046 2047 2051 2072 2084 2101 2112 2131 2133 2138 2148 2153 2156 2160 2164 2172 2178 2184 2185 2187 2189 2193 2196 2201 2204 2208 2211 2212 2220 2229 2233 2239 2240 2261 2262 2269 2277 2288 2301 2309 2311 2312 2316 2320 2321 2322 2328 2330 2350 2389 2405 2410 2414 2420 2421 2483 2508 2560 2569 2572 2593 2613 2617 2680 2681 2731 2732 2743
动态规划:
1013 1022 1025 1027 1074 1076 1093 1094 1100 1107 1108 1136 1149 1183 1196 1200 1206 1227 1234 1245 1249 1250 1276 1303 1346 1353 1366 1368 1387 1424 1425 1428 1446 1448 1449 1454 1459 1462 1463 1470 1474 1475 1483 1484 1490 1499 1503 1512 1515 1520 1524 1539 1540 1554 1563 1567 1579 1602 1607 1611 1629 1638 1642 1651 1666 1695 1713 1717 1731 1733 1736 1738 1743 1756 1757 1787 1792 1800 1819 1853 1864 1877 1880 1893 1913 1918 1925 1953 1985 1986 1988 1991 1995 2002 2014 2025 2042 2058 2059 2067 2068 2069 2081 2096 2127 2136 2142 2144 2156 2180 2189 2202 2206 2213 2224 2227 2242 2244 2254 2255 2264 2271 2278 2280 2281 2283 2284 2297 2319 2337 2338 2341 2349 2353 2354 2366 2372 2374 2397 2401 2402 2414 2422 2424 2432 2498 2501 2521 2522 2527 2536 2547 2561 2563 2565 2568 2581 2591 2598 2604 2621 2624 2625 2626 2641 2642 2667 2673 2683 2685 2692 2702 2710 2711 2734 2739 2744 2745
字符串处理问题:
1002 1004 1005 1008 1016 1019 1046 1048 1049 1050 1051 1052 1053 1054 1055 1056 1061 1063 1086 1089 1091 1094 1099 1101 1103 1111 1115 1117 1118 1120 1123 1125 1126 1129 1130 1136 1139 1143 1150 1151 1152 1154 1159 1160 1168 1170 1177 1178 1179 1180 1181 1184 1188 1189 1190 1191 1192 1195 1197 1243 1295 1315 1325 1392 1582 1698 1707 1720 1729 1808 1831 1854 1858 1905 1963 1969 1970 1984
搜索问题:
1002 1003 1008 1031 1038 1039 1041 1060 1063 1069 1080 1083 1088 1089 1103 1144 1155 1190 1204 1217 1229 1249 1297 1301 1344 1355 1361 1412 1415 1435 1443 1457 1479 1505 1518 1530 1593 1649 1671 1675 1686 1709 1711 1719 1742 1832 1909 1935 1940 1977 1984 2031 2033 2043 2053 2093 2103 2110 2128 2165 2233 2241 2252 2276 2288 2355 2372 2374
2412 2416 2418 2437 2440 2442 2466 2471 2475 2477 2509 2515 2531 2534 2580 2588 2594 2631 2633 2688
数论问题:
1007 1028 1088 1113 1133 1160 1222 1278 1284 1312 1314 1385 1489 1526 1530 1569 1577 1596 1601 1652 1657 1712 1797 1842 1889 1906 1951 2000 2022 2028 2060 2095 2105 2156 2189 2212 2233 2277 2288 2305 2316 2320 2330 2360 2371 2400 2410 2414
几何问题:
1010 1032 1037 1041 1081 1090 1104 1123 1139 1165 1199 1426 1439 1460 1472 1597 1608 1648 1683 1910 2015 2102 2107 2157 2228 2234 2318 2335 2347 2352 2361 2370 2375 2394 2403
树型结构问题:
1011 1038 1043 1062 1141 1159 1167 1203 1319 1335 1387 1406 1481 1511 1542 1586 1610 1635 1674 1700 1752 1788 1805 1809 1900 1944 1955 1959 1965 1990 2243 2425
图表问题:
1015 1030 1082 1084 1085 1105 1119 1127 1130 1140 1203 1311 1377 1420 1453 1465 1492 1589 1798 1802 1919 1935 2016 2236 2238 2281 2326
匹配问题:
1002 1059 1077 1137 1140 1157 1197 1231 1364 1516 1525 1576 1626 1654 1882 2067 2192 2221 2223 2333 2362 2404
pku题目分类
麻烦题:
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,
搜索
容易:
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,
Zoj Problem Classfication & Brief Report(Updating...)
简单题
#1001 -____-b A+B。
#1110 Dick and Jane 胡乱枚举收缩一下情况就可以了。
#1115 a[i+1] = a[i] 的全部数位上的加起来,直到剩下一个,直接模拟。
#1414 太弱太弱,按照模4 分类讨论一下即可。
#1713 简单的字符串截取和字符计数。
#1716 简单的二维数组区间求和,作累加,然后容斥一下;预处理O(W*H),查询O(1) 顶多(W-w)*(H-h) 次查询。
#1745 简单的hotter colder,滚动输入,判断一下远近即可。
#1847 该属于简单题,但涉及一个取整或许有所麻烦,精确解应该是求出平均值,再求偏差绝对值和除2。这里由于精确到分,求出平均值mean,按分求出ceil 和floor 的值。然后对于每个人,若钱< mean,求与floor 偏差绝对值加到总和中,否则与ceil 求。另外,记录偏差(不取绝对值总和),如果最后总偏差不为0,要将总偏差绝对值加到总和中。最后输出总和一半即可。
#2104 -____-b 非一般水型,输入若干个字符串,统计最多的那个输出,喜欢怎么乱搞都行。
#2176 车速限制,相当的水。
#2183 水题,读清楚题目就好,输出严格大于一半人判simple 的,没有人判hardest 的,
注意格式和没有的时候,太水了。
#2186 -____-b 只输入三个数,找出第一个<= 168 的数。
#2201 -____-b 太他妈水了:while(cin >> a >> b) puts(a >= b ? "MMM BRAINS" : "NO BRAINS");
#2207 字符的重排,直接把字符矩阵还原再变一下枚举次序即可。
#2321 足球队球员选择,很简单,就是if-else 一下即可。
#2358 求一个整数是否能表示成某些阶乘数的和,简单枚举即可,注意题目描述比较阴险,一个负数作为结束(不是-1),不然会WA 死的。
#2388 知道 x-y 和x+y 求x 和y,(x>y),相当弱啦。
#2405 求一个范围内满足某些性质的数的列表,枚举+判定即可。
#2417 -____-b 求一个整数的最低非0 二进制位。
#2476 带点格式输入输出的a+b,怎么说也还是a+b。
#2478 数手指的玩意。
#2480 矩形覆盖问题,由于规模很小,蛮力即可。注意,点击一个窗口不会使它置顶。
#2481 将该序列排序,去重之后输出。
#2482 二进制IP 转10 进制,没啥意思。
#2514 简单的字符替换。
#2548 相当简单,课程编号不超过10000 直接寻址就可以。
#2554 简单,直接枚举一下所有的点判分即可。
#2659 求六个矩形是否能拼成一个正六面体。
#2679 很弱的虫食算,直接蛮力穷举也就是O(90)。
#2722 说白了就是求二对数,也就是最高位为1 的位数。
#2736 -____-b 完全没有难度。
#2744 求一个串有多少个子串是回文,数据比较弱,直接枚举各个字母(一个或相邻两个)作为回文中心向外扩展计数。
#2773 简单的一个公式求和,也可以选择根据递推求出通项:(X^4+6*X^3+11*X^2+6*X)/8 。
#2781 按最高位取整。没啥说的。
#2795 判断一个序列的置换是否跟它本身相等。
#2807 求插座总共能提供的接口数,可见,原来墙上有一个主插口,加上所有插板的孔数,减去插板数,也就是说,结果为1+Sum(S[i]-1),S[i] 为第i 个插板的孔数。
#2812 -____-b 小学生都会做的求和。
#2830 很明显一场淘汰掉两个,因此一共有N/2 场。
#2850 如题,直接扫描一下是否一个也没有或者有两个相邻的即可,但本题有变态版。
#2857 弱智,对每个格子求三个数的平均数。
#2886 他叫干啥就干啥吧,没啥好说的。
#2932 简单的字符替换,也就甭提了。
#2947 考察一组串的开头字母拼起来是否一样,弱智题。
#2965 太简单了,怎么搞都过,直接枚举模拟到800 即可,因为明显700~799 都是CocaCola,已经可以满足输入范围了。
#2970 一个序列求最大/最小值,太弱,奥运专栏。
#2987 -____-b 不说啥了,一个字符串删掉中间一个再输出来。
#2988 也没啥好说了,公制转换,一乘一除收工。
#3100 -____-b 超水肉题,求和剔除最大最小值求平均。
#3023 换一张牌使得总和相等,先求出差值,然后枚举一下就行,n 只有100,很水。
#3121 简单模拟,字母重排。
#3124 *____*? 绝对有病的题!!!我题目都没读懂他想怎么样,然后输出= 输入AC!! 你说有病不有病?!
#3174 简单题,求给定年份之间存在多少个月,使得月份的平方等于年份的后两位或者后三位,直接枚举年月然后判定,计数即可。
#3191 根据时针的角度判断时钟所指的时间段,简单的角度转换即可解决。
#3202 -____-b 水题,求数组的最大值所在位置,以及第二大的值是什么。
#3210 判断序列经过栈的处理还是经过队列的处理。如果系列相同,则为队列,如互为回文,则为栈。
模拟
#1071 恶心模拟题,到了什么程度了捏?一个晚上,一道题交出了所有的错误。。算法:从? 开始,跟着路径往前走,碰到o 记录一次反转;碰到) 和> 插入一个节点,然后构造二叉树;构造完之后再读入字符串后序求值就行了,中间处理细节做得想吐。
#1072 模拟指令机器,纯粹模拟,把我调戏得好痛苦啊~~
#1111 有点小麻烦的模拟题,梭哈,同花顺,两手牌比大小。以不变应万变是上策。
#1122 时钟指针追赶问题,把相对位移,相对速度想清楚,再用时间求出结束位移模一下圈的格数即可。
#1404 油管最优布局,中级模拟题,对算法要求不高,直接蛮力即可。注意一下布局框的计算、坐标的位置等即可,注意题目说最北的坐标必须顶格,也就是说如果左侧坐标最大值< 10 的话左侧坐标只需要留一个位置。
#1717 DP,每个格子存放一个最优字符串,确定一个字符串"更优"的比较函数,即可不断更新到当前字符位置的最长字符串。
#1720 简单模拟,多项式的格式输出,先把各阶的基数用字符串存好,然后直接拼接,另外特殊情况稍加处理即可。
#1764 简单模拟,编程竞赛记分,只要求输出最后胜出者的题数和penalty。
#1804 推箱子,推土机,并不繁琐的模拟。注意读题,如果出现位置不够,推土机会被顶停。
#1975 画分形图。类似于2423 的做法即可。
#2108 模拟电梯的运行,策略是给定的,因此直接模拟即可。
#2161 蜂巢状直接最短路,先按照序号求出坐标,这可以参照1954 Bee Maja,然后根据两个坐标求出最短的两段折线构成的路径。假设两段路径长度为a 和b,那么结果是C(a, b)。
#2164 洗牌,简单模拟题,不用多想,直接硬搞。
#2173 流布局,很水的模拟题。
#2183 比较水的模拟,读清楚题目就好。
#2187 图像缩放,超简单模拟题,几层for 就可以搞定的事。
#2235 策略已经给出,那么直接模拟就可以了。
#2240 字符串压缩:恶心英语阅读题,比较水,具体翻译的规则见标程注释。
#2311 同2971,英文句子转阿拉伯数字。
#2312 蘑菇题,画板的模拟,关键在于字符的组合规则,先把字符的组合规则包成函数,然后画一个字符上去就只须与原来的字符组合就行了。
#2409 纸牌的蘑菇题,创建比较准则,生成所有排列并检验即可。
#2420 给出某一天是几年几月几日星期几,然后问它后面的第n 天是几年几月几日星期几,模拟硬搞就是。
#2423 画一个分形图,一个便宜的做法是,先把字符矩阵全部生成出来,放在内存里,然后再输出左上角的子阵。
#2495 五子棋局势判定,枚举起始点,然后对于每个点检测是否(右/下/坐下/右上)具有连续的棋子即可。
#2508 小蘑菇一道,Windows 的窗口点击。枚举即可,需要注意的是连击的逻辑关系。
#2529 特殊进制加法,直接用vector 运算进位,每位的进位权注意就行。
#2521 模拟足球联赛积分,只是操作上有一点麻烦,也比较简单。
#2571 字符串解压缩,可以用递归来解开,然后直接输出。
#2572 中文字,连通块搜索,注意各个字符表示的传递方向做个方向表DFS 就好了。
#2593 英语阅读+超级蘑菇,编程竞赛排名的模拟,读清楚那些麻烦的规则,然后一点一点写就是。
#2613 竞标,如果一个价格有多个人竞标,该价格无效,选取竞标价唯一的竞标胜出,否则,冲突数最少的价格胜出,胜出者为第一个竞标该价格的人。
#2635 矩阵索引加密,把矩阵生成出来转置读取就行了。
#2680 角度的转化,比较明显,要考虑到时针非整格的情况,但千万不要用浮点就是了,宁可整倍扩大,否则会引入精度误差。
#2731 Josephu 问题变种,先模拟,模拟到当前要杀掉Josephus 的时候停止,然后,假设剩下x 个,那么用J 函数求出x-1 剩下最后一个的编号是多少。详见代码注释。
#2732 典型英语阅读+ 模拟,规则很繁琐,但是没什么算法的。具体规则翻译见代码注释。
#2741 关于足球越位规则的判定,注意如下几点:1. 用浮点;2. 输入之间可能有相当多的多余空格;3. 在自己的半场,理解为x<=0 。
#2743 泡泡龙,不是很难的,搜索一下连通块即可。
#2772 剩下的钱里面,优先先提取最大面值的硬币,容易证明这样贪心的最优性。
#2782 直接模拟各个操作即可。
#2814 简单模拟,读懂题就好,给一个字符串,按照不同的间隔D 为等级抽取所有字符对,假如在所有等级中这样的对没有重复的,就是surprising,反之不是。
#2831 蘑菇版A+B,除了硬搞还是硬搞了。
#2835 幻方验证,没什么好说的。
#2840 模拟搜索,枚举一遍所有文件检查是否符合即可。
#2851 文本扫描,删除不必要的空白字符,看题吧,很水。
#2892 小波变换,相当于加密,给出规则和暗文求明文。
#2902 十滴水小游戏,用个任务队列乱搞即可。注意空格中或者玩家水箱中没水时,操作要忽略。
#2910 足球计分,格式上处理也有一定麻烦,总体来说也不难搞。
#2934 因为总是会循环的,因此把所有情况都走一遍就好,最坏不过2^16。
#2954 给出一组汉诺塔操作序列,输出结果状态,简单。
#2958 纯蘑菇题,求可能的数码组表示,反正用巧妙点的方法就可以避免复杂的代码。其中一个技巧就是用9 个二进制位表示一个数码。于是就可以通过位与求知一个数码是否能由另一个数码识别错误而来的。
#2971 英文单词数字转阿拉伯数字,比较好搞啦,不过有个变态版本,2698。
#2989 螺旋加密,注意找个好的枚举方法就行。
#2990 螺旋解密,同上,这两题都不难搞。
#2992 猴子天平,结论很简单,最大深度为h,结果就是2^(h-1)
#3009 Excel,记忆化搜索,记录每个格子的串或值进行递归,比较烦琐。
#3048 模拟消除方块的游戏,记得以前那个快译通的机子上玩过,直接DFS 最大的连通块消掉然后方块下落,如果有空行右边向左平移,跟3055 有点像,稍为简单一点。
#3050 七段码识别数字,用set 记录所有线段,根据线段的数目和查找某些特定位置的线段是否存在进行判别。
#3052 机器人与垃圾堆:1.分象限处理,2.对于垃圾堆,删除它能影响到的机器人,3.碰撞事件队列判断。详见解题报告。
#3055 对对碰,考虑方块的下落,模拟整个过程,难度一般。
#3106 成绩预测,注意输入输出,读明题意之后蛮力即可,没什么难度,新预测过的成绩并不需要追加到历史档案中。
#3109 解密,螺旋重排。
#3151 模拟题,判断两个骰子是相同的或者镜像关系还是完全不同的。第一步就是读入,将骰子类构造旋转的函数,然后用DFS 每次将骰子按指定方向旋转之后将数字填在顶面。将骰子读入之后,通过旋转枚举所有面向上,然后在作四次旋转跟另一个骰子比较。
#3179 算盘,先按照算盘形状读出实际数字,然后再验证即可,比较简单的一道题。
搜索
#1008 经典搜索,压缩数值完全相同的方块即可AC。
#1118 多维空间搜索,其实也就是一般的图dfs,只要做一个映射。这里我是硬搞的。
#1505 跳棋,状态压缩广搜,时间差不多,应该刚刚好的。
#1598 国际象棋,单后杀王,把可达格子枚举一下状态就行,8X8 很好对付。
#1832 字符串搜索,把一组字符串配对,使得合并之后相同。先对所有串V[N] 字典序排好序,枚举前缀V[i],那么必须V[i] 是V[i+N/2-1] 的前缀,否则剪掉,然后找到长度能与V[i] 配对的后缀V[j],得到Pattern,然后DFS 回溯验证。
#2100 播种,本质是一个哈密顿路的问题,范围还比较小,直接DFS 一下可以过。
#2103 周游路线,NP 的搜索,注意搜索的起点和回溯的条件,如果有奇度点,则必从奇度点开始搜索。
#2165 地图连通块搜索,BFS 或者并查集都行。
#2203 搜索+ 剪枝:求一个1..n 的排列,使得任意相邻2..d 个数之和均为素数。
#2207 中位排列,给5 个字母的排列,求某个排列使得它到所有给出的排列距离最短,直接枚举所有排列即可,这用STL 的next_permutation 硬来最好了。
#2243 笛卡尔树的构造,有线性的方法,详细方法参见TopCoder 算法教程里面RMQ & LCA 那篇文章有介绍。
#2274 好变态,一直都是在优化一个常数因子:构造一个图邻接矩阵X[1..N][1..N],X[i][j] 表示A[i] A[j] 是否互质;同时构造一个邻接表存X[i][j]==true 的部分和 X[i][j]==false 的部分。然后枚举顶点i,从邻接表中枚举另外两个j,k,看邻接矩阵j,k 是否相邻
#2406 求一个图从源到汇的所有长度不超过限制的路径,并按长度排序输出,直接蛮力回溯所有路径即可,然后存储路径之后排序输出。
#2412 地图DFS 变种,决定一个点是否能通向另一个点的充要条件取决于这两个相邻的点。
#2416 开密码盘最少需要多少步,BFS 一下就完了。
#2418 要枚举所有行的不同移位方案的组合,最多n^n 种,但是要剪枝:1. 第一行可以不动,总是移位0;2. 再求值的时候增加分支限界,当某一列总和大于现有结果,直接break。
#2512 对称的项链,枚举中心位置向两边检查就是了。
#2520 格雷码的生成,简单dfs 一下就可以了。
#2576 问题可以转化为求2 * k 的所有切分,使最大的小于等于k,用DFS 可以生成出所有的组合。
#2580 9*9 数独求解,回溯,注意搜索的时候注意次序,总是填不同的选择数最少的,这样
才能比较快。
#2730 DFS 回溯所有状态,把相邻两个珠子的颜色配对作为状态标记进行回溯。
#2734 规模极小,直接DFS 回溯一下就过了。
#2891 bt++ 的搜索,基本是DFS,然后先枚举长度(从大到小),然后判别,标记上用排列,n! 可以,标记禁止的长度。注意题意:1. 必须由两根以上拼接;2. 不可以有开断相同的地方。
#2922 炸弹,记忆化搜索,比较简单。
#2925 多米诺骨牌,只能用BFS,DFS 是错的。
#2936 访问权限,英语阅读题,动态维护:大写字母代表文件,小写字母代表用户,问最后权限的分布,其实很简单。
#2938 打水漂,没啥难的,枚举一下参数就好。
#2951 环形物资传递:求最小的传递代价。反正在最优的策略下,必定有一条路径没有传递。枚举这条路径都计算一次就行了,O(n^2) 的复杂度。还可以归约成最小费用最大流来做。
#2977 蛮力枚举第一行的情况,然后剩下的就唯一确定了,需要加位运算优化。
#3010 开灯关灯游戏,硬枚举所有组合状态,2^N。
#3059 广搜,关键在于骰子状态的表示,用top 和north 的排列作为状态即可。可以预处理出各个状态向四面滚能够到达的状态,然后BFS 即可。
#3094 敢死队,很经典的一道题,二分+ BFS。首先需要做一个预处理,处理出每一个格子离最近的敌营的距离:这可以通过对所有敌营入队列BFS 得出。然后二分一个最近距离,这个结果应该处于0 到X + Y 之间。对于二分的每一个值bound,从起点BFS 到终点。可走的点为所有到敌营距离>= bound 的格子。这样就可以二分了。
#3110 入门级dfs,三维的地图,种子填充法。
#3158 切蛋糕,dfs 枚举出所有状态,注意,每一行两边都必须有蛋糕(不能一边没有)。
#3196 算是一道比较水的搜索题,关键在于用dfs 暴力找出所有可能的符号排列。
贪心
#1117 经典贪心,哈夫曼编码。
#1184 硬币称重,经典,1.若被判平,左右所有球必正常;2.若判轻或判重,对应球被判轻、重记数+1;3.只有球只被判轻或判重,且次数跟天平不平衡次数相等,该球才能是坏的,否则必然是好的。
#1409 求最佳带宽价格比,其中带宽为所有组件的带宽最小值,价格为各个组件价格总和,用贪心即可:记录所有可能的带宽,然后枚举带宽求最优价格值,直接贪心得到当时的比例更新最大值。
#1543 将原式稍微展开,发现各个数字分别被开方了N 次,N-1 次...剩下因子是不变常数。因此贪心让大的数先结合,预排序即可。
#2067 数矩形,保存每个格子同以行往右最多的白格子数(包括自身),然后作O(n^3) 的枚举。
#2109 肥老鼠系列:简单的贪心即可,从最大比例的入手。
#2229 骑车上学,贪心,O(n),枚举所有车子,如果:1. 开始时间< 0 的,不予考虑,太快的赶不上,太慢的赶上也没用。2. 开始时间> 0 的,Charley 和最早到达的车子一起到达。
#2256 计程车计费的策略,怎么坐最便宜:当有整8 公里以上,换成18 块钱。有剩下的,如果剩下5 块以下,按2.4 块每公里算。当然,这里必须是在输入为8 公里以上才能这样算。否则的话,按照先跑10 公里,再跑2 元每公里算。
#2376 所有蚁碰头后不改方向互换身份,因此等价于只会直走互相穿透。
#2397 田忌赛马,经典的贪心,具体见解题报告。
#2422 1985 的升级版,现将本题形象化,就是一组并排矩形包含的最大矩形面积,用两个栈,来回扫一遍即可。
#2433 如果N <= 3 无法达到,否则,修的高速公路肯定是1..i 和i-1..n,这样,只需恰当选取i 令i-1..i 这段路最短即为最优。
#2488 排序之后贪心,假设前i-1 根都断了,那么剩下重量取决于第i 根,并且,加入剩下的n-i 根,那么当前的承重为A[i]*(n-i),扫描一遍求出这个最大值即可。
#2511 很水很直白,直接加起来,然后贪心取最大就行了。
#2536 背包,先将现有的砝码全部背包一次,然后每增加一个砝码,就取最小的不符值作为新的砝码加入再背包,所有砝码加完之后剩下的不符值就是结果。不过这样做很慢的,也是刚刚够时间和内存。
#2581 找出一条欧几里德图的最短周游回路,满足:先只往右走到最右点,再走回最左点,要覆盖所有点,求最短回路长度。具体贪心方法见程序注释。
#2585 回文距离,简单的统计各个字母出现次数,统计差别数的绝对值求和即可。
#2592 把从头累加的数组FD[] 和从尾累加的数组BK[] 求出,并且求出某个位置往前FD[] 的最小值,往后BK[] 的最大值,然后枚举j 判别即可,详见程序注释。
#2642 堆栈贪心法,给一个数组A[N],对于区间i, j 之间,函数f(i, j) = SUM(A[i..j]) * MIN(A[i..j]),求MAX(f(i, j)), 0 <= i <= j < N。首先,对数组求和预处理,于是可以O(1) 得到区间的求和。然后,用堆栈贪心法:求出第i 个元素左边第一个比它小的下标L[i],和右边第一个逼它大的下标R[i]。预处理O(N),现在可以求出最小值是A[i] 时的最宽区间即为L[i]+1..R[i]-1,然后枚举i,求最大的A[i] * SUM(A[L[i]+1..R[i]-1]),O(N) 可以处理完毕。
#2656 要从某个站开始直到结束,油量保持为正即可。可以用堆栈做到线性的处理,具体解释见程序注释。
#2658 可以证明,假设所有A~Z 的字母统计数序列为C[k],对C[k] 排序,两个序列是YES 的充要条件是已排序C[k] 和C'[k] 完全相同。
#2670 构造一个贪心算法的反例,其实不难想出,看程序注释有一种构造方法。
#2688 很巧妙的一道最优化题,大概可以列入贪心的范畴。题目要求一个5 维空间的Manhattan 距离N 点最远点对距离,可以用O(2 ^ 5 * N) 的方法解决。详见解题报告。
#2878 明显,找到最大的铺号max,最小的铺号min,Michael 将车停在这区间内任一个地方,最少刚好走2*(max-min) 的距离。
#2883 明显全部要买,并且折扣的个数有且仅有N/3 个,于是先排序,然后贪心从大往小取,每次取3 个。
#2921 股票买卖:经典的贪心,先记录所有档案,然后从尾到头遍历;遍历之前创建一个优先队列,存放当天之后剩余的价格p 和剩余

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值