题意 给你两个4位素数a, b 你每次可以改变a的一位数但要求改变后仍为素数 求a至少改变多少次才能变成b
基础的bfs 注意数的处理就行了 出队一个数 然后入队所有可以由这个素数经过一次改变而来的素数 知道得到b
#include
#include
using namespace std;
const int N = 10000;
int p[N], v[N], d[N],...
分类:
其他好文 时间:
2015-04-02 07:57:44
阅读次数:
156
两个栈模拟一个队列,1号栈为入队,栈顶表示队尾;2号栈为出队,栈顶表示队首。
入队,直接进1号栈;出队,先判断2号栈是否有元素,有元素就直接弹出栈顶即队首,如果2号栈没有元素,则将1号栈的元素顺序弹出并进2号栈。
[cpp] view
plaincopy
#include
#include
#include
using name...
分类:
其他好文 时间:
2015-04-01 15:25:38
阅读次数:
139
jQuery中的queue和dequeue是一组很有用的方法,他们对于一系列需要按次序运行的函数特别有用。特别animate动画,ajax,以及timeout等需要一定时间的函数queue和dequeue的过程主要是:1,用queue把函数加入队列(通常是函数数组)2,用dequeue将函数数组中的...
分类:
Web程序 时间:
2015-04-01 11:13:03
阅读次数:
116
将建立的线程加入队列之中,他们都是并发执行的 如果想有一个线程在另外一个线程之后再执行的话 有一个方法可以实现- (void)addDependency:(NSOperation *)op; 这一个在GCD中很难实现的 只有get_main_queue才是一个接着一个执行的 但是NSOperationQueue就自带的有这个方法
两个线程并发执行,如何在这两个线程执行完之后再执行第三个线...
分类:
其他好文 时间:
2015-03-31 12:51:23
阅读次数:
152
暴力搜索(广搜),注意要先判断再加入队列,否则会超内存
#include
#include
#include
#include
#define maxn 100000+5
using namespace std;
int dir[2]={1,-1};
int vis[maxn]={0};
int n,m,re;
int maxx;
struct stu
{
int x,s;
};
voi...
分类:
其他好文 时间:
2015-03-31 09:07:23
阅读次数:
136
StackElement请看栈的实现
package com.lip.datastruture.stack;
public class Queue
{
private StackElement obj;//保存数据
private int size;// 元素个数
public Queue()
{
this.size = 0;
}
// 入队列
public...
分类:
编程语言 时间:
2015-03-31 00:51:50
阅读次数:
172
官方题解:
因为我们要求最后的拓扑序列字典序最大,所以一定要贪心地将标号越大的点越早入队。我们定义点i的入度为di。假设当前还能删去k条边,那么我们一定会把当前还没入队的di≤k的最大的i找出来,把它的di条入边都删掉,然后加入拓扑序列。可以证明,这一定是最优的。
具体实现可以用线段树维护每个位置的di,在线段树上二分可以找到当前还没入队的di≤k的最大的i。于是时间复杂度就是O((n+m)lo...
分类:
其他好文 时间:
2015-03-29 12:16:12
阅读次数:
132
题意:n个点m条有向边组成的有向无环图,可以最多删除k条边让他的拓扑序最大。输出最大的拓扑序。
思路:在以前的topsort中是入读为零的点入队列,这里有k次机会可以删除边,那么我就把所有入度<=k的点全入队列,用优先队列维护最大的点序列号,去掉点最大序列号的所有入边,将它加入到拓扑序中,这样贪心是最优的。...
分类:
其他好文 时间:
2015-03-29 10:55:34
阅读次数:
144
题目:Word Ladder
/**LeetCode word ladder
* 题目:给定一个起始单词和一个终结单词以及一个字典,要求每次变换一个字符,成为字典中新的词,直到变为最后的词,要求其最短路径
* 思路:利用队列,先弹出第一个词,分别将词中每一个字符替换直到找到一个字典中存在的词,加入队列,直到匹配的词是最后一个,此时终止
* 如果没有这样的路径,则返回0
*/
packag...
分类:
其他好文 时间:
2015-03-29 00:39:19
阅读次数:
168
struct TreeNode{
ElemtType val;
TreeNode *left,*right;
};
1.判定一棵二叉树是否是完全二叉树
借助于层次遍历的算法,将所有结点入队列,包括空结点。出队遇到空结点时,查看其后是否有非空结点,若有,则不是完全二叉树。bool isComplete(TreeNode* root){
TreeNode* Q[Max...
分类:
其他好文 时间:
2015-03-28 23:18:46
阅读次数:
373