diff --git a/README.md b/README.md index e94b4285..4c570c05 100644 --- a/README.md +++ b/README.md @@ -372,25 +372,38 @@ 通知:开始更新图论内容,图论部分还没有其他语言版本,欢迎录友们提交PR,成为contributor -### 深搜广搜 +1. [图论:理论基础](./problems/kamacoder/图论理论基础.md) +2. [图论:深度优先搜索理论基础](./problems/kamacoder/图论深搜理论基础.md) +3. [图论:所有可达路径](./problems/kamacoder/0098.所有可达路径.md) +4. [图论:广度优先搜索理论基础](./problems/kamacoder/图论广搜理论基础.md) +5. [图论:岛屿数量.深搜版](./problems/kamacoder/0099.岛屿的数量深搜.md) +6. [图论:岛屿数量.广搜版](./problems/kamacoder/0099.岛屿的数量广搜.md) +7. [图论:岛屿的最大面积](./problems/kamacoder/0100.岛屿的最大面积.md) +8. [图论:孤岛的总面积](./problems/kamacoder/0101.孤岛的总面积.md) +9. [图论:沉没孤岛](./problems/kamacoder/0102.沉没孤岛.md) +10. [图论:水流问题](./problems/kamacoder/0103.水流问题.md) +11. [图论:建造最大岛屿](./problems/kamacoder/0104.建造最大岛屿.md) +12. [图论:字符串接龙](./problems/kamacoder/0110.字符串接龙.md) +13. [图论:有向图的完全可达性](./problems/kamacoder/0105.有向图的完全可达性.md) +14. [图论:岛屿的周长](./problems/kamacoder/0106.岛屿的周长.md) +15. [图论:并查集理论基础](./problems/kamacoder/图论并查集理论基础.md) +16. [图论:寻找存在的路径](./problems/kamacoder/0107.寻找存在的路径.md) +17. [图论:冗余连接](./problems/kamacoder/0108.冗余连接.md) +18. [图论:冗余连接II](./problems/kamacoder/0109.冗余连接II.md) +19. [图论:最小生成树之prim](./problems/kamacoder/0053.寻宝-prim.md) +20. [图论:最小生成树之kruskal](./problems/kamacoder/0053.寻宝-Kruskal.md) +21. [图论:拓扑排序](./problems/kamacoder/0117.软件构建.md) +22. [图论:dijkstra(朴素版)](./problems/kamacoder/0047.参会dijkstra朴素.md) +23. [图论:dijkstra(堆优化版)](./problems/kamacoder/0047.参会dijkstra堆.md) +24. [图论:Bellman_ford 算法](./problems/kamacoder/0094.城市间货物运输I.md) +25. [图论:Bellman_ford 队列优化算法(又名SPFA)](./problems/kamacoder/0094.城市间货物运输I-SPFA.md) +26. [图论:Bellman_ford之判断负权回路](./problems/kamacoder/0095.城市间货物运输II.md) +27. [图论:Bellman_ford之单源有限最短路](./problems/kamacoder/0095.城市间货物运输II.md) +28. [图论:Floyd 算法](./problems/kamacoder/0097.小明逛公园.md) +29. [图论:A * 算法](./problems/kamacoder/0126.骑士的攻击astar.md) +30. [图论:最短路算法总结篇](./problems/kamacoder/最短路问题总结篇.md) +31. [图论:图论总结篇](./problems/kamacoder/图论总结篇.md) -* [图论:深度优先搜索理论基础](./problems/图论深搜理论基础.md) -* [图论:797.所有可能的路径](./problems/0797.所有可能的路径.md) -* [图论:广度优先搜索理论基础](./problems/图论广搜理论基础.md) -* [图论:200.岛屿数量.深搜版](./problems/0200.岛屿数量.深搜版.md) -* [图论:200.岛屿数量.广搜版](./problems/0200.岛屿数量.广搜版.md) -* [图论:695.岛屿的最大面积](./problems/0695.岛屿的最大面积.md) -* [图论:1020.飞地的数量](./problems/1020.飞地的数量.md) -* [图论:130.被围绕的区域](./problems/0130.被围绕的区域.md) -* [图论:417.太平洋大西洋水流问题](./problems/0417.太平洋大西洋水流问题.md) -* [图论:827.最大人工岛](./problems/0827.最大人工岛.md) -* [图论:127. 单词接龙](./problems/0127.单词接龙.md) -* [图论:841.钥匙和房间](./problems/0841.钥匙和房间.md) -* [图论:463. 岛屿的周长](./problems/0463.岛屿的周长.md) -* [图论:并查集理论基础](./problems/图论并查集理论基础.md) -* [图论:1971. 寻找图中是否存在路径](./problems/1971.寻找图中是否存在路径.md) -* [图论:684.冗余连接](./problems/0684.冗余连接.md) -* [图论:685.冗余连接II](./problems/0685.冗余连接II.md) (持续更新中....) diff --git a/problems/kamacoder/0047.参会dijkstra堆.md b/problems/kamacoder/0047.参会dijkstra堆.md index a0778d2d..60507582 100644 --- a/problems/kamacoder/0047.参会dijkstra堆.md +++ b/problems/kamacoder/0047.参会dijkstra堆.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # dijkstra(堆优化版)精讲 [卡码网:47. 参加科学大会](https://kamacoder.com/problempage.php?pid=1047) diff --git a/problems/kamacoder/0047.参会dijkstra朴素.md b/problems/kamacoder/0047.参会dijkstra朴素.md index 10474f13..5b214a34 100644 --- a/problems/kamacoder/0047.参会dijkstra朴素.md +++ b/problems/kamacoder/0047.参会dijkstra朴素.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # dijkstra(朴素版)精讲 [卡码网:47. 参加科学大会](https://kamacoder.com/problempage.php?pid=1047) diff --git a/problems/kamacoder/0053.寻宝-Kruskal.md b/problems/kamacoder/0053.寻宝-Kruskal.md index 527f0e70..a97409aa 100644 --- a/problems/kamacoder/0053.寻宝-Kruskal.md +++ b/problems/kamacoder/0053.寻宝-Kruskal.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # kruskal算法精讲 [卡码网:53. 寻宝](https://kamacoder.com/problempage.php?pid=1053) diff --git a/problems/kamacoder/0053.寻宝-prim.md b/problems/kamacoder/0053.寻宝-prim.md index f1b3b721..782bd143 100644 --- a/problems/kamacoder/0053.寻宝-prim.md +++ b/problems/kamacoder/0053.寻宝-prim.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # prim算法精讲 [卡码网:53. 寻宝](https://kamacoder.com/problempage.php?pid=1053) diff --git a/problems/kamacoder/0054.替换数字.md b/problems/kamacoder/0054.替换数字.md index 45a0aa54..32d77748 100644 --- a/problems/kamacoder/0054.替换数字.md +++ b/problems/kamacoder/0054.替换数字.md @@ -1,11 +1,4 @@ -

