摘要: 以下以求a的b次方来介绍 把b转换成二进制数 该二进制数第i位的权为 例如 例如 11的二进制是1011 11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1 因此,我们将a¹¹转化为算 对于 令A[0]=a^(2^0)*1 A[1]=a^(2^1)*1 A[2]=a^(2^2)*0 A[3 阅读全文
posted @ 2018-02-01 16:38 reminito 阅读(241) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1950 最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时。LIS问题可以优化为nlogn的算法。 定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则记录最小的那个最末元素。 阅读全文
posted @ 2018-02-01 15:03 reminito 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using namespace std; 3 4 5 /*初始化的细节问题 我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。 6 7 8 有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。 9 如果是第一种问法,要求恰好装满背包,那么... 阅读全文
posted @ 2018-02-01 13:01 reminito 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 3 #define maxn 100007 4 using namespace std; 5 6 int Sum[maxn>1; 20 21 Build(l,m,rt>1; 52 Pushdown(rt,m-l+1,r-m); 53 54 if(L>1; 71 Pushdown(rt,m-l+1,r-m); 72 7... 阅读全文
posted @ 2018-02-01 12:59 reminito 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using namespace std; 3 //https://www.cnblogs.com/hsd-/p/6139376.html 4 int a[MAXN],tree[MAXN]; 5 //低位一 6 int lowbit(int t) 7 { 8 return t&(-t); 9 } 10 11 //区间更新 12 void upd... 阅读全文
posted @ 2018-02-01 12:58 reminito 阅读(76) 评论(0) 推荐(0) 编辑