您的位置:首页 > 其它

OI本月刷水记录

2015-08-30 14:13 323 查看
bzoj 1042 硬币购物 如果没有每个硬币的个数限制,这就是一个完全背包计数问题,现在我们注意到硬币个数很少,于是我们分别考虑一下每个硬币不符合条件的情况,容斥一下即可

bzoj 1225假如不考虑高精度的情况,那么转移还是好考虑的

f[i][j]f[i][j]表示前ii个质数有jj的约数最小数字

f[i][j]=minprime[i]k|jf[i−1][j/(k+1)]∗prime[i]kf[i][j]=\min_{prime[i]^k|j} f[i-1][j/(k+1)]*prime[i]^k

但万恶的高精度啊= =,于是改成搜索,然后用对数来表示,就好了

bzoj 2440 一道很神的数论题,二分+容斥+莫比乌斯函数,我们考虑不符合情况的数,就是在原数中减去有一个质数的平方因子的数,再加上两个,再减去三个,这与莫比乌斯函数的符号刚好相同,于是就可以做了

bzoj 1057 悬线法,记录一下每个数所能到达的最大高度,当能到达的左侧的高度大于自身高度时,就可以把能到达左侧的高度更新为此处的值即可,右侧亦然

bzoj 1898 有点像HH去散步,考虑到所有食人鱼的运动周期至多为12,就对12步以内暴力DP,然后构造矩阵,快速幂即可

bzoj 2783 mapsb题,存一下之前的点到根的元素和,每到一个点时查询一下是否存在当前距离−s-s即可

bzoj 1922 带限制的最短路,在最短路中记录一下理论到达时间(忽略结界)和实际到达时间,取个maxmax即可

bzoj 2463 (我能说我没看题直接猜的分奇偶么233)考虑1*2骨牌覆盖,偶数可以,奇数则不行

bzoj 1432 找规律ans=min(2∗k,2∗(n−k+1))ans=min(2*k,2*(n-k+1))

bzoj 1800 看一下是否存在两点之间距离为圆周长一半即可

bzoj 1406 对于一个n=pk11∗pk22∗pk33∗...∗pknnn=p_1^{k_1}*p_2^{k_2}*p_3^{k_3}*...*p_n^{k_n},

则x2=1(modn)x^2=1(mod n)等价于x2=1(modpk11)x^2=1(mod p_1^{k_1})…x2=1(modpknn)x^2=1(mod p_n^{k_n})

对于x2=1(modpknn)x^2=1(mod p_n^{k_n}),x=1或pknn−1x=1或p_n^{k_n}-1特别的当pn=2p_n=2时,还存在两个解,x=2kn−1−1或2kn−1+1x=2^{k_{n-1}}-1或2^{k_{n-1}}+1中国剩余定理合并即可

bzoj 1025 问题可以转化为有几个数和为n,最小公倍数的个数,于是我们可以dp一下每个质数选多少个即可

f[i][j]=∑f[i−1][j−prime[i]k]f[i][j]=\sum f[i-1][j-prime[i]^k]

bzoj 1022 我YY了一下发现和Nim游戏基本一样,在全是一的情况下考虑一下即可

bzoj 1607 筛法注意按数筛,别按序列来筛,按数筛!!!

bzoj 1037 很神的DP,考虑一个区间中男女最大差.

f[i][j][k][p]f[i][j][k][p]表示有ii个男的,jj个女的,男的比女的最多多kk个,女的比男的最多多pp个,转移如下:

f[i+1][j][k+1][max(0,p−1)]=∑f[i][j][k][p]f[i+1][j][k+1][max(0,p-1)]=\sum f[i][j][k][p]

f[i+1][j][max(0,k−1)][p+1]=∑f[i][j][k][p]f[i+1][j][max(0,k-1)][p+1]=\sum f[i][j][k][p]

bzoj 4001 找规律(其实要推出来需要微积分,Catalan数,但我不会233)ans=n∗(n+1)4∗n−2ans={{n*(n+1)} \over{4*n-2}}

bzoj 1089 找规律 f[i]=f[i−1]n+1f[i]=f[i-1]^n+1

bzoj 1969 考试题,傻逼没想出来,考虑逆序加边,加边之后相当于原来点对之间不存在桥,于是我们就可以先dfs出来一棵树,然后树链剖分一下即可

bzoj 1965 正着递推很好想,上一次的位置jj,下一次是在2∗jmod(n+1)2*j mod (n+1),反着也就退出来了,乘2的逆元即可

bzoj 1006 弦图与区间图,膜拜了CDQ的ppt

bzoj 1040 环套树DP,考虑环上相邻的点,其中一个做根,他贡献答案时强制相邻点不选,就可以做了,注意有多个联通块的情况。

