![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
文章平均质量分 68
Macarons_i
好菜好菜好菜
展开
-
vivo在线编程题
题目一:求解锁屏方案数;兄弟,9的阶乘不过是3.6w,这个数量级搞暴力是绰绰有余的,何况还说了不让跳着连,别说了,说就是暴力。上代码class Solution {public: /** * 实现方案 * @param m int整型 最少m个键 * @param n int整型 最多n个键 * @return int整型 */ ...原创 2020-04-27 21:26:10 · 710 阅读 · 0 评论 -
从埃筛到欧拉筛
埃式筛法是第一个比较先进的筛法,以后的所有筛法大多都是以埃筛为基础推进的埃筛的思想也很简单,筛掉所以素数的倍数,最后还剩的就是素数bool isprime[maxn];void Eratosthenes_prime(){ memset(isprime,true,sizeof isprime); isprime[0]=isprime[1]=false; for(int ...原创 2019-07-29 10:45:29 · 149 阅读 · 0 评论 -
2019CCPC秦皇岛铜牌菜鸟的总结
回想一下大学前两年,,光阴虚度啊,大二下才加入校队了解了ACM,时间也来不及了,靠着短短四个月的时间还是学会了不少东西,细细捋一下:矩阵快速幂,线性基,FFT,扩欧几里得,中国剩余定理,函数处理(根值,迭代,差消,母函数),斯特林数,二分,Floyd,欧几里得,Pick定理,凸包,欧拉筛,埃筛,阶乘求逆,高精,欧拉降幂,杜教筛,狄利克雷卷积,卢卡斯定理,分块加速,记忆化搜索,dfs,bfs,并查...原创 2019-09-23 21:03:03 · 948 阅读 · 0 评论 -
HDU6395矩阵快速幂
题意:给出A,B,C,D,P,n,求Fn题解:把P/n当做一个常数用等值区间,区间变矩阵变,把区间找出来快速幂直接搞定#include<bits/stdc++.h>using namespace std;#define lowerbit(x) ((-x)&(x))#define fo(i,a,b) for(int i=a;i<=b;i++)#define...原创 2019-08-09 21:55:18 · 237 阅读 · 0 评论 -
cf #579 div3 C. Common Divisors
我。。他妈。。早上起来一看被hack掉了,我日!!!然后就想起来是数据的问题昨天本来是注意到数据有点问题的,,,,但是时间没多少了,傻逼编译器又恶心我。ε=(´ο`*)))唉。。。题意:给n个数找最小公倍数的除数题解:它的除数就是每个素因子的个数+1,然后全部乘起来,因为每个素因子,可以取【0,x】个一共有x+1种取法,考虑到gcd可能是1e12的ll级别,就得筛根号gcd内的;#in...原创 2019-08-14 08:30:57 · 226 阅读 · 0 评论 -
cf #226 div2 C(dp,区间,math)
题意:给n个数的数列,m个区间询问,每个询问需要回答在区间[L,R]内每个质数在数列中有多少个数可以整除他们,并计算总和input:65 5 7 10 14 1532 113 124 4output:970题解:起初我是想从拆解数列的素数因子,后来细想总体的方向就不对。首先把数列hash存入,按照埃式筛法的思想,搞个dp,这个dp其实就是前缀和数组,整个大体思路主要就凸...原创 2019-08-12 16:55:42 · 143 阅读 · 0 评论 -
Intersection(线性基)
题目描述:Bobo has two sets of integers A = {a1,a2,…,an}and B = {b1,b2,…,bn}He says that x∈span(A) (or span(B)) if and only if there exists a subset of A (or B) whose exclusive-or sum equals to x.Bobo ...原创 2019-10-05 19:08:38 · 279 阅读 · 0 评论 -
矩阵求逆(高斯消元)
给出N*N的二阶矩阵,求此矩阵的逆思路:矩阵的初等变换,每次在该列上选择最大数(为防止矩阵无解的情况漏掉),后面的做法与初等变换完全一样code:#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=405;const int mod=1e9+7;ll a[N][N];l...原创 2019-10-05 11:50:09 · 1052 阅读 · 0 评论 -
线性基
线性基的目的是将数据压缩,通俗点,给你一组数组现在你要把所有数组化成二进制,你压缩得到的最终数组必须保证两两数不交叉交叉的定义就是如:12=23+22,8=23,这两个数字在第三位交叉,还需要进行压缩具体压缩方法:看是谁先进来占住了3这位,另一个数字必须与其异或,继续找下一位注意:线性基必须从高位开始压,一开始图方便用lowerbit结果就很糟糕!!!个人觉得线性基比较偏板子,如果出题必...原创 2019-07-29 10:25:01 · 81 阅读 · 0 评论 -
2019百度之星第一场初赛2,5题
1002:题意:给n个区间,需要依次走完这些区间,注意是依次,一开始没看见我也忽略了题解:找到每次移动的最左位置和最右位置,判断要到达的区间和目前左右位置的关系。样例举例:最开始最左是0,最右是1000000,ans=0,因为可以在这个区间随意放置添加第一个区间【1,10】,发现这个区间和目前区间有交,ans不需要更新操作,此时只需要更新区间为【1,10】添加第二个区间【20,30...原创 2019-08-17 21:39:04 · 373 阅读 · 0 评论 -
codeforce#579 div3 CDE
C题貌似写过了,接着写DE吧d题求能在第一个字符串删掉的最大连续长度使第二个串是它的子串思路:做俩数组,这俩数组分别找T串的当前i位置最早出现是多久,最迟出现又是多久(很简单对不对,D1D2通吃)code:#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn=2e5+...原创 2019-08-14 11:22:13 · 141 阅读 · 0 评论 -
cf #473 div2 D(素筛)
题意:给n个数,求一个字典序最小,要求这个序不能小于原序列,并保证两两互素题解:思路很简单,首先埃筛出1-1e7的每个数的最小素因子作为预处理(但是题目给的是1e5,1e7不浪费时间空间吗?后面会讲到)。现在就是要找第一个与原序列不同的数,在这个数之后,后面的所有数都搞成未标记素数,以保证整体字典序最小。把每个数的素因子查看,是不是已存在,所有素因子查看完毕并未有标记的可以保持原序继续寻...原创 2019-08-13 22:13:31 · 99 阅读 · 0 评论 -
Educational Codeforces Round 70 (Rated for Div. 2)A
写个水题,,,,这场div2看到好多大佬爆零啊就是让二进制反序字典最小嘛。。。你找到A串最后那个1和B串最后那个1不就行了,再判断下A串1的位置是不是比B串小,给它往前挪挪保证a-b不为0就行了。。。还算友好,我要是出题人就给十进制了。毕竟这种东西一个n&(-n)就有结果的。。还算挺水的。#include<bits/stdc++.h>using namespace ...原创 2019-08-09 22:06:27 · 110 阅读 · 0 评论 -
2019/6/2菜鸟刷题日常= =
菜鸟刷题日常!(二分)题目链接:https://codeforc.es/problemset/problem/371/CC. Hamburgerstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarpus loves ha...原创 2019-06-02 23:10:20 · 204 阅读 · 0 评论 -
一道很不错的概率
题意:掷一枚骰子,问掷n次后骰子点数之和大于等于x的概率解法:首先n次掷骰有n~6n种情况假设上一次的掷投是F(i,j)表示第i次投掷点数总和为j的方案数那么对于F(i+1,k)这个值必须要由多个F(i,x)累和得到,此题最妙的思想在于空间压缩,我们可以看出状态转移方程只和上层有关而与上上层或更上层完全无关,那么我们只需要保留两个层,开一个2*(6n)的二维数组code:#incl...原创 2019-09-23 20:32:17 · 216 阅读 · 0 评论 -
The 2019 Asia Nanchang First Round Online Programming Contest H. The Nth Item(矩阵快速幂+优化)
题意:F(n)=3F(n-1)+2F(n-2),F(0)=0,F(1)=1;给出N1和Q,需要求出F(N1)^F(N2) ^… ^F(Nk)其中Ni=(F(Ni-1)*F(Ni-1))^Ni-1;(结果取模)题解:对于F(i)直接矩阵快速幂求出,但Q的大小是1e7,直接暴力求必T然而模数很小,所以直接记录下求出来的F(n)就可以大大节约时间了code:#include<bi...原创 2019-09-08 18:53:23 · 127 阅读 · 0 评论 -
莫比乌斯反演(洛谷P5221)
题意:给一个n(1<=n<=1000000);求∏i=1n∏j=1nlcm(i,j)gcd(i,j)(mod104857601)\prod_{i=1}^n\prod_{j=1}^n\frac{lcm(i,j)}{gcd(i,j)}(mod 104857601)i=1∏nj=1∏ngcd(i,j)lcm(i,j)(mod104857601)题解:公式推演:∏i=1n∏...原创 2019-11-03 17:01:15 · 283 阅读 · 0 评论 -
高精+第二类斯特林数(洛谷P3904)
题意:给出n,m(0≤n≤50,0≤m≤50)n,m(0\leq n\leq 50,0\leq m\leq50)n,m(0≤n≤50,0≤m≤50)将n只带编号的猪放入m个不带编号的房子里面,要求每个房子至少放一只猪,求方案数题解:第二类斯特林数S(n,m)=S(n-1,m)*m+S(n-1,m-1);要用高精,这个数据是会爆long long的,另外记忆化搜索下,否则时间也会爆炸c...原创 2019-11-08 21:18:51 · 226 阅读 · 0 评论 -
欧拉降幂模板(洛谷P5091)
题意:给出a,b,m(1≤a≤109,1≤b≤1020000000,1≤m≤108)a,b,m(1\leq a \leq 10^9,1 \leq b \leq 10^{20000000 },1 \leq m \leq 10^8)a,b,m(1≤a≤109,1≤b≤1020000000,1≤m≤108)求:aba^bab%mmm题解:什么叫欧拉降幂??这种题就用欧拉降幂,幂数太大!!!必须...原创 2019-11-10 16:21:24 · 362 阅读 · 0 评论 -
2019ICPC南京网络赛 B. super_log经验总结与反思
题意:求b个a次幂(a(a(a^…)))对m求模题解:欧拉降幂,这题很简单反反复复却wa了13发前七发wa的原因是题面没更新的缘故,因为之前的a一直都是2到1000000后面六发总结下是因为欧拉降幂过程中a,m是否互素的两种情况没有讨论清楚#include<bits/stdc++.h>#define lowerbit(x) (x&(-x))#define ll ...原创 2019-09-01 19:39:57 · 212 阅读 · 0 评论 -
组合数学(洛谷P5148)
题意:给出一个多项式f(x)f(x)f(x),求ansansans,求法如下:void work(){ ans=0; for(a[1]=1;a[1]<=n;++a[1]) for(a[2]=1;a[2]<a[1];++a[2]) for(a[3]=1;a[3]<a[2];++a[3]) //...... ...原创 2019-11-10 15:05:57 · 134 阅读 · 0 评论 -
Partial Sum
题目描述给一个序列a1,a2,a3......ana_1,a_2,a_3......a_na1,a2,a3......an每次给你一个lll一个rrr,(l和r被使用后不能继续使用,即使将之前用过的l作为新的r也不可以)(l和r被使用后不能继续使用,即使将之前用过的l作为新的r也不可以)(l和r被使用后不能继续使用,即使将之前用过的l作为新的r也不可以)你需要做的是按一定的顺序取l,...原创 2019-10-23 20:47:54 · 157 阅读 · 0 评论 -
简单计数(矩阵快速幂)
题源来自牛客https://ac.nowcoder.com/acm/problem/24639题意;有一个长度为k的队列满足以下条件:①第一个元素不能为1,,最末一个元素必须为1;②任意两个相邻元素都不相同③这个数列中的所有数必须小于等于n问:满足条件的组合数题解:设F[0][i]表示从第一个元素到第i个元素,前i-1个元素满足条件,而第i个元素非1的组合数F[1][i]反之表示...原创 2019-10-23 20:17:15 · 178 阅读 · 0 评论 -
分块
题意:给一个n,累加1到n每个数的约数个数,输出结果n最大为10的10次方样例:n=3;对于1,约数有1,约数个数1对于2,约数有1,2,约数个数2对于3,约数有1,3,约数个数2结果为5;题解:首先,对于1到n每个数计算它们对答案的贡献,比如2是多少数的约数?5是多少数的约数。所以我们可以看出结果是∑i=1n⌊ni⌋\sum_{i=1}^n\lfloor\frac{n}{...原创 2019-10-19 18:04:49 · 116 阅读 · 0 评论 -
牛客挑战赛34
A题:题意:给n个商店,每个商店都有m把火铳,在第iii个商店买j把火铳需要花费Pi,jP_{i,j}Pi,j,然而,由于你购买的方式是网购,当你在商店iii购买的把数小于YYY把时,你需要支付aia_iai的邮费,否则包邮,现在一共要购买KKK把火铳,求最小花费输入包括N,M,K,YN,M,K,YN,M,K,Y商店的数量,每个商店出售的最大火铳数量,你要购买的火铳数量,购买界限值下面...原创 2019-11-22 22:55:16 · 242 阅读 · 0 评论 -
codeforce#1228E Another Filling the Grid
题意:给出N,K(1≤N≤250,1≤K≤109)N,K(1\leq N \leq250,1\leq K \leq 10^9)N,K(1≤N≤250,1≤K≤109),求N∗NN*NN∗N矩阵每行每列至少有一个111的方案数(每行至少有一个1,每列至少也有一个1)题解:设dp[i][j]dp[i][j]dp[i][j]表示在 i∗Ni*Ni∗N这个子矩阵中已经有jjj列是至少有一个1的方案数...原创 2019-11-15 11:03:14 · 121 阅读 · 0 评论 -
第一道数位dp(洛谷P2657)
题意:给两个数A,B。你需要找出有多少个x满足下面的两个条件A<=x<=B;x的每一位与相邻位的差值大于等于2题解:开始看出了小于等于2.。。。然后还一本正经的写对了,,其实这类数位dp的题还是很简单的。首先从高位枚举到低位,记住是否卡住了上界,或者之前的数一直是0,再者,记住上一次枚举的数字,后面的就是dfs记忆化存储一下code:#include<bits/...原创 2019-11-02 21:34:00 · 194 阅读 · 0 评论 -
牛客OI周赛七(ST表)
题目描述:小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i]。有m个询问,对于每一个询问,小睿睿想知道区间[L,R]颜值最高而编号最小的妹纸是哪一个对于妹纸们的颜值val[i],其生成函数为:void generate_array(int n,int seed){unsigned x = seed;for (int i=1;i<=n;++i){x ^= x <&l...原创 2019-10-17 19:54:07 · 130 阅读 · 0 评论 -
牛客OI周赛七
题目描述小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n/k的等式有多少种(B+A=n与A+B=n看作一种)注:“=”与“+”分别需要使用2根火柴棒输入描述:一行2个整数n,k,保证n取模k为0输出描述:一行一个整数,表示答案示例1输入60 2输出4说明11+49=6013+47=6017+43=6019+41=...原创 2019-10-17 17:16:33 · 107 阅读 · 0 评论 -
格雷厄姆算法讲解
格雷厄姆算法是找到点堆的最小凸包算法学习格雷厄姆算法,需要你掌握两个知识点1.角排序2.叉积1.角排序首先在一堆点里选一个点作为原点(我的选择方式是横坐标最小或者纵坐标最小,因为横纵坐标取极值的情况一定是在凸包上的,自己理解)。把这个点记做点O然后把所有的点与O连线,根据所有线与水平线的夹角排序2.叉积谈谈个人对叉积的理解,如果有书的朋友可以参考《高等数学》(下)第七版同济大学出版...原创 2020-04-20 21:33:26 · 1716 阅读 · 1 评论