tmp

51nod 1565 模糊搜索

老子叫甜甜 提交于 2019-11-27 01:04:28
这。。。好强啊 \(QwQ\) 思路:卷积? \(FFT\) ? 提交: \(5\) 次 错因:一开始的预处理写错了(竟然只错了最后几个大点)闹得我以为 \(FFT\) 写挂了 \(QwQ\) 题解: 对四种字符分开考虑:我们设 \(a[char][i]\) 表示在第一个串 \(s\) 中,对于 \(char \in \{'A','C','G','T'\}\) 来说 \(i\) 位置是否能模糊匹配,换言之,若 \(s[i]==char\) ,则 \(a[char][j]=1,j\in [i-k,i+k]\) 。 而对于第二个串 \(t\) 不做特殊处理,直接 \(b[char][i]=[t[i]==char]\) 。 我们在不加优化时,计算答案是 \(O(n^2)\) 的 for(R i=0;i<=lens-lent;++i) for(R j=1;j<=lent;++j) if(a[char][i+j]&&b[char][j]) ++c[i]; 最后需要统计 \(tmp=\sum [t[i]==char]\) ,若 \(c[i]==tmp\) 表示对 \(char\) 匹配成功。 所以我们要做 \(4\) 遍,对于每一个字符都做一遍。 考虑优化 \(O(n^2)\) 的过程:我们发现把 \(t\) 和 \(b\) 倒过来的话,上面的枚举相当于是一个卷积。 于是我们可以 \(FFT\

从上到下打印二叉树

ぃ、小莉子 提交于 2019-11-26 22:23:00
【问题】从上往下打印出二叉树的每个节点,同层节点从左至右打印。 【思路】此题目实为层次遍历,二叉树的遍历除了层次遍历外,还有先序,中序,后序遍历,之前的文章中讲的很详细了!层次遍历需要队列来进行数据的储存!!!并且层次遍历的迭代版非常容易实现,自行看代码吧。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> res; if(!root) return res; //如果为空,则需要返回空vector queue<TreeNode *> tmp; tmp.push(root); while(!tmp.empty()){ TreeNode* node = tmp.front(); res.push_back(node->val); //取出队头数据 tmp.pop(); if(node->left) tmp.push(node->left); if(node->right) tmp.push

栈的压入,弹出序列

余生颓废 提交于 2019-11-26 22:22:26
【问题】输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 【思路】 在这个题目中由于是判断压入序列和弹出序列是不是一个堆栈真正的过程,那么思路就很简单了,使用一个堆栈去模拟这个过程不就好了! 首先遍历pushV,堆栈tmp压入每一个元素,在压入的同时需要判断需不需要将这个元素弹出呢?判断方法为:tmp的栈顶和popV数组中的元素是否一样,如果一样就弹出,注意这个弹出过程需要进行循环判断( 可能一次弹出多个数 )!最后通过判断tmp栈是否为空即可得到结果! class Solution { public: bool IsPopOrder(vector<int> pushV, vector<int> popV) { if(pushV.size() == 0) return false; stack<int> tmp; int j = 0; // popV的索引 for(auto i: pushV){ tmp.push(i); // 判断栈顶是否 while(j < popV.size() && tmp.top() == popV[j])

mysql热备份工具mysqlhotcopy

非 Y 不嫁゛ 提交于 2019-11-26 22:12:07
mysql 热备 在运维中需定期备份mysql,为崩溃后的恢复数据做准备。一般分为冷备和热备,冷备就是停掉mysql服务,直接cp文件,但是在生产环境中,很少有机会这样,一般都是在mysql提供服务的时候就进行备份,因此这牵扯到数据一致性的问题。所以,在MyISAM存储引擎下,我们的思路就是:锁表 –>备份–>解锁 # 进入mysql环境 锁表 root @mysql : test > flush tables with read lock ; # 在系统环境下 备份 cp -R test /tmp/backup/test_back # 进入mysql环境 解锁 root @mysql : test > unlock tables ; mysqlhotcopy 热备工具 当然也可通过mysql自带的工具 mysqlhotcopy 解决,事实上mysqlhotcopy是个perl程序,提供MyISAM下的锁表备份解锁操做。因为是perl脚本,所以需要机器上有PERL-DBD 模块,不然会报错: Can’t locate DBI.pm in @INC ,安装过程很简单,在这里: perl-DBI连接mysql mysqlhotcopy也很简单,参数可用 –help 查看 # 备份test库为新的test_tmp库,与test同级目录 mysqlhotcopy --user =root

在Linux上安装Memcached服务(转)

懵懂的女人 提交于 2019-11-26 21:49:07
下载并安装Memcache服务器端 服务器端主要是安装memcache服务器端. 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装) 官网:http://www.monkey.org/~provos/libevent/ 下载:http://www.monkey.org/~provos/libevent-1.3.tar.gz 用wget指令直接下载这两个东西.下载回源文件后。 1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr;然后make;然后make install; 2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr;然后make;然后make install; 这样就完成了Linux下Memcache服务器端的安装。详细的方法如下: 1.分别把memcached和libevent下载回来,放到 /tmp 目录下: # cd /tmp

go语言快速入门:Web开发框架(10)

无人久伴 提交于 2019-11-26 20:32:41
go语言进行开发Web开发,虽然使用go语言自身的包即可实现,但是需要快速开发的时候对初学者还是有一定的障碍。go语言有上千个开源的项目,而这其中也不乏面向web开发的框架,比如Revel/beego/iris等。 beego beego的开发者是中国的astaxie,是受了tornado 和 sinatra的启发而做出的一个简单易用功能强大的web框架。目前已有很多企业使用者。 安装 [root @liumiaocn beego] # export GOPATH=/tmp/goprj/beego [root @liumiaocn beego] # go get github.com/astaxie/beego [root @liumiaocn beego] # go get github.com/beego/bee [root @liumiaocn beego] # export PATH=$PATH:/tmp/goprj/beego/bin 创建项目 [root@liumiaocn beego]# bee new helloprj ______ | ___ \ | |_/ / ___ ___ | ___ \ / _ \ / _ \ | |_/ /| __/| __/ \____/ \___| \___| v1.6.2 2017/01/31 16:02:02 WARN ?

8.10-DayT3游走(wander)

有些话、适合烂在心里 提交于 2019-11-26 20:01:30
题目大意 lue.. 题解 先跑一遍tarjan 缩点,在新图中加入两个强连通分量之间的边,则此图为一个有向无环图( DAG )。则最终答案为 1 点所在的强连通分量或包括 1 点的几个强连通分量的点数之和。 如果为几个强连通分量则由于该图为 DAG 而题中要求为从 1 点出发又回到 1 点, 故路径中一定包含一条反向边。又由于强连同分量中的点彼此强连同,故该反向边一定为两个强连同分量之间的边。 故路径为一条边 + 一条经过一点所在强连通分量的路径。 图中每个点代表一个强连通分量。其中 1 为包含 1 点的强通分量。 其中路径为 k-->........3-->1-->2-->4-->......-->n ,而反向边为边 k-->n 因此,最终答案即为求如上一条包含点最多的路径。 考虑边 k-->n ,边 k-->n 一定为缩点后强连通分量之间的边。如果首先求出路径长度则枚举边 k-->n 即可。而路径长度一定为 k-->1 的包含点最多的路径长度与 1-->n 的包含点最多的路径的点的个数之和减 1 点所在的强连通分量包含的点的个数。 故可以预处理出 1 点所在的强连通分量到其他强连通分量的路径中最多包含点的个数,再将所有强连通分量间的边反向,求 1 点所在的强连通分量到其他强连通分量的路径中最多包 含点的个数,既求其他强连通分量到 1 点所在的强连通分量的路径中最多包含点的个数

Oracle12c RAC数据导出至Oracle11g

ε祈祈猫儿з 提交于 2019-11-26 19:18:09
一、Oracle12c导出数据 1.连接数据库 sqlplus / as sysdba 2.查看pdbs show pdbs; 3.切换pdb alter session set container=spdb1pdb; 4.指定dump存放路径 create directory dump as '/tmp/dumpdata'; 5.查询表空间及大小 select tablespace_name,sum(bytes)/1048576 from cdb_data_files group by tablespace_name; 6.导出数据 expdp user/passwd@localhost:1521/spdb1pdb directory=dump dumpfile=dump190809.dump logfile=dump190809.log version=11.2.0.4.0 cluster=n; 注:加参数schemas={} 报错 以下报错解决方式: dump路径/tmp/dumpdata,在tmp目录新建dumpdata文件夹 等待导出完成 二、Oracle11g导入 1.查看导出文件及日志 2.将文件拷贝至11g服务器 scp dump190809.dump root@192.168.0.64:/tmp 因网络原因两台服务器不通,通过其他途径拷贝至对应服务器即可 3

Leetcode之回溯法专题-90. 子集 II(Subsets II)

∥☆過路亽.° 提交于 2019-11-26 18:16:54
Leetcode之回溯法专题-90. 子集 II(Subsets II) 给定一个可能包含重复元素的整数数组 nums ,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] 分析:是78题的升级版,新增了一些限制条件,nums数组是会重复的,求子集。 class Solution { List<List<Integer>> ans = new ArrayList<>(); public List<List<Integer>> subsetsWithDup(int[] nums) { if(nums.length==0) return ans; dfs(nums,0,new ArrayList<Integer>()); return ans; } public void dfs(int[] nums,int step,ArrayList<Integer> list){ if(step>=nums.length){ List<Integer> tmp = new ArrayList<>(list); Collections.sort(tmp); if(!ans.contains(tmp)){ ans.add(new ArrayList<>(tmp));