- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 fzu 2058 问题转化 + 二分
题意A array contain N number, can you tell me how many different pair i,j that satisfy a[i] + a[j] = M and 10 思路:用map记录会超时所以想到手写二分。思考一下其实满足题目条件的对数和每个数字的位置并没有关系——排序+二分查找(范围来确定个数)即可。code:
2015-05-16 15:34:21 669
原创 fzu 2056 暴力
题意:现在有一个n*m的矩阵A,在A中找一个H*H的正方形,使得其面积最大且该正方形元素的和不大于 limit。思路: 水题预处理矩形元素和,然后二分枚举最大边长,然后把这边长在整个矩形中试一遍(O(n*m))看是否符合。总时间复杂度O(n*m*log(min(n,m))) 可暴code:#include#include#include#include
2015-05-16 15:27:01 651
原创 hdu 4777 树状数组这么用好厉害
题意:给出m个区间查询,查询 区间里和区间中的其他数字 都互质 的数字的个数思路:简单题,因为并没有 修改,全是查询把所有查询读入,按照左端点 从左往右来处理。(原因稍后首先预处理对于每一个位置(id)的数字,往左和往右最远到哪个位置,会出现和这个数字不互质的数字,用l[id]和r[id]保存下来。同时用邻接表(因为这么处理比较简单)保存下来对于一个位置iid,有哪个数字,它的
2015-05-16 15:15:00 903
原创 fzu 2059 并查集+离线处理
题意:There is a array contain N(1Every query will be:1 x : ask longest substring which every number no less than x2 y x : change the A[y] to x. there are at most change 10 times.For each ask
2015-05-16 14:37:18 683
转载 树链剖分
“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度(根深度为1),top[v]表示v所在的链的顶端节点,fa[v]表示v的父亲,son[v]表示与v在
2015-05-15 01:18:14 465
原创 uva 10817 状态压缩DP
题意:有S个课程要教,学校本来有m个教师 给出工资和所教课程编号 (在职教师不能辞退)来应聘的有n个教师 给出工资和所教课程编号问保证每个课程都有两个老师可以教的前提下,最少发多少工资思路:水题;总共最多只有8个课程,状态压缩d[i][s1][s2] 表示当前状态下,有一个老师教的课程是s1,有两个或两个人以上教的课程是s2转移就是当前教师选或不选,对应的转移
2015-05-14 22:35:40 660
原创 hdu 3874 树状数组+离线处理
题意:这和hdu 3333 根本就是一道题 链接:http://blog.csdn.net/u013382399/article/details/45689977思路:同hdu 3333 code:#include#include#include#include#include#include#include#include#include#includ
2015-05-13 11:15:35 635
原创 hdu 3333 树状数组+离线处理
题意:查询区间和,重复的数字只计算一遍思路:先离线读入所有区间,然后按照区间右端点从小到大排序。从数组的第一个数开始,依次修改bit直到每个区间的右端点,然后bit求区间和。修改方式:用一个map记录当前数字是否已经出现过以及出现过的上一个位置,然后将该位置改为0,并更新一下map即可。(因为一旦出现重复数字,其实只有该区间中的最后一个数字是起作用的,在他之前的都应该忽略,
2015-05-13 10:37:07 908
原创 hdu 5139 (离线处理)
题意:f(n)=(∏i=1nin−i+1)%1000000007You are expected to write a program to calculate f(n) when a certain n is given.思路:写出前几项,就很容易得出递推式。但是因为n的数据范围是1~10000000,而内存给的小,所以并不能直接打表(MLE)采用离线处理——
2015-05-12 18:11:30 699
原创 反思 并查集
最近其实并没有刻意去练并查集,不过昨天和今天做到了两道题目,均是用并查集来解决的在解决这两道题目的过程中,我在运用并查集的时候,都出现了严重的错误。具体表现在,思路很清晰,应该怎么做也很明白,但是在处理的过程中对并查集的操作并不正确。很多时候都出现了由于对两个节点互相赋值而造成的find函数中的死循环。然而我并不清楚是什么原因。其中一一道题目,是赛码杯1003 是一个判断是
2015-05-05 22:07:36 494
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人