原题链接 题意:俄罗斯套娃,给出一个初始状态和终止状态,问至少需要多少步操作才能实现状态转化 贪心做法如果完全拆掉再重装,答案是p[i]和q[i]中不为0的值的个数。现在要求寻找最小步数,显然要减去一些多余的步数。如果初始的一些链的前端是终止的某一条链的连续的一部分,那么这条链就不用被拆开再连上,这 ...
分类:
其他好文 时间:
2017-08-01 00:50:16
阅读次数:
251
http://www.lydsy.com/JudgeOnline/problem.php?id=2002 维护cnt[i]表示第i个节点,跳出他所属于的块的最小步数, to[i]表示第i个节点,跳出他所属的块的时候,去到那一个位置。 那么, 查询:复杂度O(sqrt(n)),不断 ans += cn ...
分类:
其他好文 时间:
2017-07-21 22:08:52
阅读次数:
184
一、题目 1、描述 2、题意 给出一个数组,每一步最多前进该下标所表示的数值,求到达数组末尾所花费的最小步数。 二、解答 1、思路: 贪心策略, 每步前进的地方使下一步能达到的地方最远,最后所得即为最小步数。 ...
分类:
其他好文 时间:
2017-07-04 21:36:41
阅读次数:
131
链接:poj 3009 题意:在一个冰面网格板上,有空白处(无障碍),和障碍块。有一个小石头,给定其起点和终点。求从起点到终点的最小步数 规则:小石头不能在障碍区运动,一旦从某一方向開始运动,不会改变方向,也不会停止。除非碰到障碍物或到达终点才会停止,这为一步。若碰到障碍物。小石头将停在障碍物的旁边 ...
分类:
Web程序 时间:
2017-06-24 13:12:59
阅读次数:
140
【算法】Link-Cut Tree 【题意】一个n个数字组成的序列,a[i]表示移动到i+a[i]处,序列值可动态修改,求从i处开始移动到序列外的最小步数。 【题解】将序列视为n个点,外界视为n+1,则每个点有且只有一条边连出去,由该性质可知是一个基环内向森林,问题转化为支持插入删除边并求点(n+1 ...
分类:
其他好文 时间:
2017-06-21 22:02:43
阅读次数:
146
给定一个大小为N*M的迷宫,由通道('.')和墙壁('#')组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置。试求出起点到终点的最小步数。(本题假定迷宫是有解的) (N,M<=100) 样例输入: 10 10 样例输出: 22 分析:像最短路径,最少操作之类的问题 ...
分类:
其他好文 时间:
2017-05-29 12:48:15
阅读次数:
144
HDU1997 题意:排列汉诺塔需要的最小步数是2^N-1 排列过程中会生成2^N个排列,判断一个序列是否发生了额外的移动步数,也就是完成汉诺塔话费的步数多余2^N-1. 模拟法: 1:在正确的排列中,最大的n盘一定在a或c柱上,否则false 2:如果n在a柱上,剩下n-1个盘处在a->b的过程中 ...
分类:
其他好文 时间:
2017-05-21 10:56:50
阅读次数:
139
题意: 给n个士兵的坐标。要把他们移动到水平且相邻的一行。求最小步数。 分析: 中位数法,y方向易求,x方向x0->n+i与x0-i->n是相应的。故也能够转换成y方向的情况。 代码: //poj 1723 //sep9 #include <iostream> #include <algorithm ...
分类:
其他好文 时间:
2017-05-07 11:44:46
阅读次数:
87
题意 : 定义两种变换 1 : i = i - 1 2 : i = i - lowbit (i) 定义函数Calc(i,j)为二进制意义下 i 变换到 j 的最小步数。 给你一个二进制整数 n,要求 sigma {(i = 1 -> n) sigma {(j = 0 -> i - 1) Calc ( ...
分类:
其他好文 时间:
2017-03-23 19:53:06
阅读次数:
196
题意:有一个n*m的格子,每个格子都有黑白两面(0表示白色,1表示黑色)。我们需要把所有的格子都反转成黑色,每反转一个格子,它上下左右的格子都会跟着反转。请求出用最小步数完成反转时每个格子反转的次数。有多个解时,输出字典序最小的一组。 思路就是先判断第一行,然后如果第一行确定了,那么第二行就必须确定 ...
分类:
其他好文 时间:
2017-03-16 03:16:38
阅读次数:
195