07 2017 档案

摘要:P144 UVa12657 移动盒子 Boxes in a Line#includetypedef long long LL;LL n,m;LL l[100010],r[100010],p;//双向链表LL case1;//记录这是第几种情况int main(){ LL t,ans,i,a,x,y,... 阅读全文
posted @ 2017-07-30 12:42 hehe_54321 阅读(246) 评论(0) 推荐(0)
摘要:对于每组数据,首先通过一个map将每个字符串由一个数字代替,相同的字符串由相同数字代替,不同的字符串由不同数字代替。那么题目就变为了询问是否存在行r1,r2以及列c1,c2使得str[r1][c1]=str[r2][c1]且str[r1][c2]=str[r2][c2](此时所有单元格内都是数字,s... 阅读全文
posted @ 2017-07-26 16:11 hehe_54321 阅读(169) 评论(0) 推荐(0)
摘要:#includeusing namespace std;typedef set Set;map IDcache;vector Setcache;stack s;int ID(Set x){ if(IDcache.count(x)) return IDcache[x]; Setcache.push_b... 阅读全文
posted @ 2017-07-26 11:56 hehe_54321 阅读(191) 评论(0) 推荐(0)
摘要:#include//http://blog.csdn.net/solomon1558/article/details/40798901//http://www.360doc.com/content/12/0403/11/9140140_200442978.shtmldouble do1(){ pri... 阅读全文
posted @ 2017-07-25 12:00 hehe_54321 阅读(132) 评论(0) 推荐(0)
摘要:vjudge 第一种(枚举法): 设Ax=By=C x=C/A与y互质 要使B最小,则y最大 则寻找最大的与x互质的c的约数另一种做法: 分解质因数,再做一些处理(把指数为0的补上,使A,B,C有相同的a1到an),得 A=a1^x1*a2^x2*...*an^xn B=a1^y1*a2^y2*.. 阅读全文
posted @ 2017-07-24 16:02 hehe_54321 阅读(191) 评论(0) 推荐(0)
摘要:也就是求|x-a1|+|x-a2|+...+|x-an|的最小值。可以证明,当x为a1,a2,...,an的中位数时该式有最小值。怎么证明呢?第一个:绝对值不等式:||a|-|b|| ≤|a±b|≤|a|+|b|这里要用的是|a|+|b|≥|a+b|可以推出如|a|+|b|+|c|≥|a+b+c|以... 阅读全文
posted @ 2017-07-20 13:12 hehe_54321 阅读(1668) 评论(0) 推荐(0)
摘要:P1(贪心)自己想的糟糕的算法:#include//从大到小排序龙头和骑士,每个龙头由“恰好”能砍掉的骑士来砍#include//貌似没问题,但是又难写又慢#include//就当复习stl了#includeusing namespace std;int n=1,m=1;int a[30000];v... 阅读全文
posted @ 2017-07-19 16:20 hehe_54321 阅读(454) 评论(0) 推荐(0)
摘要:P2279 [HNOI2003]消防局的设立法一:某贪心方法(摘自洛谷题解):一般的,对于深度最大的结点u,选择u的k级祖先是最划算的(意思是说这个题目的2改成了k我们都是可以做的,至于这个结论,详见刘汝佳的《***入门经典》(蓝书P35),还有一个例题,不过和本题不一样)法二://树形dp/*状态... 阅读全文
posted @ 2017-07-19 13:34 hehe_54321 阅读(144) 评论(0) 推荐(0)
摘要:P1273 有线电视网//ans[i][j]表示第i个结点以下共j个用户观看时最大的赚钱量 //(仍然没有想到)ans[u][i]=max{ans[u][i-j]+ans[v][j]-w}//具体解释:/*ans[i][j][k]表示第i个结点以下前k个子结点中有j个用户观看时最大的赚钱量ye[v]... 阅读全文
posted @ 2017-07-19 13:28 hehe_54321 阅读(124) 评论(0) 推荐(0)
摘要:P1040 加分二叉树树形dp,用记忆化搜索即可//树形dp P1040 //http://www.cnblogs.com/mhpp/p/6628528.html #include#includeusing namespace std;int ans[31][31];//从l到r的结点构成的子树的最... 阅读全文
posted @ 2017-07-17 16:44 hehe_54321 阅读(148) 评论(0) 推荐(0)
摘要:P1892 团伙并查集#includeint fa[2500];//fa[i]表示i的朋友所在集合,fa[i+n]表示i的敌人所在集合bool boo[2500];int ans,n,m;int find(int x){ if(fa[x]!=x) fa[x]=find(fa[x]); return ... 阅读全文
posted @ 2017-07-17 15:24 hehe_54321 阅读(136) 评论(0) 推荐(0)
摘要:P2024 食物链法一:种类并查集#includeint fa[250000];int n,k,ans;//fa[i]表示与i同类的集合,fa[i+n]表示i吃的集合,fa[i+2n]表示吃i的集合int find(int x){ if(fa[x]!=x) fa[x]=find(fa[x]); re... 阅读全文
posted @ 2017-07-17 10:43 hehe_54321 阅读(189) 评论(0) 推荐(0)
摘要:P1196 银河英雄传说加权并查集,简介见加权并查集,具体方法见代码及注释//P1196 银河英雄传说#includeint fa[30010];int r[30010];//r[i]表示第i号战舰在其父亲之后的第r[i]个位置int r2[30010];//r2[i]表示以第i号战舰为队首的队列有... 阅读全文
posted @ 2017-07-17 10:37 hehe_54321 阅读(190) 评论(0) 推荐(0)
摘要:一、定义并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。基础的并查集能实现以下三个操作:1.建立集合;2.查找某个元素是否在一给定集合内(或查找一个元素所在的集合); 3.合并两个集合.“并”“查”“集”三字由此而来。并查集能解决的问题一般可以转化为这样的形式:初始时n个元素分属... 阅读全文
posted @ 2017-07-15 11:13 hehe_54321 阅读(291) 评论(0) 推荐(0)
摘要:P1801 黑匣子_NOI导刊2010提高(06)法一:算法思想较精妙--两个堆先将数字放入大根堆,然后取出堆顶元素,放入小根堆,如果要求输出,则取出小根堆堆顶元素,输出并放入大根堆。如何得出的呢?先从简单的开始:若当前已经add了x-1个数,将要add第x个数并查询,还未进行过查询,那么将x放入后... 阅读全文
posted @ 2017-07-14 11:21 hehe_54321 阅读(157) 评论(0) 推荐(0)
摘要:P3370 【模板】字符串哈希 字符串哈希就是根据一个字符串s通过某种方法计算得到一个数字x,这样如果字符串s对应一个值y的话,可以把y保存在数组a[x]中,这样如果告诉你字符串,要得到或者修改对应的值,就比较方便。 因为这个数字通常有大小限制,字符串却是无限的,所以哈希通常会有冲突,也就是多个不同 阅读全文
posted @ 2017-07-14 10:59 hehe_54321 阅读(200) 评论(0) 推荐(0)
摘要:大佬的做法 自己的做法: 阅读全文
posted @ 2017-07-14 09:44 hehe_54321 阅读(101) 评论(0) 推荐(0)
摘要:搜索+打点type ar=array[0..25] of integer;var arr:ar;i,j,n,p,q,ans:longint;function ok(x,y:integer):boolean;var k,m,i:integer;begin k:=abs(x-y); for ... 阅读全文
posted @ 2017-07-14 09:44 hehe_54321 阅读(122) 评论(0) 推荐(0)
摘要:P1972 [SDOI2009]HH的项链 法一:树状数组,离线 翻译: 给出一个数列a[n]还有许多请求,请求由l,r两个数组成,要求对于每个请求输出数列中从a[l]到a[r]中不重复的数的个数。 方法: 首先读入数列a[n],并预处理next1,boo两个辅助数组,方法见程序。 然后读入请求,把 阅读全文
posted @ 2017-07-13 17:44 hehe_54321 阅读(141) 评论(0) 推荐(0)
摘要:P1908 逆序对 法一:归并排序求逆序对(不好理解,记一下) (此处用的是从大到小排序,毕竟求的是序列中ai>aj且i<j的有序对) 在二路归并的时候,设l<=i<=mid,mid+1<=j<=r,要归并的是a[l]到a[mid]还有a[mid+1]到a[r]。只考虑a[l]到a[r]间产生的逆序 阅读全文
posted @ 2017-07-13 14:27 hehe_54321 阅读(199) 评论(0) 推荐(0)
摘要:P1010 幂次方 阅读全文
posted @ 2017-07-13 13:55 hehe_54321 阅读(157) 评论(0) 推荐(0)
摘要:P1032 字串变换 阅读全文
posted @ 2017-07-13 12:59 hehe_54321 阅读(99) 评论(0) 推荐(0)
摘要:P1060 开心的金明 ans[i][j]表示前i件物品用j元时最大结果 则ans[i][j]=max(ans[i-1][j-v[i]+v[i]*w[i],ans[i-1][j]) 显然,ans[i][j]只会用到ans[i-1][p](j-v[i]<=p<=j) 可依据此降掉一维: ans[j]= 阅读全文
posted @ 2017-07-13 11:48 hehe_54321 阅读(151) 评论(0) 推荐(0)
摘要:P1019 单词接龙 阅读全文
posted @ 2017-07-13 11:40 hehe_54321 阅读(138) 评论(0) 推荐(0)
摘要:P1094 纪念品分组 先按价格对纪念品排序(这里是从大到小),然后从两端向中心开始配对,有两个变量i和j,表示正在处理的两个纪念品编号,开始时i=1,j=n,如果a[i]+a[j]>w则第i贵的纪念品无法与任何较小的纪念品配对,那么该纪念品单独一组,i++,否则第i贵的纪念品可以和第j便宜的纪念品 阅读全文
posted @ 2017-07-13 11:23 hehe_54321 阅读(232) 评论(0) 推荐(0)
摘要:P1086 花生采摘 将植株按花生数从大到小排序,然后按排序后的顺序摘,每次摘前计算能否在摘后回到路边,如果能就将ans加上该植株花生数,如果不能就直接输出当前ans并退出。 阅读全文
posted @ 2017-07-13 11:02 hehe_54321 阅读(237) 评论(0) 推荐(0)
摘要:P1042 乒乓球 阅读全文
posted @ 2017-07-13 10:57 hehe_54321 阅读(173) 评论(0) 推荐(0)
摘要:P1031 均分纸牌 这道题告诉我们,对于实在想不出算法的题,可以大胆按照直觉用贪心,而且在考试中永远不要试着去证明贪心算法,因为非常难证,会浪费大量时间。 (这就是你们都不去证的理由??) 这道题贪心算法就是,计算牌的平均数,然后除了最后一堆以外,每堆都通过把多余牌移到下一堆或从下一堆取牌来使其达 阅读全文
posted @ 2017-07-13 10:55 hehe_54321 阅读(183) 评论(0) 推荐(0)
摘要:P1067 多项式输出 模拟,很坑的那种 阅读全文
posted @ 2017-07-13 10:45 hehe_54321 阅读(137) 评论(0) 推荐(0)
摘要:P1017 进制转换 先从正进制开始考虑。 例如二进制: 18=1*2^4+0*2^3+0*2^2+1*2^1+0*2^0=0+2(1+2(0+2(0+2(1)))) k=a[n]*2^n+a[n-1]*2^(n-1)+...+a[0]*2^0=a[0]+2(a[1]+2(...+2(a[n]).. 阅读全文
posted @ 2017-07-13 09:35 hehe_54321 阅读(179) 评论(0) 推荐(0)
摘要:铺地毯 因为只需要找覆盖在一个点最上面的地毯,所以可以直接从最后一张地毯开始找。找到的第一块在该点之上地毯显然是最后放上去的在该点之上的地毯,也即覆盖在该点最上面的地毯。 阅读全文
posted @ 2017-07-13 09:22 hehe_54321 阅读(116) 评论(0) 推荐(0)

AmazingCounters.com