题目大意:查看相关场次即可看到。
思路:推公式的题目,可以用快速幂加公式快速解决,也可以用二进制拆分运算的方法加快速度。
需要注意的一点在于:今后在mod之后有涉及到运算的都要加上一个mod之后再mod,或者统一都加一个mod
顺便复习一下二进制拆分的方法!!
二进制拆分的做法AC代码:#define _CRT_SECURE_NO_WARNINGS
#include
#i...
分类:
其他好文 时间:
2015-02-07 23:00:51
阅读次数:
216
题意:给若干个数让你异或,然后询问第k大的异或和。
题解:
先搞出来线性基,然后第k大的异或和就是:
把k二进制拆分,第i位上有1,就把第i个线性基异或进来。
原因:
因为线性基是一堆高位上的1(或许有一些位动不了),然后把这样每一位可以填0/1,跟二进制差不多。
自己脑补去吧。
……我在说什么啊,我明白但是懒得写了。别管了,扒代码或者留言神马的吧。
经验之...
分类:
其他好文 时间:
2015-02-03 15:16:27
阅读次数:
209
题目大意:给定一张无向图,求从s出发恰好经过n条边到达e的最短路
倍增Floyd……为何大家都管这个叫做矩阵乘法- - 算了为何要纠结这种事- -
令f[p][i][j]表示走2^p步从i到达j的最短路 有f[p][i][j]=min{f[p-1][i][k]+f[p-1][k][j]}
将n进行二进制拆分 用矩阵g记录答案矩阵 对于每一位p 用f[p]和g两个矩阵搞出h 再将h的值赋给g
...
分类:
其他好文 时间:
2014-12-30 09:16:28
阅读次数:
212
题目大意:求恰好走k步从S到T的最短路。
思路:设f[p][i][j]为从i到j恰好走2^p步的最短路,DP方程十分简单:f[p][i][j] = min(f[p][i][j],f[p - 1][i][k] + f[p - 1][k][j]);
对总步数T进行二进制拆分,在T有1的位置上,假如这个位置为p,那么就用f[p][][]来更新答案g[][],最后得到的g[][]就是答案矩阵。...
分类:
其他好文 时间:
2014-12-30 09:16:17
阅读次数:
184
题目大意:给定n,求[1,n]以内以及[1,2^n]以内有多少x满足x^3x=2x
x^3x=2x等价于x^2x = 3x
而3x=x+2x 且2x=x
故x满足条件当且仅当x&(x
故x的二进制拆分中任意两个1不相邻
令f[i]为i位数中最高位为0的满足条件的数的数量
g[i]为i位数中最高位为1的满足条件的数的数量
则显然有
f[i+1]=f[i]+g[i]
g[i+1]...
分类:
其他好文 时间:
2014-12-16 21:08:55
阅读次数:
335
题目:钱数拼凑,面值为1,5,10,25,求组成n面值的最大钱币数。
分析:dp,01背包。需要进行二进制拆分,否则TLE,利用数组记录每种硬币的个数,方便更新。
写了一个 多重背包的 O(NV)反而没有拆分快。囧,最后利用了状态压缩优化 90ms;
把 1 cents 的最后处理,其他都除以5,状态就少了5倍了。
说明:貌似我的比大黄的快...
分类:
其他好文 时间:
2014-10-11 00:49:44
阅读次数:
392
题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少
首先高斯消元求出线性基,然后将k按照二进制拆分即可
注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k--
然后HDU输出long long是用%I64d 无论C艹还是G艹都是
#include
#include
#include
#include
#define M 10100
using namespace ...
分类:
其他好文 时间:
2014-10-06 18:07:20
阅读次数:
223
又是惨烈的一天第一题多重背包。二进制拆分即可。#include #define max(a,b) ((a)>(b)?(a):(b))int n,m,i,j,k,l,a,b;int d[11][11];// s: time w: valueint s[10000],w[10000],pn,f[10.....
分类:
其他好文 时间:
2014-10-02 18:46:33
阅读次数:
296
第一题:题目大意:多重背包。解题过程:1.二进制拆分。最慢的点0.5s。2.单调队列优化会更快,不过我不会。。第二题:题目描述:给定一个n×m的矩阵,记录左上角为(1,1),右下角为(n,m),现在从(1,1)开始取数,每次只能向下或向右移动一个单位,最终到达(n,m),我们把路径上所有的数相乘,结...
分类:
其他好文 时间:
2014-10-02 15:36:53
阅读次数:
327
第一题:题目大意:解一元一次方程(只有+-符号);解题过程:直接处理处两边的x的系数和常数项,字符串的处理即可。第二题:题目大意:求逆序对数。解题过程:直接归并排序。第三题:题目大意:多重背包。每件物品数较多。解题过程:二进制拆分物品数。。
分类:
其他好文 时间:
2014-09-21 11:29:30
阅读次数:
211