
ACM_模板
文章平均质量分 66
张思瑶126
If you think you can , you can !
不怕千万人阻挡,只怕自己投降 !
展开
-
敌兵布阵(树状数组)
参考题解:http://gzhu-101majia.iteye.com/blog/1142115好神奇的算法,看了一天才把这题看懂#include #include #include using namespace std;int n,a[50000+5];char str[10];int lowbit(int i){ return i&(-i);}void upda原创 2015-05-08 15:40:50 · 655 阅读 · 0 评论 -
进制转换模板 (十进制 < == > 任意进制 )
进制转换模板:其中包括 任意进制 转 十进制 ,十进制 转 任意进制 。原创 2015-08-18 22:51:49 · 1870 阅读 · 0 评论 -
HDU 3342 Legal or Not
Legal or NotTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6069 Accepted Submission(s): 2818Problem DescriptionACM-DIY is a原创 2015-08-17 10:24:28 · 717 阅读 · 0 评论 -
spfa模板 和 拓扑排序 模板(HDU1874 和 HDU3342)
//SPFA模版://HDU 1874#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef __int64 LL;const原创 2015-08-16 23:51:34 · 446 阅读 · 0 评论 -
扩展欧几里德算法详解(转)
写的很好,例子也很多,直接转过来了……原文网址:http://blog.youkuaiyun.com/zhjchengfeng5/article/details/7786595 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么转载 2015-08-14 21:00:41 · 826 阅读 · 0 评论 -
HDU1166 敌兵布阵(树状数组)
/*树状数组太屌了,看了一天才模模糊糊看懂了这个题解然后自己敲了一遍,算是记住这个模板了附上原题解网址:*/#include #include #include using namespace std;int n,a[50000+5];char str[10];int lowbit(int i) //此处琢磨了许久,必须画图才能理解{ return i&(-i);原创 2015-07-29 10:56:40 · 644 阅读 · 0 评论 -
HDU 1754 I Hate It(线段树维护 区间最值)
I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 51228 Accepted Submission(s): 20100Problem Description很多学校流行一种比较的习惯。原创 2015-08-15 11:16:07 · 422 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers (线段树,成段更新,区间求和)
Description给出了一个序列,你需要处理如下两种询问。"C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000)。"Q a b" 询问[a, b]区间中所有值的和。Input第一行包含两个整数N, Q。1 ≤ N,Q ≤ 100000.第二行包含n个整数,表示初始的序列A (-1000000000 ≤原创 2015-08-10 18:23:32 · 556 阅读 · 0 评论 -
HDU 1166 敌兵布阵(线段树)
这是第二次写这道题的题解了,上次是用树状数组写的。http://blog.youkuaiyun.com/zhang_xueping/article/details/47123951虽然在去年暑假的时候曾经试过学习线段树,但是后来由于觉得麻烦所以放弃了,碰巧遇到这道题,就百度找题解,发现树状数组的代码简单多了,就认真看了几遍,大概把模板记住了,然后自己敲出来了。当时特开心,天真的以为线段树的原创 2015-08-15 10:48:47 · 602 阅读 · 0 评论 -
线段树 & 区间更新 & 延时标记
一 概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是[a,b],那么(c=(a+b)/2)左儿子的区间是[a,c],右儿子的区间是[c+1,b]。转载 2015-08-12 23:05:08 · 489 阅读 · 0 评论 -
线段覆盖长度
文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。---给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次。这是在小桥流水博客中看到的一道面试题(小米科技),后来为了练习线段树这个数据结构,就做了一下这道题,本节给出两种方法,一种是基于排序来做的,一种是使用转载 2015-08-10 15:07:03 · 877 阅读 · 1 评论 -
逆序数 & 逆序对
文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。---设A[1…n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个逆序对(inversion)【《算法导论》2-4】现给出一个数列,求该数列中的逆序对数(逆序数)。本节给出三种方法:方法一是最直接的暴力方转载 2015-08-10 14:48:32 · 846 阅读 · 0 评论 -
完全背包问题
文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。---前面回顾了01背包,在此基础上本节回顾完全背包的几种实现形式,主要有以下几方面内容:==完全背包问题定义 & 基本实现==完全背包二进制拆分思想==完全背包使用滚动数组(略)==完全背包中的逆向思维转载 2015-08-09 22:37:18 · 539 阅读 · 0 评论 -
0-1背包问题
文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。---四月份还没写,不能这么荒废了呀,赶紧水一篇吧,哈哈。前些日子回顾了DP的一些基础,就做一下整理吧,从0-1背包开始。本节回顾0-1背包的基本模型,关于它的实现有很多种写法,这里对不同实现做个简单列举,主要是写代码练转载 2015-08-09 21:56:36 · 448 阅读 · 0 评论 -
打印 0 1 字符串(五位)
// 方法一:暴力(这个可以有)#include using namespace std;int main(){ cout<<"00000"<<endl; cout<<"00001"<<endl; cout<<"00010"<<endl; cout<<"00011"<<endl; cout<<"00100"<<endl; cout<<"001原创 2015-08-18 22:45:44 · 634 阅读 · 0 评论