bzoj 1088 确定的一个点就可以向后推了,验证是否合法即可

bzoj 1054 爆搜,注意有可能不用移动就到达状态,蒟蒻因为这个贡献了好几发WA

bzoj 2049 LCT模板题

bzoj 1007 半平面交弱化版,单调栈维护一下该条线与上条线交点即可

bzoj 2956

∑i=1n∑j=1,j≠imnmodimodj\sum_{i=1}^{n}\sum_{j=1,j\neq i}^{m} n mod i mod j

=∑i=1n(n−⌊ni∗i⌋)∑j=1m(m−⌊mj∗j⌋)=\sum_{i=1}^{n} (n-\lfloor {n \over i} *i\rfloor)\sum_{j=1}^{m} (m-\lfloor {m \over j} *j\rfloor)

−∑i=1min(n,m)(n−⌊ni∗i⌋)∗(m−⌊mj∗j⌋)-\sum_{i=1}^{min(n,m)} (n-\lfloor {n \over i} *i\rfloor)*(m-\lfloor {m \over j} *j\rfloor)

然后开心的分块统计即可

bzoj 3629 约数和定理,请自行百度,然后搜索质因子即可

bzoj 1043 计算几何,维护一下每个圆交的角度即可

bzoj 1041 最简勾股数其实有公式a=m2−n2,b=2∗m∗n,c=m2+n2a=m^2-n^2,b=2*m*n,c=m^2+n^2,枚举m,nm,n即可

bzoj 1876 python水过2333

bzoj 1072 爆搜+验证

bzoj 1258 感受一下,就可以了,这题解法应该不少

bzoj 1257 2956弱化版,分块统计

bzoj 2743 离线,线段树维护一下区间中有两个及以上的第一个出现的位置

bzoj 1303 随便YY感受一下

bzoj 1024 爆搜

bzoj 1083 最小瓶颈生成树,Kruskal即可

bzoj 4066 替罪KD树,蒟蒻在win下跑的还算快,交上去就呵呵了

bzoj 3674&&3673 用可持久化线段树维护可持久化数组,实现可持久化并查集

bzoj 2460&&3105 线性基+贪心

bzoj 1833&&1026 数位DP

bzoj 3555 hash,然后穷举哪一位不同即可

bzoj 1060 树型DP,统计使每棵子树相同的代价

bzoj 2337 高斯消元求概率问题,注意子自环问题,再者高斯消元一般从终点考虑

bzoj 3670 扩展KMP,不知为何一个循环拆成两个就快的飞起

bzoj 1082 爆搜+神减枝

bzoj 4195~4199 NOI系列,请左转另一篇题解

bzoj 1015 离线加边,并查集处理

bzoj 3173 由于是顺序插入,这题就变成平衡树水题了233

bzoj 4144 先处理出每个点到最近的加油站的距离disidis_i,更新边权为w′u,v=wu,v+disu+disvw'_{u,v}=w_{u,v}+dis_u+dis_v,然后里先处理并查集维护即可

bzoj 1044 第一问二分+贪心,第二问DP,蛮好想的

bzoj 2809 本来正解是各种可并堆,但可以平衡树水过

bzoj 1207 O(n2)O(n^2)DP,随便写写就可以了

bzoj 1260 区间DPf[i][j]f[i][j]表示i~j涂好颜色的最少步数。转移如下

当col[i]==col[j]col[i]==col[j]时

f[i][j]=min(f[i+1][j],f[i][j−1],f[i+1]j−1]+1)f[i][j]=min(f[i+1][j],f[i][j-1],f[i+1]j-1]+1)

否则

f[i][j]=minj−1k=i,f[i][k]+f[k+1][j]f[i][j]=\min_{k=i}^{j-1},f[i][k]+f[k+1][j]

bzoj 2705 ∑ni=1gcd(i,n)=∑ni=1∑d|i,d|nϕ(d)=∑d|nϕ(d)∗⌊nd⌋\sum_{i=1}^{n} gcd(i,n)=\sum_{i=1}^{n} \sum_{d|i,d|n} \phi(d)=\sum_{d|n} \phi(d)*\lfloor {n \over d}\rfloor

穷举nn的约数即可

bzoj 1143 暴力出奇迹,正解可能是最大反链什么的,加个卡时就过了233

bzoj 4010 位置字典序最小等于反向字典序最大,倒向拓扑即可

bzoj 2326 分段矩阵乘法

bzoj 2875&&3231 直接矩阵乘法

bzoj 2151 好像是个堆,好久之前的题了

bzoj 1045 贪心白书例题

bzoj 2748 对音量进行DP

bzoj 2154 详细看左转题解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: