自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 注意内容

int范围:±21亿 double等浮点数比较问题,eps一般取1e-9 atan2=actan(); STL库各类形象描述: vector动态数组 set集合 queue队列 map映射,插入元素是元组, pair元组 pow函数速度非常慢,必要条件下可以进行相应的预处理。 for(int i=1;i<=150;i++) for(int j=1;j<=4...

2019-10-10 13:23:41 260

原创 最短Hamilton路径

最短Hamilton路径 此题大体上不难为状压DP,但坑点在于刚开始必须从0出发,因此j就不能取0,因为j如果取0,则在找的之前的不含0位置的i就是不合法的 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; const ll maxn = 20; ...

2019-11-07 11:19:26 194

转载 scanf()、gets()和getline()读取输入

canf()和gets()函数是C语言函数;而getline()是C++函数。以上三个函数都可以用来接收控制台的输入。 1.scanf()与gets() 1.1 处理字符串 gets()函数用来接收输入的字符串,而scanf()可以接收多种格式的数据。两个函数遇到回车符都会认为是输入结束,但是gets()可以接收空格,但是scanf()则不行。例如 char char_array[20] = {0...

2019-10-31 23:13:03 941

原创 欧拉筛

int n, cnt = 0; int prime[100001];//存素数 bool vis[100001];//保证不做素数的倍数 scanf("%d", &n); memset(vis, false, sizeof(vis));//初始化 memset(prime, 0, sizeof(prime)); for(int i =...

2019-10-26 00:14:14 542

原创 POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)

Description Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation, he discovered that although he can’t predict the quality of milk from o...

2019-10-24 13:27:43 173

转载 POJ - 3693 Maximum repetition substring(后缀数组求重复次数最多的连续重复子串)

题意:求给出一个串,求重复次数最多的连续重复子串。 思路:膜拜后缀数组神论文和cxlove的题解:比较容易理解的部分就是枚举长度为L,然后看长度为L的字符串最多连续出现几次。 既然长度为L的串重复出现,那么str[0],str[l],str[2l]……中肯定有两个连续的出现在字符串中。 那么就枚举连续的两个,然后从这两个字符前后匹配,看最多能匹配多远。 即以str[il],str[il+l]前后匹...

2019-10-24 13:19:09 184

转载 Repeats SPOJ - REPEATS

SPOJ REPEATS Repeats (后缀数组 + RMQ:子串的最大循环节)题解 题意: 给定一个串s,s必有一个最大循环节的连续子串ss,问最大循环次数是多少 思路: 我们可以知道,如果一个长度为L的子串连续出现了两次及以上,那么必然会存在s[0]、s[L]、s[2L]⋯s[L∗k]中至少有两个连续的位置是相同的,然后看字母s[L∗i]和s[L∗(i+1)]往前往后最多能匹配多远,记住总...

2019-10-24 13:00:11 279 1

原创 Power Strings——一个字符串由一个子串重复n次形成,求n的最大值

我们可以发现当一个串由长度为i的子串循环组成时 1: rank[0] = rank[i] + 1 2: len % i == 0 3: heig[rak[0]] == len - i 此题用倍增法会超时,所以要用dc3 #include<cstdio> #include<algorithm> #include<queue> #include<iostre...

2019-10-23 17:39:54 146

原创 Distinct Substrings——找不同的子串个数

#include <iostream> #include <string.h> #include <algorithm> #include <stdio.h> using namespace std; const int MAXN = 1010; /* *suffix array *倍增算法 O(n*logn) *待排序数组长度为n,放在0~n-1...

2019-10-23 17:35:48 232

原创 Music Theme-不可重叠最长重复子串改版

#include<cstdio> #include<algorithm> #include<cstring> #define rint register int #define inv inline void #define ini inline int #define maxn 20005 using namespace std; int s[maxn]; i...

2019-10-19 17:28:03 165

原创 基数排序

基数排序 对于给定的数列,首先从最低位开始将其按最低位从小到大进行排序,然后再按照排序顺序生成新的数列,然后再对次低位进行上述操作,直到进行到最大数的最高位 举例 11 12 22 24 35 最高位为2,所以进行两次排序 首先对个位进行排序 下面是用二维桶的实现 #include<bits/stdc++.h> using namespace std; typedef long l...

2019-10-18 22:25:20 296

原创 欧拉函数的一些应用

1.欧拉函数:小于等于n的所有的数中与n互质的数的个数(包括1) φ(10)=4;比如1,3,7,9 2.如果n为质数,一定有 φ(n) = n-1 3.φ(pk)=(p-1)*p(k-1) 4.φ(x)=x*(1-1/p1)(1-1/p2)(1-1/p3);其中p1,p2,p3是x的所有质因数 5. ...

2019-10-11 14:18:22 547

原创 位运算骚操作

位运算骚操作 左移1相当于乘2,右移1相当于除2 #define SWAP(a, b) (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b))) 左儿子 (mid<<1)右儿子(mid<<1|1) x末尾为0时|1相当于+1 取最低位的1及其之后的0 x&(-x) ...

2019-10-10 14:47:52 218

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除