manacher应用
https://vjudge.net/contest/237352#problem/F 题意:给出一个字符串,判断该字符串能否分成三个回文串。 解法:运用manacher算法,求出以每个i为中心的回文串长度p[i],从而预处理出所有的前缀回文串和后缀回文串。 分别枚举每个前缀回文串和后缀回文串,判断中间的字符串是否也为回文串,判断方法为:找到中间字符串的中心点k,比较2*p[k]-1以及中间字符串长度的大小,若2*p[k]-1较大,则中间字符串也是回文串;否则不是。 manacher原理参考博
ORM数据库框架 greenDAO
Github 简介 GitHub 官网 Features greenDAO 3 Documentation Changelog Technical FAQ Non-Technical FAQ 寻找比SQLite更快的对象持久化方案[object persistence]? 查看我们的新移动数据库ObjectBox(GitHub)。 greenDAO是一款轻巧快捷的Android版ORM,可将对象映射到SQLite数据库。 greenDAO针对Android进行了高度优化,性能卓越,占用内存极少
hdu6346: 整数规划
读完题目就想费用流和单纯形去了。 实际上,我们发现这个题目的求解问题。 其实就是KM算法求二分图最小权匹配的做法,跑个KM就行了。 然后这个题写递归的KM根本过不了,得用非递归的。 1 #include <bits/stdc++.h>
2 using namespace std;
3 #define LL long long
4 #define inf 1000000000000ll
5 inline int read() {
6 char ch = getchar();
Oracle中的rownum和ordey by
排序遇到的坑: 在oracle中同时使用rownum和ordey by时,会出现两种结果。 排序字段为主键,则先执行排序,再插入行号; 排序字段为其他时,rownum会先插入行号,在根据排序字段排序 在今天的利用时间排序时,就遇到了这个问题。先插入行号,在根据时间排序,结果在取分页数据时,出现了偏差。 oracle中有另一个函数 row_number() over(), over() 可以进行排序,并且执行顺序在 where order by 之后。可以直接利用这个来进行排序和插入
tplink路由器DMZ设置
设置完成后,DMZ主机访问不了? 请排查以下方面: 1、确认服务器搭建成功,即内网可以正常访问; 2、确认在DMZ主机中填写的服务器IP地址正确; 3、宽带直接连接服务器并配置上网,确认外网可以正常访问; 4、尝试关闭服务器防火墙。 http://service.tp-link.com.cn/detail_article_2442.html
http://service.tp-link.com.cn/download/20177/TL-WDR6300%20V7.0%E3%80%81TL-WDR
洛谷1764 翻转游戏 - 枚举 + 搜索
题目描述 kkke在一个n*n的棋盘上进行一个翻转游戏。棋盘的每个格子上都放有一个棋子,每个棋子有2个面,一面是黑色的,另一面是白色的。初始的时候,棋盘上的棋子有的黑色向上,有的白色向上。现在kkke想通过最少次数的翻转,使得棋盘上所有的棋子都是同一个颜色向上的(即全是黑色向上的,或全是白色向上的)。每次翻转的时候,kkke可以选择任意一个棋子,将它翻转,同时,与它上下左右分别相邻的4个棋子也必须同时翻转。 输入输出格式 输入格式: 输入的第一行是一个整数n,表示棋盘是n*n的, 接下来有n行
CentOS下升级默认的OpenSSH操作记录(升级到OpenSSH_7.6p1)
近期对IDC机房服务器做了一次安全漏洞扫描,漏扫结果显示服务器的OpenSSH版本太低(CentOS6默认是OpenSSH_5.3p1),存在漏洞隐患,安全部门建议升级到OpenSSH_7.6p1。升级OpenSSH的操作并不复杂,但由于是线上环境,故需要谨慎操作。特别需要注意的是:如果是通过ssh远程连接服务器后进行的版本升级操作,万一升级失败了,则ssh就远程登录不上去了。当然,如果服务器安装了iDRAC远程管理卡就好说了,如果没有iDRAC远程管理卡,则需要提前开启telnet远程登录(
socket编程-tcp
server.py import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 第一个参数为套接字的地址家族AF_INET代表网络套接字,第二个参数SOCK_STREAM代表数据流式tcp协议
phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 当服务端关闭时,再重启服务端,有时地址还没有释放,会出现Address alread
PAT Basic 1085
1085 PAT单位排行 每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。 输入格式: 输入第一行给出一个正整数 N(≤105),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息: 准考证号 得分 学校
其中准考证号是由 6 个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;得分是 [0, 100] 区间内的整数;学校是由不超过 6 个英文字母组成的单位码(大小写无关)。注意:题目保证每个考生的准考证号是不同的。
1-3 MySQL5.7安装脚本与初始化脚本
本文参考: http://www.unixfbi.com/1.html MySQL5.7安装脚本 # cat mysql.sh
groupadd mysql
useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M mysql
id mysql
yum install libaio -y
mkdir /opt/mysql/ -pv
tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.g
Linux16.04 LTS 环境下将cmake的项目转换成eclipse可导入可调试的工程项目
Linux作为一个开源系统,其中的一个优势就是有效的将各种源码编译得到的库集合在一起,为项目的使用创建了便捷。通常情况下,我们在开发自己的开源项目时,喜欢使用cmake调用各种三方库,如opencv , pcl , g2o等,里已有的函数辅助自己的程序开发,目前主流的方法是在项目中写CMakeLIsts.txt文件,采用cmake命令将三方库的动态库链接到项目中,这种方法省去了在IDE中繁杂的环境配置问题。 已经写好的项目的目录结构一般的如下所示: project---------------
[ZJOI2010]基站选址
题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就村庄被基站覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi。现在的问题是,选择基站的位置,使得总费用最小。 输入输出格式 输入格式: 输入文件的第一行包含两个整数N,K,含义如上所述。 第二行包含N-1个整数,分别表示D2,D3,…,DN ,这N-1个数是递增
hdu6348: 序列计数
鉴于给定的排列是随机的。 那么有一个结论,最长上升子序列是$\sqrt n$级别的。 那么我么就可以DP了。 1 #include <bits/stdc++.h>
2 using namespace std;
3 #define M 300
4 #define MOD 1000000007
5 int a[100010];
6 int f[10010][310];
7 int res[310];
8 int n;
9 int C[10010];
10 inline void
今日推荐
周排行