归并排序顺带求逆序对

以前没有学过归并排序,所以这次研究逆序对很是困难。 感谢这位大神,让我终于AC 了逆序对:http://blog.csdn.net/shen823797837/article/details/8794919 其实它的思想与归并排序是一样的,并且是基于归并排序的。 先求各个部分(分治)的逆序对...

2013-11-08 15:57:18

阅读数 388

评论数 0

排列与组合

对于排列组合的总结: 排列是指从n个数中取r个数,按照一定顺序排列,不同的取法及顺序都算一种不同的排列。  记为A(n,r); 组合是指从n个数中取r个数,不按照顺序进行组合,不同的取法算一种不同的组合。        记为C(n,r); 对于大小: A(n,r)=( n!...

2013-11-08 14:14:03

阅读数 297

评论数 0

getchar输入加速

首先要弄明白的是: 对于c++: cin>>scanf>>getchar     所以,我们会采用getchar来优化输入,在数据量十分大的时候就很有用。 以下为优化模板: I. 虽然代码长,但正负整数都可以读入 int getint() { char c...

2013-11-08 13:54:11

阅读数 503

评论数 0

c++运算符优先级表

C++ Operator Precedence Precedence Operator Description Associativity 1 :: Scope resolution Left-to-right ...

2013-11-08 13:44:51

阅读数 391

评论数 0

神逻辑各种快速幂

快速幂的几种不同范例: NO.1:(递归式) #include #include #include using namespace std; int ksm(int a,int b,int n) { int t; if (b == 0) ...

2013-11-08 13:40:44

阅读数 427

评论数 0

对于逆元的理解

废话不多说,直接总结。 在模运算中, 加法单位元:  0   因为   (a+0) ≡ a  (mod m); 乘法单位元: 1    因为   (1*a)  ≡ a  (mod m); 而逆元呢,就是把上面的倒过来; 定义 对a∈Zm,存在b∈Zm,使得     a+b ≡...

2013-11-08 13:32:35

阅读数 563

评论数 0

nlogn的LIS(最长不**子序列)

设  a[i]  表示序列中的第 i 个数, f[i] 表示 1 - i 这一段中以 i 结尾的最长上升子序列的长度,初始时设f [i] = 0(i = 1, 2, ..., n)。则有动态规划方程:f[i] = max{1, f[j] + 1} (j = 1, 2, ..., i - 1, 且a...

2013-11-07 17:31:13

阅读数 414

评论数 0

hdu 1879 裸最小生成树

这是一道裸的最小生成树问题,很适合用来入门,练模板。赫赫~~ #include #include #include #include #include #include #include #include using namespace std; struct ss {in...

2013-11-07 16:57:16

阅读数 416

评论数 0

hdu 1203 裸背包问题

这道题本来是hdu 1561最下面推荐的,以为跟树形dp有关,没想到只是个背包。 还是0/1背包!! 但是最重要的就是转化题目,最大概率就是用‘1’减去最小的不被offer的概率。 代码如下: #include #include #include #include #inclu...

2013-11-06 16:16:08

阅读数 349

评论数 0

hdu 1561 树形dp+背包+dfs

这道题考的是树形dp+dfs+背包。 http://blog.csdn.net/y91041/article/details/14224095> 下面是我的代码: #include #include #include #include #include using nam...

2013-11-06 15:38:47

阅读数 318

评论数 0

基本分组背包

有n件物品和一个容量为v的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为几组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 意思是每组物品有几种决策:是选择本组的某一件,还是一件都不选。 设f[k][...

2013-11-06 11:15:38

阅读数 734

评论数 0

hdu 1520 单纯树形dp

开始被这道题坑了,觉得一个上司的下属不止一个,然后就把它转成了二叉树做,然后把自己都绕进去了。 其实,这道题用原图dp就可以了。 dp方程: f[v][1]+=f[v.son][0];                  f[v][0]+=max{f[v.son][0],f[v.son][1]}; ...

2013-11-06 09:35:01

阅读数 312

评论数 0

树转二叉树(邻接矩阵,邻接表)

邻接矩阵: void build(int s) { visit[s]=1;//该点是否访问过 for(int i=1;i<=n;i++) if( f[s][i] && !visit[i] )//f[s][i]是标记s与i是否有连边 ...

2013-11-05 17:15:47

阅读数 953

评论数 1

二分图判定的两种搜索实现

这种实现是基于二分图填色思想 代码中,c[i]代表i所填充的颜色,也就是j所属的集合。 建边之后,开始搜索,如果搜到两个相邻的点居然被填成了同一种颜色(即属于同一个集合,与二分图定义相违),则该图不是二分图。 以下代码基于的题意为: 求原图的补图是否为二分图。 原图的输入为: ...

2013-11-02 16:32:59

阅读数 330

评论数 0

统计阶乘中质因子的个数

RT:!n中v的个数   void print(int n) { memset(p,true,sizeof(p)); for(int i=2;i<=n/2+1;i++) if(p[i]) for(int j=i*2;j<=n/2+1;j+=i) p...

2013-10-29 18:23:02

阅读数 361

评论数 0

位运算加速---基于poj3740

这道题乍一看便判断出可以使用暴搜。。。 但是也很容易看出,存储啊,状态啊,都需要优化。 所以,位运算又展现了它的强大之处 这道题,如果用二进制表示每一横排的情况,一定会超过long long 的范围 所以,就改用二进制表示每一竖排的情况。 而行数总共 (i 种选择方案(0表示...

2013-09-14 07:29:51

阅读数 255

评论数 0

自己的usaco代码---PROB Prime Cryptarithm

原创代码 仅供参考 欢迎评论O(∩_∩)O~ /* ID: 输你自己的 PROG: crypt1 LANG: C++ */ /* *** ** ------- *** *** ------- **** */ #include #include #incl...

2013-08-24 16:14:45

阅读数 257

评论数 0

今天看到的一个位运算加速,是基于时钟问题的

usaco和poj上都有一道这样的题: 给你九个时钟,每个时钟只有四种状态:12,3,6,9点 给你九种方法,每一种都有对应的几个时钟往后调三个小时 九种方案: Move Affected clocks 1 ABDE 2 ABC 3 BCEF 4 ADG 5 BDEF...

2013-08-19 18:50:58

阅读数 362

评论数 0

自己的usaco代码---PROB Calf Flac

原创代码 仅供参考 欢迎评论O(∩_∩)O~ //多行字符串读入 /* ID: 输你自己的 PROG: calfflac LANG: C++ */ #include #include #include #include #include #include using names...

2013-08-16 22:32:53

阅读数 297

评论数 0

字符串输入函数

转载自度娘文库http://wenku.baidu.com/view/217842e8f8c75fbfc77db26f.html 1.getchar(); 这个函数与fgetc(stdin)等价,用于每次从键盘读入一个字符        char c[200]; in...

2013-08-15 16:17:33

阅读数 343

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