hdu 3746 Cyclic Nacklace
#include<stdio.h>
#include<string.h>
char str[100005];
int next[100005];
int len;
void getNext()
{
next[0] = -1;
int i = 0,j = -1;
while(i < len)
{
if(j == -1 |...
hdu 3086 最长回文
manacher算法的讲解:https://segmentfault.com/a/1190000008484167#include <iostream>
#include <cstring>
#include <algorithm>
#include<stdio.h>
using namespace std;
char s[300000];
cha...
poj 3974 Palindrome
#include <iostream>
#include <cstring>
#include <algorithm>
#include<stdio.h>
using namespace std;
char s[2000000];
char s_new[2000000];
int p[2000000];
int Init()
{
int ...
hdu 2594 Simpsons’ Hidden Talents
题意:给两个字符串s1,s2,找出串s1中恰好是s2后缀的最长前缀。将两个字符串连接起来,再利用next数组即可求解,需要注意的是找到的最长前缀的长度需要小于s1,s2的长度。#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s1[100005]...
hdu 3294 Girls' research
题意:将字符串按规则转换,再manacher#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
char s[200005], s_new[400010];
int len,p[400010];
int init()
{
s_new[0] = '$...
hdu 4763 Theme Section
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn = 1e6 + 10;
char str[maxn];
int len,nxt[maxn];
void GetNext()
{
nxt[0] = -1;
int...
fzu 1901 Period II
next数组的应用,假设字符串长度为len,则next[len]的值为整个字符串的最长前后缀的长度。len - next[len]即为题目所求p#include<stdio.h>
#include<string.h>
const int maxn = 1e6+10;
char s[maxn];
int len,next[maxn];
int ans[maxn];
void...
hdu 4513 吉哥系列故事――完美队形II
manacher算法,在求p数组时多加个判断条件即可。#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn = 1e5+10;
int h[maxn],H[maxn],p[maxn];
int n;
int init()
{
...
hdu 1233 还是畅通工程 (Prim算法)
模板Prim算法:设G =(V,E)是无向连通带权图,在生成树的过程中,把已经在生成树中的结点看作一个集合(U),把剩下的结点看作另一个集合(V-U),从连接两个集合的边中选择一条权值最小的边即可,直到U = V。时间复杂度为:O(n*n)空间复杂度:O(n)适用于稠密图#include<stdio.h>
#include<string.h>
const int INF ...
javascript base64 encode decode 支持中文
* Crypto.js 支持中文 // Base64编码说明
// Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
// 为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
// http://tool.o
ubuntu16.4安装 VirtualBox
1) 从oracle官网下载virtual box安装包 2) 安装支持包 sudo apt-get install libqt5x11extras5 libsdl1.2debian 3) sudo dpkg -i virtualbox-5.2_5.2.14-123301_Ubuntu_xenial_amd64.deb
c/c++ 用前序和中序,或者中序和后序,创建二叉树
c/c++ 用前序和中序,或者中序和后序,创建二叉树 用前序和中序创建二叉树 //用没有结束标记的char*, clr为前序,lcr为中序来创建树
//前序的第一个字符一定是root节点,然后去中序字符串中找到root节点的位置,然后在root节点位置的左边查找,root的左节点,如果找到就作为root节点的左节点;
//然后再在root节点位置的右边查找,root的右节点,如果找到就作为root节点的右节点,以此类推。
//if(k > cnt) return;这句代码非常重要,在
HDU-3507Print Article 斜率优化DP
学习:https://blog.csdn.net/bill_yang_2016/article/details/54667902 HDU-3507 题意:有若干个单词,每个单词有一个费用,连续的单词组合成一块有花费:(∑Ci)^2+M,问如何分单词,使得这些花费和最小。 思路:dp,但是由于数据n = 5e5,所以需要利用斜率优化dp,维护一个下凸包。 大佬的分析:http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html;
ubuntu使用git提交github时,执行pull或者push命令要重新输入用户名和密码
ubuntu使用git提交github时,执行pull或者push命令要重新输入用户名和密码: 1:问题现象: hlp@hlp:~/code/github_code/catch_imooc1$ git push
Username for 'https://github.com': XXXX
Password for 'https://[email protected]':
Counting objects: 20, done.
2:问题原因: 使用git clone 克隆代码的时候默认使用了h
[bzoj 1616][Usaco2008 Mar]Cow Travelling游荡的奶牛
题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草。Farmer John在某个时刻看见贝茜在位置 (R1, C1),恰好T (0 < T <= 15)秒后,FJ又在位置(R2, C2)与贝茜撞了正着。 FJ并不知道在这T秒内贝茜是否曾经到过(R2, C2),他能确定的只是,现在贝茜在那里。 设S为奶牛在T秒内从(R1, C1)走到(R2, C2)所能选择的路径总数,FJ希望有一个程序来帮他计算这个值。每一
poj 1287 Networking (Kruskal算法模板)
克鲁斯卡尔算法:时间复杂度 :O(eloge)空间复杂度:O(n)适用于稀疏图#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;algorithm&gt;
using namespace std;
const int maxn = 55;
const int maxm = 2510;
int F[maxn];
int m,n...
利用 ping 命令检查主机网络是否连通的方法
ping 命令使用 PING (Packet Internet Groper)命令是一个用于测试网络连接是否正常的工具。ping 发送一个 ICMP(Internet Control Messages Protocol)echo 请求报文给目的地主机并报告是 否收到返回的 echo 响应报文。用法: ping [-t] [-a] [-n count] [-l s...
今日推荐
周排行