
算法
u011757339
这个作者很懒,什么都没留下…
展开
-
数学期望DP小结
最近刚学了数学期望DP,还是蛮恶心的,但是相比于其他DP还是比较好想的,主要思路和线性DP类似,主要注意的是概率计算利用加法原理加和的方式,还要注意避免数组下标为负的情况,需要进行平移。Tyvj1864 守卫者的挑战 比较简单的一道数学概率DP,要注意负数组下标。 f[i][j][k] 表示 前i场 赢了j场 容量-地图为k的概率 然后状态转移是 :如果 赢了,i+1,j+1,k进行相应变原创 2016-07-02 19:35:23 · 3351 阅读 · 0 评论 -
CDQ分治入门---蝗灾、Mokia
题意:W*W(W <= 500000)的矩阵,初始全是0,N(N <= 200000)个询问,单点加一个值,区间查询和。 分析:这题一看数据结构,二维线段树显然是不行的,不过还是可以水30分~#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn=5500;int c[原创 2016-07-07 08:58:52 · 523 阅读 · 0 评论 -
POJ1050 简单的递推~
POJ1050 题意就是求N*N的矩阵中最大子矩阵和,之前做过一道题COGS 997 射命丸文题目链接 和这道题比较类似,区别是要求的最大子矩阵和大小是给定的,当时用的是递推求解,代码如下:#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int num[1000+10][1000+10];i原创 2016-07-05 19:47:05 · 362 阅读 · 0 评论 -
POJ 1018
POJ 1018 题意: 某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1、m2、m3、…、mn个厂家提供生产,而每个厂家生产的同种设备都会存在两个方面的差别:带宽bandwidths 和 价格prices。 现在每种设备都各需要1个,考虑到性价比问题,要求所挑选出来的n件设备,要使得B/P最大。 其中B为这n件设备的带宽的最小值,P为这n件设备的总价。分析: 既原创 2016-07-05 16:09:51 · 445 阅读 · 1 评论 -
POJ 动态规划题目列表及顺切指南
- 一、POJ DP题目顺切指南 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740, 1742, 1887, 1926, 1936, 1952, 195原创 2016-07-05 15:11:42 · 2298 阅读 · 0 评论 -
NOI2003 文本编辑器 块状链表
刚看到这道题时还啥也不懂,后来被安利了块状链表,于是搞了好久,现在发现Splay也可以搞…. 下面是块状链表搞法….#include<cstring>#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>using namespace std;const int maxtot=2*1024*1024+10原创 2016-07-04 20:06:41 · 443 阅读 · 0 评论 -
Tyvj 1728 普通平衡树
裸的平衡树,Splay和Treap均可水过,我的splay也是debug了好久….#include<cstdio>#define MAXN 300005struct node { int v, cnt, sz, ch[2], f;}t[MAXN];int rt, sz, n;#define Upd(r) {t[r].sz = t[t[r].ch[0]].sz + t[t[r].ch原创 2016-07-04 20:01:31 · 394 阅读 · 0 评论 -
利用分治策略解题
今天封神讲分治和倍增,分治还是比较神奇的一种思想的,能解决不少问题,思路就是把一个大问题划分成小问题,然后通过递归求解小问题,最终得到大问题的解。归并排序 归并排序是分治的一个典型应用,具体实现就是把一个长序列不断二分,分成的两部分比较大小后再合并到一个新的数组,最终得到排序后的结果。 归并排序除了可以排序,还可以求逆序对,个人觉得比用树状数组要好想一些。 POJ22原创 2016-07-03 19:58:31 · 411 阅读 · 0 评论 -
线性时间内筛素数+欧拉函数+莫比乌斯函数
最近学习了一种筛素数的方法,能够在 O(n) 的时间内完成。 这个算法的核心思想是:每一个合数可以被唯一地表示成它的一个最小质因子和另外一个数的乘积。证明略。void Init(){ ph[1]=1; primes=0; for (LL i=2;i<n;i++){ if (!vis[i]){ prime[prime原创 2016-07-09 10:58:22 · 489 阅读 · 0 评论