2014年3月4日
摘要: 这里是题目地址题意是给定k(k=3,5,6),a,问是否存在一个四边形数,使得它的a倍是一个k边形数。如果存在,求出最小解k边形数的定义那么题目意思实际是求解关于x,y的不定方程代入具体的k并变形可以得到可以看出这几个方程具有相同的形式,我们考虑更一般的情况配方可以得到换元可以得到关于z,y的不定方程显然这是一个佩尔方程,当4ab为完全平方数无解,否则有无数组正整数解其中为方程的最小解。显然有那么问题可以转化为找到一个最小的n,使得这个一般化问题我也不知道怎么做。。只会暴力不过本题中a只取到1,2,3,这个时候n若存在,必为1,因此只要测试z1是否符合答案即可。(可以枚举z1%2a得到这个结论 阅读全文
posted @ 2014-03-04 15:59 MyWither 阅读(743) 评论(0) 推荐(0) 编辑
2014年2月23日
摘要: 这里是题目地址其实就是带修改的区间第K大。写了一下BIT套主席树,内存飞起,似乎需要特别的优化技巧 = =所以还是写了一下线段树套平衡树,跑了1s左右。其实线段树套平衡树就是归并树的自然扩展而已。归并树是把归并排序的过程建成一颗线段树,每个节点是一个数组,存的是这个节点对应区间的元素的正序:空间复杂度O( n log n ) 。每次查询的时候二分答案, 问题转化成询问区间中有多少个数比k小。外层查询和一般的线段树一样,只是在线段树的节点处需要再次二分得到节点区间中比k小的数的个数。这样二分答案有一个log ,线段树中询问也需要一个log ,线段树节点处二分需要一个log ,每次询问的复杂度为O 阅读全文
posted @ 2014-02-23 22:45 MyWither 阅读(168) 评论(0) 推荐(0) 编辑
2014年2月19日
摘要: 这里是题目地址题目意思很简单,就是已知n,k计算:其中是斐波那契数列第n-1项。n的范围是[1,1e17] ,k的范围是[1,40]看了一下觉得是快速幂,不过计算能力蒟蒻,纸上划了一天才得到结果 _(:з」∠)_定义:算一下:这样就有了线性迭代式,然后可以构造矩阵出来:然后用矩阵快速幂就可以搞定了。 1 #include 2 #include 3 #include 4 #define ll long long 5 using namespace std ; 6 int n ,c[50][50] ={1} ; 7 const int mod = 1e9+7 ; 8 struct MAT{... 阅读全文
posted @ 2014-02-19 19:58 MyWither 阅读(402) 评论(0) 推荐(0) 编辑