摘要: 基础的差分就是将原来的数组进行转化,用令a[i]=a[i]-a[i-1];对差分数组求前缀和就是原数组 差分完的数组会比原数组多出一项(a[n+1]=0-a[n]); 差分的好处:对[L,R]区间内的数都加上或减去同一个数(假设是1)可以只对L处+1和R+1处-1 阅读全文
posted @ 2020-10-05 19:38 lil_chuan 阅读(68) 评论(0) 推荐(0)
摘要: 原理:1.(a*b)%c=(a%c*b*c)%c 2.3^10=9^5=9^4*9^1=6561^1*9^1 根据大佬的博客,最后要得到的幂结果,是降次变化中指数为奇数1的项的底数之积 代码: 1 long long ksm(long long base,long long power) 2 { 3 阅读全文
posted @ 2020-09-29 21:53 lil_chuan 阅读(96) 评论(0) 推荐(0)
摘要: 用位运算可以快速得到一个数乘2的n次方或除以2的n次方的结果 x<<=n//乘2的n次方 x>>=n//除以2的n次方 阅读全文
posted @ 2020-09-29 20:31 lil_chuan 阅读(125) 评论(0) 推荐(0)
摘要: 花了50min终于学会了! struct node{ int to;//下一个点的编号 int next; //记录下一条要访问的边是第几条 } node a[101]; int head[101],p; void add(int u,int v) { a[++p].to=v; a[p].next= 阅读全文
posted @ 2020-09-29 19:33 lil_chuan 阅读(109) 评论(0) 推荐(0)
摘要: 今天复(yu)习了一下递归,有一点点体会; 思路如下: 1.找到一个显而易见的结果,作为递归的返回条件。 2.分析下一步可以做的所有选择(要能包含所有结果,不重不漏),统统递归。 3.所有选择得出的结果之和就是所求结果。 来看看代码: #include<iostream> #include<cstr 阅读全文
posted @ 2020-09-28 16:38 lil_chuan 阅读(78) 评论(1) 推荐(1)