摘要: 采用前缀和思想,用二分查找寻找区间,时间复杂度O(n+nlogn) c++ include define maxn 2000000 using namespace std; long long arr[maxn+1]; long long brr[maxn+1]; int main() { brr[ 阅读全文
posted @ 2019-05-20 01:52 一块钱的争论 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 具体解法是:对队首的某一状态,枚举每一个开关灯操作,记录到达这一新状态的步数(也就是老状态 + 1),若是最终答案,输出,若不是,压入队列。采用结构体记录每个节点,包含当前状态和步数。 c++ include using namespace std; typedef struct{ int stat 阅读全文
posted @ 2019-05-19 19:26 一块钱的争论 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 约瑟夫问题 约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。 例如只有三个人,把他们叫做A、B、C,他们围成一圈,从A开始报数,假设报2的人被杀掉。 首先A开始报数,他报1。侥幸逃过一劫。 然后轮到B报数 阅读全文
posted @ 2019-05-19 12:47 一块钱的争论 阅读(824) 评论(0) 推荐(0) 编辑
摘要: [toc] A题 基本思路: 假设n个学生开始字母相同,则分成n/2和n n/2两对的配对数最少 c++ include using namespace std; int main() { int n;cin n;int a[26]={0}; for(int i=0;i s; a[s[0] 'a'] 阅读全文
posted @ 2019-05-19 01:27 一块钱的争论 阅读(109) 评论(0) 推荐(0) 编辑
摘要: [TOC] KMP算法 基本思想 算法由两部分组成 1. 计算ptr每一位及之前的字符串中,前缀和后缀公共部分的最大长度的next数组 2. 匹配ptr和str,当ptr失配时,利用next数组,实现ptr的最大后移,从而避免不必要的匹配,减少匹配次数 计算next数组 前缀和后缀公共部分的最大长度 阅读全文
posted @ 2019-05-17 12:45 一块钱的争论 阅读(130) 评论(0) 推荐(0) 编辑
摘要: ```c++ include using namespace std; typedef long long ll; typedef struct{ ll l,r,w,f; }Node; Node nodes[1000000]={0,0,0}; ll x,y,ans,mod,single; void 阅读全文
posted @ 2019-05-16 20:57 一块钱的争论 阅读(317) 评论(0) 推荐(0) 编辑
摘要: ```c++ include using namespace std; typedef struct{ int l,r,w; }Node; Node nodes[1000000]={0,0,0}; int x,y,ans,mod,single; void build(int l,int r,int 阅读全文
posted @ 2019-05-16 20:12 一块钱的争论 阅读(146) 评论(0) 推荐(0) 编辑
摘要: ```c++ //给一n×n的字母方阵,内可能蕴含多个单词。单词在方阵中是沿着同一方向或不同方向连续摆放的。 //摆放可沿着 8 个方向的任一方向,同一单词摆放时可再改变方向,单词与单词之间可以交叉,因此有可能共用 //字母。输出时,将不是单词的字母用 代替,以突出显示单词。例如: //第一行为单词 阅读全文
posted @ 2019-05-16 19:34 一块钱的争论 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 1. 朴素解法,复杂度On2,只能过一半的点。 c++ include using namespace std; typedef struct{ int num; int len; int dlen; }Missile; Missile miss[100010]; int cnt=0,n=1,max 阅读全文
posted @ 2019-05-16 19:23 一块钱的争论 阅读(151) 评论(0) 推荐(0) 编辑
摘要: [TOC] DP整理 最长上升子序列 贪心解法ONlogn c++ brr[0]=arr[1][0]; int tmp=0; for(int i=1;ibrr[tmp]) brr[++tmp]=arr[i]; else brr[lower_bound(brr,brr+tmp+1,arr[i]) br 阅读全文
posted @ 2019-05-16 19:10 一块钱的争论 阅读(154) 评论(0) 推荐(0) 编辑
摘要: [TOC] 求最小公倍数 辗转相除法 gcd(a,b)= gcd(b,a%b) 求素数 埃式筛 c++ //复杂度O(nloglogn) for(long long i=2;ii,prime[j] 阅读全文
posted @ 2019-05-16 19:09 一块钱的争论 阅读(151) 评论(0) 推荐(0) 编辑
摘要: s1和s2是两个字符串,小明想知道这两个字符串里最长的公共长度。 s1,s2长度小于5000。 所谓公共长度: 去掉任意长度的字符后,对于子序列s1[i..j]和子序列s2[m..n],(j i)=(n m),且s1[i+k]=s2[m+k] (0 include include include i 阅读全文
posted @ 2019-05-04 17:44 一块钱的争论 阅读(132) 评论(4) 推荐(0) 编辑
摘要: 警察抓了 A、B、C、D、E、F、G 七名罪犯,其中四名是小偷,审讯的时候: 因此有四人说谎,警察想要找出小偷是哪些。 A说:“我不是小偷。” x !=0 B说:“E 是小偷。” x = 4 C说:“小偷肯定是 D。” x = 3 D说:“C 是在冤枉人。” x != 3 E说:“小偷不是A和F中的 阅读全文
posted @ 2019-05-04 17:40 一块钱的争论 阅读(257) 评论(4) 推荐(0) 编辑
摘要: $$ f(x)=x^2 $$ 阅读全文
posted @ 2019-05-04 17:25 一块钱的争论 阅读(99) 评论(0) 推荐(0) 编辑