摘要: 本题做法 Dijkstra最短路+离散化思想。 思路 这其实是一道 Dijkstra 最短路的裸题,只需要对于每一次询问做一次 Dijkstra 然后判断输出即可。 这题有意思的点在于它的编号不是数字而是字符串,我们在这种情况下可以使用离散化思想,将每一个字符串通过 map 映射到一个唯一的数字上, 阅读全文
posted @ 2025-05-14 22:47 2789617221guo 阅读(5) 评论(0) 推荐(0)
摘要: 本题做法 Floyd 弗洛伊德最短路算法。 思路 求全源最短路,再输出 \(g[1]][n]\) 即可。 代码 #include<bits/stdc++.h> using namespace std; const int INF=0x7fffffff; const double EPS=1e-8; 阅读全文
posted @ 2025-05-11 21:13 2789617221guo 阅读(13) 评论(0) 推荐(0)
摘要: 本题做法 DFS+剪枝。 思路 \(30pt\):朴素 DFS 定义 DFS 函数为:void dfs(int x,int y,int t),其中 \(x\) 和 \(y\) 为当前搜索的坐标,\(t\) 代表当前要走第几步。 DFS 函数主体内每次都根据当前方向一直走,直到走到墙壁或尽头,则退出函 阅读全文
posted @ 2025-04-21 19:23 2789617221guo 阅读(8) 评论(0) 推荐(0)
摘要: 本文为本人在OI竞赛中的一些代码规范。 1. include 本人一般只使用一个头文件 bits/stdc++.h 万能头,且放在代码的开头。 #include<bits/stdc++.h> 2. using 一般情况下,本人通常都会使用 std 命名空间。 using namespace std; 阅读全文
posted @ 2025-04-11 12:09 2789617221guo 阅读(14) 评论(0) 推荐(0)
摘要: 本题做法 位运算。 思路 这题的数据范围使用 int 存储不下,得用 unsigned int。 读入后,我们就要开始考虑如何获取高低位的问题了。 我们都知道,C++ 中的右移运算是可以将一个正整数的二进制右移一位的,我们要忽略后 16 位,我们就可以通过 n>>16 获取高位。 那怎么获取低位呢? 阅读全文
posted @ 2025-04-10 12:53 2789617221guo 阅读(24) 评论(0) 推荐(0)
摘要: 本题做法 二分,贪心。 思路 二分答案,每次使用 \(check\) 函数检验。 \(check\) 函数:定义 2 个变量 \(now\) 和 \(nxt\),分别代表当前快乐值以及下一块要吃的巧克力。从 1 遍历到 \(d\),每次先将 \(now\) 除以 2,若 \(now<mid\),则一 阅读全文
posted @ 2025-04-09 13:33 2789617221guo 阅读(46) 评论(0) 推荐(0)
摘要: 本题做法 二分+优先队列。 思路 这题有几个坑点: 二分的 \(l,r\) 最好使用 unsigned long long 类型,以及需要特判答案可能是 0 的情况。 二分开始时 \(r\) 设置成 \(1\text e18\) 会被卡常,最好的方法是设置成 \(\max(s,len)\)。 二分答 阅读全文
posted @ 2025-04-08 22:21 2789617221guo 阅读(32) 评论(0) 推荐(0)
摘要: 本题做法 二分,贪心。 思路 我们可以二分最大化答案 \(x\),每次使用 \(check\) 函数测试当前二分的答案是否正确。 \(check\) 函数:定义变量 \(cnt\) 和 \(nxt\),分别代表当前答案可以放置的牛数量以及下一个符合当前答案的位置。初始时,\(cnt=1,nxt=a[ 阅读全文
posted @ 2025-04-08 18:52 2789617221guo 阅读(28) 评论(0) 推荐(0)
摘要: 本题做法 二分查找,排序。 思路 我们可以先将科技创新奖的名单读入到 \(b\) 数组中,特殊贡献奖的名单读入到 \(a\) 数组中,然后先排序 \(a\) 数组,接着就开始遍历 \(b\) 数组,对于每一次遍历,我们在 \(a\) 中二分查找 \(b_i\),若存在,则输出 \(b_i\)。 为什 阅读全文
posted @ 2025-04-07 22:07 2789617221guo 阅读(31) 评论(0) 推荐(0)
摘要: 本题做法 BFS。 思路 简单的 BFS 打卡题。从 m 的位置开始 BFS,直到找到 d 的位置,此时由于是按照层序搜索的,所以步数一定是最少的,故直接输出步数,程序退出。最后如果 BFS 结束后依然没有输出,则直接输出 No Way!。 代码 #include <bits/stdc++.h> # 阅读全文
posted @ 2025-03-24 19:47 2789617221guo 阅读(16) 评论(1) 推荐(0)