- - - -

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!

- - # 替换数字 [卡码网题目链接](https://kamacoder.com/problempage.php?pid=1064) @@ -376,9 +369,3 @@ main(); ### Rust: - -

- - - - diff --git a/problems/kamacoder/0055.右旋字符串.md b/problems/kamacoder/0055.右旋字符串.md index 4dea19a8..28ee5e30 100644 --- a/problems/kamacoder/0055.右旋字符串.md +++ b/problems/kamacoder/0055.右旋字符串.md @@ -1,9 +1,4 @@ -

- - - -

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!

# 右旋字符串 @@ -343,9 +338,3 @@ var reverseLeftWords = function(s, n) { ### Rust: - - -

- - - diff --git a/problems/kamacoder/0094.城市间货物运输I-SPFA.md b/problems/kamacoder/0094.城市间货物运输I-SPFA.md index eb3204b6..2480b12c 100644 --- a/problems/kamacoder/0094.城市间货物运输I-SPFA.md +++ b/problems/kamacoder/0094.城市间货物运输I-SPFA.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # Bellman_ford 队列优化算法(又名SPFA) [卡码网:94. 城市间货物运输 I](https://kamacoder.com/problempage.php?pid=1152) diff --git a/problems/kamacoder/0094.城市间货物运输I.md b/problems/kamacoder/0094.城市间货物运输I.md index 7cadc378..f72bfc00 100644 --- a/problems/kamacoder/0094.城市间货物运输I.md +++ b/problems/kamacoder/0094.城市间货物运输I.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # Bellman_ford 算法精讲 [卡码网:94. 城市间货物运输 I](https://kamacoder.com/problempage.php?pid=1152) diff --git a/problems/kamacoder/0095.城市间货物运输II.md b/problems/kamacoder/0095.城市间货物运输II.md index ea706579..4eab01a8 100644 --- a/problems/kamacoder/0095.城市间货物运输II.md +++ b/problems/kamacoder/0095.城市间货物运输II.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # bellman_ford之判断负权回路 [卡码网:95. 城市间货物运输 II](https://kamacoder.com/problempage.php?pid=1153) diff --git a/problems/kamacoder/0096.城市间货物运输III.md b/problems/kamacoder/0096.城市间货物运输III.md index 2b9f44fc..96f9a9c8 100644 --- a/problems/kamacoder/0096.城市间货物运输III.md +++ b/problems/kamacoder/0096.城市间货物运输III.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # bellman_ford之单源有限最短路 [卡码网:96. 城市间货物运输 III](https://kamacoder.com/problempage.php?pid=1154) diff --git a/problems/kamacoder/0097.小明逛公园.md b/problems/kamacoder/0097.小明逛公园.md index f4b53acf..5465c356 100644 --- a/problems/kamacoder/0097.小明逛公园.md +++ b/problems/kamacoder/0097.小明逛公园.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # Floyd 算法精讲 [卡码网:97. 小明逛公园](https://kamacoder.com/problempage.php?pid=1155) diff --git a/problems/kamacoder/0098.所有可达路径.md b/problems/kamacoder/0098.所有可达路径.md index ca4f117c..c4cfc8f9 100644 --- a/problems/kamacoder/0098.所有可达路径.md +++ b/problems/kamacoder/0098.所有可达路径.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 98. 所有可达路径 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1170) diff --git a/problems/kamacoder/0099.岛屿的数量广搜.md b/problems/kamacoder/0099.岛屿的数量广搜.md index 993c01f2..fc7f38e9 100644 --- a/problems/kamacoder/0099.岛屿的数量广搜.md +++ b/problems/kamacoder/0099.岛屿的数量广搜.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 99. 岛屿数量 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1171) diff --git a/problems/kamacoder/0099.岛屿的数量深搜.md b/problems/kamacoder/0099.岛屿的数量深搜.md index 7fac4cb8..37f7086a 100644 --- a/problems/kamacoder/0099.岛屿的数量深搜.md +++ b/problems/kamacoder/0099.岛屿的数量深搜.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 99. 岛屿数量 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1171) diff --git a/problems/kamacoder/0100.岛屿的最大面积.md b/problems/kamacoder/0100.岛屿的最大面积.md index 2e2ed4f3..19292be7 100644 --- a/problems/kamacoder/0100.岛屿的最大面积.md +++ b/problems/kamacoder/0100.岛屿的最大面积.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 100. 岛屿的最大面积 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1172) diff --git a/problems/kamacoder/0101.孤岛的总面积.md b/problems/kamacoder/0101.孤岛的总面积.md index 5be25611..b300b58c 100644 --- a/problems/kamacoder/0101.孤岛的总面积.md +++ b/problems/kamacoder/0101.孤岛的总面积.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 101. 孤岛的总面积 [卡码网:101. 孤岛的总面积](https://kamacoder.com/problempage.php?pid=1173) diff --git a/problems/kamacoder/0102.沉没孤岛.md b/problems/kamacoder/0102.沉没孤岛.md index 43666325..5491a8e3 100644 --- a/problems/kamacoder/0102.沉没孤岛.md +++ b/problems/kamacoder/0102.沉没孤岛.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 102. 沉没孤岛 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1174) diff --git a/problems/kamacoder/0103.水流问题.md b/problems/kamacoder/0103.水流问题.md index 0f461edb..259321b6 100644 --- a/problems/kamacoder/0103.水流问题.md +++ b/problems/kamacoder/0103.水流问题.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 103. 水流问题 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1175) diff --git a/problems/kamacoder/0104.建造最大岛屿.md b/problems/kamacoder/0104.建造最大岛屿.md index a1be8fb1..b68e4442 100644 --- a/problems/kamacoder/0104.建造最大岛屿.md +++ b/problems/kamacoder/0104.建造最大岛屿.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 104.建造最大岛屿 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1176) diff --git a/problems/kamacoder/0105.有向图的完全可达性.md b/problems/kamacoder/0105.有向图的完全可达性.md index 9903b6d7..dfaa3be8 100644 --- a/problems/kamacoder/0105.有向图的完全可达性.md +++ b/problems/kamacoder/0105.有向图的完全可达性.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 105.有向图的完全可达性 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1177) @@ -192,7 +194,7 @@ int main() { **第二种写法注意有注释的地方是和写法一的区别** -```c++ +```CPP 写法二:dfs处理下一个要访问的节点 #include #include diff --git a/problems/kamacoder/0106.岛屿的周长.md b/problems/kamacoder/0106.岛屿的周长.md index 2233c2db..34063039 100644 --- a/problems/kamacoder/0106.岛屿的周长.md +++ b/problems/kamacoder/0106.岛屿的周长.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 106. 岛屿的周长 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1178) diff --git a/problems/kamacoder/0107.寻找存在的路径.md b/problems/kamacoder/0107.寻找存在的路径.md index 30b8e587..906609c9 100644 --- a/problems/kamacoder/0107.寻找存在的路径.md +++ b/problems/kamacoder/0107.寻找存在的路径.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 107. 寻找存在的路径 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1179) diff --git a/problems/kamacoder/0108.冗余连接.md b/problems/kamacoder/0108.冗余连接.md index 4e8ea4cf..70884139 100644 --- a/problems/kamacoder/0108.冗余连接.md +++ b/problems/kamacoder/0108.冗余连接.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 108. 冗余连接 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1181) diff --git a/problems/kamacoder/0109.冗余连接II.md b/problems/kamacoder/0109.冗余连接II.md index 09b6118b..9c2f4039 100644 --- a/problems/kamacoder/0109.冗余连接II.md +++ b/problems/kamacoder/0109.冗余连接II.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 109. 冗余连接II [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1182) diff --git a/problems/kamacoder/0110.字符串接龙.md b/problems/kamacoder/0110.字符串接龙.md index cac33c23..84b1dd65 100644 --- a/problems/kamacoder/0110.字符串接龙.md +++ b/problems/kamacoder/0110.字符串接龙.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 110. 字符串接龙 [卡码网题目链接(ACM模式)](https://kamacoder.com/problempage.php?pid=1182) diff --git a/problems/kamacoder/0117.软件构建.md b/problems/kamacoder/0117.软件构建.md index 1cd9a983..5d1edf97 100644 --- a/problems/kamacoder/0117.软件构建.md +++ b/problems/kamacoder/0117.软件构建.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 拓扑排序精讲 [卡码网:117. 软件构建](https://kamacoder.com/problempage.php?pid=1191) diff --git a/problems/kamacoder/0121.大数减法.md b/problems/kamacoder/0121.大数减法.md index a36f2cbb..84d55249 100644 --- a/problems/kamacoder/0121.大数减法.md +++ b/problems/kamacoder/0121.大数减法.md @@ -1,4 +1,6 @@ +

