技术
liweiyi_
这个作者很懒,什么都没留下…
展开
-
最短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 · 145 阅读 · 0 评论 -
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 · 852 阅读 · 0 评论 -
欧拉筛
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 · 481 阅读 · 0 评论 -
POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)
DescriptionFarmer 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 · 130 阅读 · 0 评论 -
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 · 128 阅读 · 0 评论 -
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 · 221 阅读 · 1 评论 -
Power Strings——一个字符串由一个子串重复n次形成,求n的最大值
我们可以发现当一个串由长度为i的子串循环组成时1: rank[0] = rank[i] + 12: len % i == 03: heig[rak[0]] == len - i此题用倍增法会超时,所以要用dc3#include<cstdio>#include<algorithm>#include<queue>#include<iostre...原创 2019-10-23 17:39:54 · 96 阅读 · 0 评论 -
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 · 186 阅读 · 0 评论 -
Music Theme-不可重叠最长重复子串改版
#include<cstdio>#include<algorithm>#include<cstring>#define rint register int#define inv inline void#define ini inline int#define maxn 20005using namespace std;int s[maxn];i...原创 2019-10-19 17:28:03 · 108 阅读 · 0 评论 -
基数排序
基数排序对于给定的数列,首先从最低位开始将其按最低位从小到大进行排序,然后再按照排序顺序生成新的数列,然后再对次低位进行上述操作,直到进行到最大数的最高位举例 11 12 22 24 35最高位为2,所以进行两次排序首先对个位进行排序下面是用二维桶的实现#include<bits/stdc++.h>using namespace std;typedef long l...原创 2019-10-18 22:25:20 · 247 阅读 · 0 评论 -
欧拉函数的一些应用
1.欧拉函数:小于等于n的所有的数中与n互质的数的个数(包括1)φ(10)=4;比如1,3,7,92.如果n为质数,一定有 φ(n) = n-13.φ(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 · 422 阅读 · 0 评论 -
位运算骚操作
位运算骚操作左移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 · 173 阅读 · 0 评论 -
注意内容
int范围:±21亿double等浮点数比较问题,eps一般取1e-9atan2=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 · 214 阅读 · 0 评论