Loading

上一页 1 2 3 4 5 6 7 8 ··· 23 下一页
摘要: "题目链接" 题意 中文题意 思路 做这题的前置技能学习 1. "康托展开" 这个东西我认为就是在排列组合问题上的Hash算法,可以压缩空间。 2. A 搜索。 这里我使用了像k短路一样的做法,从最终状态倒回去预处理一遍距离,但是跑了0.8s,可能是预处理花费的时间太多了。有些人用 "曼哈顿距离估价 阅读全文
posted @ 2017-09-25 09:46 Shadowdsp 阅读(420) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 中文题意。 思路 对于每一个骑士,可以先预处理出到达地图上某个点的需要走的步数,然后最后暴力枚举地图上每一个点,让三个骑士走过的距离之和最小即可。 C++ include using namespace std; const int INF = 300; const int N 阅读全文
posted @ 2017-09-24 09:23 Shadowdsp 阅读(219) 评论(0) 推荐(1) 编辑
摘要: "题目链接" 题意 中文题意。 思路 首先找到空白的格子,因为空白的格子可以和其他的骑士换。从空白的点开始搜索,每次和其他点交换。因为最多只有十五步,可以做16次搜索,搜索的时候,记录走过的步数和至少剩余的步数(还剩下多少个骑士不在原本的位置),这样剪枝。当check到所有的骑士都在合法位置的时候, 阅读全文
posted @ 2017-09-23 22:39 Shadowdsp 阅读(335) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出n个点m条边的无向图,求次短路。 思路 和 "POJ 2449" 类似,只不过大小要开成long long。 C++ include using namespace std; typedef long long LL; const int N = 100011; const 阅读全文
posted @ 2017-09-23 00:51 Shadowdsp 阅读(173) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出n个点m条有向边,源点s,汇点t,k。问s到t的第k短路的路径长度是多少,不存在输出 1. 思路 A\ 算法是启发式搜索,通过一个估价函数 f(p) = g(p) + h(p) ,其中源点到p的距离是g(p),从p到汇点的距离是h(p),从源点经过p点到达汇点的长度f(p), 阅读全文
posted @ 2017-09-22 18:33 Shadowdsp 阅读(239) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出一个长度为n的数组,每次操作都要删除数组里面非递增的元素,问最终的数组元素有什么。 思路 容易想到用链表模拟删除,但是不能每次都暴力枚举,这样复杂度O(N^2)。想到每次删除元素的时候只会影响前后,因此考虑从前面一个位置开始检查,而不用每次都扫一遍。每次check的时候,发现 阅读全文
posted @ 2017-09-19 00:00 Shadowdsp 阅读(318) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出三个圆上的点,和一个目标的点,问目标点是否在这三个点构成的圆外面。 思路 许久没见过的Java高精度,不要加package!!! 阅读全文
posted @ 2017-09-17 20:13 Shadowdsp 阅读(175) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出n个点,要把除1以外的点分成k个集合,然后对于每个集合要和1这个点一起求一个最小生成树,然后问这k个最小生成树的最大总和是多少。 思路 因为每个集合都包含1这个点,因此对于每个点都至少有一条到1的路径。可以从1开始DFS,对于每个点u,它和父亲的边的贡献最多可以是min(sz 阅读全文
posted @ 2017-08-02 10:28 Shadowdsp 阅读(464) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出一个n和一个k,求1~n的每个区间的第k大的总和是多少,区间长度小于k的话,贡献为0. 思路 首先有一个关系:当一个数是第k大的时候,前面有x个比它大的数,那么后面就有k x 1个比它大的数。 比赛的时候队友想出了用set来维护。一开始是一个空的set,先插入大的数,那么当之 阅读全文
posted @ 2017-08-02 09:23 Shadowdsp 阅读(1193) 评论(3) 推荐(1) 编辑
摘要: "题目链接" 题意 给出n个数,问在这n个数里面,有多少组bi(1 using namespace std; const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; typedef long long 阅读全文
posted @ 2017-07-30 21:36 Shadowdsp 阅读(223) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 给出一棵有n个结点的树,每个结点有一个颜色,问在这棵树的所有路径中,每条路径的颜色数求和是多少。 思路 求每种颜色的贡献可以转化为总的和减去每种颜色在哪些路径上没有出现的贡献,一个颜色在树块中的贡献为sz (sz 1)/2。 这个题就是把一棵树分成许多个树块然后统计。 1号结点为 阅读全文
posted @ 2017-07-26 22:03 Shadowdsp 阅读(861) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 有n次事件,q个队列,s个传感器。每个传感器接到一个队列,每个队列有一个容量。 接下来执行n次事件,每次事件都会有一个最大发送数据量d。和s个数据a,代表这次给每个s填入a的数据量。 每次事件执行完后都要将队列里面的数据发送总和为d的数据量。这一次事件的数据发送后队列剩余的数据可 阅读全文
posted @ 2017-07-20 23:23 Shadowdsp 阅读(646) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 有n个点,其中有m个点是铁矿,k个点是煤,从1号点出发,你可以派一些士兵跑向不同的点,问占领至少一个铁矿和一个煤的时候,最少需要占领多少个点。 思路 建两幅图,其中一幅是正向边,一幅是反向边。做三次BFS。 第一遍BFS:从1号点BFS一遍整个正向边的图,记录数组dis[0][i 阅读全文
posted @ 2017-07-20 23:12 Shadowdsp 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 以下内容学自: "Git教程" 本地基础操作 1. 命令可以显示当前的目录。 2. 通过 命令把当前的目录变成Git可以管理的仓库。 3. 把文件添加到仓库。 4. 5. 通过 命令查看当前仓库状态。 6. 可以查看修改了什么内容。 7. 可以查看 的历史记录。 8. n是倒回第几个历史版本。可以将 阅读全文
posted @ 2017-07-20 08:49 Shadowdsp 阅读(463) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题意 有n个人,每个人有一个出现时间a和一个开枪时间b和一个距离d,在任意一个时刻,你可以选择炸人,你要炸一个人的花费是和他的距离d,并且所有的已经出现并且还没开枪的和你距离 using namespace std; define N 605 const int INF = 0x3f3 阅读全文
posted @ 2017-07-19 07:46 Shadowdsp 阅读(382) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 23 下一页