参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!

+ # 大数减法 本题测试数据超过int 和 longlong了,所以考察的使用 string 来模拟 两个大数的 加减操作。 diff --git a/problems/kamacoder/0129.小美的蛋糕切割.md b/problems/kamacoder/0129.小美的蛋糕切割.md new file mode 100644 index 00000000..84bbbd6f --- /dev/null +++ b/problems/kamacoder/0129.小美的蛋糕切割.md @@ -0,0 +1,49 @@ + +前缀和 + +```CPP + +#include +#include +#include + +using namespace std; +int main () { + int n, m; + cin >> n >> m; + int sum = 0; + vector> vec(n, vector(m, 0)) ; + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + cin >> vec[i][j]; + sum += vec[i][j]; + } + } + // 统计横向 + vector horizontal(n, 0); + for (int i = 0; i < n; i++) { + for (int j = 0 ; j < m; j++) { + horizontal[i] += vec[i][j]; + } + } + // 统计纵向 + vector vertical(m , 0); + for (int j = 0; j < m; j++) { + for (int i = 0 ; i < n; i++) { + vertical[j] += vec[i][j]; + } + } + int result = INT_MAX; + int horizontalCut = 0; + for (int i = 0 ; i < n; i++) { + horizontalCut += horizontal[i]; + result = min(result, abs(sum - horizontalCut - horizontalCut)); + } + int verticalCut = 0; + for (int j = 0; j < m; j++) { + verticalCut += vertical[j]; + result = min(result, abs(sum - verticalCut - verticalCut)); + } + cout << result << endl; +} +``` diff --git a/problems/kamacoder/0130.小美的字符串变换.md b/problems/kamacoder/0130.小美的字符串变换.md new file mode 100644 index 00000000..cd889995 --- /dev/null +++ b/problems/kamacoder/0130.小美的字符串变换.md @@ -0,0 +1,79 @@ + +# 130.小美的字符串变换 + +本题是[岛屿数量](./0099.岛屿的数量广搜.md)的进阶版,主要思路和代码都是一样的,统计一个图里岛屿的数量,也是染色问题。 + +1、 先枚举各个可能出现的矩阵 +2、 针对矩阵经行广搜染色(深搜,并查集一样可以) +3、 统计岛屿数量最小的数量。 + +```CPP +#include +#include +#include +#include +using namespace std; + +// 广搜代码同 卡码网:99. 岛屿数量 +int dir[4][2] = {0, 1, 1, 0, -1, 0, 0, -1}; // 四个方向 +void bfs(const vector>& grid, vector>& visited, int x, int y, char a) { + queue> que; + que.push({x, y}); + visited[x][y] = true; // 只要加入队列,立刻标记 + while(!que.empty()) { + pair cur = que.front(); que.pop(); + int curx = cur.first; + int cury = cur.second; + for (int i = 0; i < 4; i++) { + int nextx = curx + dir[i][0]; + int nexty = cury + dir[i][1]; + if (nextx < 0 || nextx >= grid.size() || nexty < 0 || nexty >= grid[0].size()) continue; // 越界了,直接跳过 + if (!visited[nextx][nexty] && grid[nextx][nexty] == a) { + que.push({nextx, nexty}); + visited[nextx][nexty] = true; // 只要加入队列立刻标记 + } + } + } +} + + +int main() { + int n; + string s; + cin >> n; + int result = INT_MAX; + cin >> s; + for (int k = 1; k < n; k++) { + if (n % k != 0) continue; + // 计算出 矩阵的 行 和 列 + int x = n / k; + int y = k; + //cout << x << " " << y << endl; + vector> vec(x, vector(y, 0)); + // 填装矩阵 + int sCount = 0; + for (int i = 0; i < x; i++) { + for (int j = 0; j < y; j++) { + vec[i][j] = s[sCount++]; + } + } + + // 开始广搜染色 + vector> visited(x, vector(y, false)); + int count = 0; + for (int i = 0; i < x; i++) { + for (int j = 0; j < y; j++) { + + if (!visited[i][j]) { + count++; // 遇到没访问过的陆地,+1 + bfs(vec, visited, i, j, vec[i][j]); // 将与其链接的陆地都标记上 true + } + } + } + // 取岛屿数量最少的 + result = min (result, count); + + } + cout << result << endl; +} +``` diff --git a/problems/kamacoder/0131.小美的树上染色.md b/problems/kamacoder/0131.小美的树上染色.md new file mode 100644 index 00000000..1f5212b0 --- /dev/null +++ b/problems/kamacoder/0131.小美的树上染色.md @@ -0,0 +1,5 @@ +# 131. 小美的树上染色 + +贪心的思路 : https://blog.csdn.net/weixin_43739821/article/details/136299012 + +dp思路:https://www.cnblogs.com/ganyq/p/18111114 diff --git a/problems/kamacoder/小美的排列询问.md b/problems/kamacoder/小美的排列询问.md new file mode 100644 index 00000000..0e58e39a --- /dev/null +++ b/problems/kamacoder/小美的排列询问.md @@ -0,0 +1,29 @@ + +小美的排列询问 + +注意 x 和y 不分先后 + +```CPP + +#include +#include +using namespace std; +int main() { + int n, x, y; + cin >> n; + vector vec(n, 0); + for (int i =0; i < n; i++) { + cin >> vec[i]; + } + cin >> x >> y; + for (int i = 0; i < n - 1; i++) { + if (x == vec[i] && y == vec[i + 1]) || (y == vec[i] && x == vec[i + 1]) ) { + cout << "Yes" << endl; + return 0; + } + } + cout << "No" << endl; + +} + +``` diff --git a/problems/kamacoder/小美走公路.md b/problems/kamacoder/小美走公路.md new file mode 100644 index 00000000..7d63b751 --- /dev/null +++ b/problems/kamacoder/小美走公路.md @@ -0,0 +1,30 @@ + + +两个注意点 + +1. x 可以比 y 大,题目没规定 x 和y 的大小顺序 +2. 累计相加的数可能超过int + + +```CPP +#include +#include +using namespace std; +int main () { + int n; + cin >> n; + vector vec(2* n + 1, 0); + for (int i = 1; i <= n; i++) { + cin >> vec[i]; + vec[n + i] = vec[i]; + } + int x, y; + cin >> x >> y; + int xx = min(x ,y); // 注意点1:x 可以比 y 大 + int yy = max(x, y); + long long a = 0, b = 0; // 注意点2:相加的数可能超过int + for (int i = xx; i < yy; i++) a += vec[i]; + for (int i = yy; i < xx + n; i++ ) b += vec[i]; + cout << min(a, b) << endl; +} +```