• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
L&King
有何不可!
   首页    新随笔    联系   管理    订阅  订阅
04 2016 档案
HOJ 2678 Stars

摘要:题意:N个星星(x,y,z),星星的等级等于x,y,z都小于等于它的星星数量,问每个等级有多少星星。 思路:最暴力的方法是三维树状数组。但是会超内存。所以我们对其中一维先排好序,然后用二维的做。 代码: 阅读全文
posted @ 2016-04-30 10:49 L&King 阅读(205) 评论(0) 推荐(0)
HOJ 2275 Number sequence

摘要:题意:问你有多少个序列满足Ai < Aj > Ak and i < j < k. 思路:对每个数求它之前和之后分别有多少个个数比它小,两边相乘。最后求和。具体实现先用树状数组正序求,再反过来再用一遍树状数组。 代码:特别要注意的是题目中Ai的范围是从0开始,但是树状数组不能从0开始,所以统一加一处理 阅读全文
posted @ 2016-04-30 09:58 L&King 阅读(231) 评论(0) 推荐(0)
HOJ 1640 Mobile Phone

摘要:题意:有一个n*n的矩阵,op==1时,在(x,y)增加值z,op==2时,求以(x1,y1)和(x2,y2)构成的矩阵的和。 思路:二维线段树。 代码: 参考文章:http://blog.csdn.net/hit_lingo/article/details/50845718 http://www. 阅读全文
posted @ 2016-04-29 11:13 L&King 阅读(242) 评论(0) 推荐(0)
SGU 180 Inversions

摘要:题意:求逆序数对数量。 思路一:暴力,O(N^2),超时。 思路二:虽然Ai很大,但是n比较小,可以离散化,得到每个Ai排序后的位置Wi,然后按照输入的顺序,每个Ai对答案的贡献是Wi-Sum(Wi-1)-1.Sum(x)表示1-x中在之前出现的总数,也即非逆序数对的数量,再减去Ai本身,就是Ai的 阅读全文
posted @ 2016-04-27 18:37 L&King 阅读(216) 评论(0) 推荐(0)
HDU 1671 Phone List

摘要:一道字典树的模板题,每次插入前查询是否有该串的某个前缀子串存在,或者该串是否某个串的前缀。具体实现是在插入时串的结尾做一个标记,如果某一个串在查询的时候找到一个标记,说明存在前缀;第二种情况是这个串遍历结束后还是没有发现一个空的,也即该串是某个串的子串。最后需要注意的是动态申请空间需要及时释放空间, 阅读全文
posted @ 2016-04-26 15:57 L&King 阅读(215) 评论(0) 推荐(0)
字典树(Tire)模板

摘要:hiho1014 阅读全文
posted @ 2016-04-26 15:15 L&King 阅读(275) 评论(0) 推荐(0)
RMQ之ST算法模板

摘要:概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。ST算法它可以在O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查 阅读全文
posted @ 2016-04-26 13:34 L&King 阅读(208) 评论(0) 推荐(0)
高精度模板

摘要:C++类,可以进行正整数之间的加减乘除,模,大小比较。输入输出用cin,cout; 1 #include <stdio.h> 2 #include <iostream> 3 #include <cstdio> 4 #include <cstdlib> 5 #include <cstring> 6 # 阅读全文
posted @ 2016-04-25 15:53 L&King 阅读(230) 评论(0) 推荐(0)
动态规划求最长回文子序列模板

摘要:子序列是不连续的,子串是连续的。 滚动数组,空间复杂度为O(N)。时间复杂度O(N^2)。上面的代码是2016中南大学校赛的J题。 阅读全文
posted @ 2016-04-25 15:09 L&King 阅读(255) 评论(0) 推荐(0)
全排列模板

摘要:一,递归实现 1,不去重 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 void permutation(char *s,int d,int l) 6 { 7 if(d== 阅读全文
posted @ 2016-04-24 11:25 L&King 阅读(212) 评论(0) 推荐(0)
堆排序模板

摘要:注意:使用小根堆排序后是递减数组,要得到递增数组,可以使用大根堆。 在堆排序好后再添加元素,需要重新建堆并且排序。 由于每次重新恢复堆的时间复杂度为O(logN),共N - 1次重新恢复堆操作,再加上前面建立堆时N / 2次向下调整,每次调整时间复杂度也为O(logN)。二次操作时间相加还是O(N 阅读全文
posted @ 2016-04-23 11:27 L&King 阅读(407) 评论(0) 推荐(0)
矩阵快速幂模板

摘要:#include #include const int N=2; const int p2=10000; struct Mat{ int mat[N+1][N+1]; }; Mat operator *(Mat a,Mat b) { Mat c; memset(c.mat,0,sizeof(c.mat));//清零 for(int i=1;i>=1) {... 阅读全文
posted @ 2016-04-18 14:21 L&King 阅读(183) 评论(0) 推荐(0)
欧拉函数模板

摘要:1 int e(int n) 2 { 3 int cnt=n; 4 int i; 5 for(i=2;i<=n;i++) 6 if(n%i==0) 7 { 8 cnt -=cnt/i; 9 while(n%i==0) 10 n/=i; 11 } 12 return cnt; 13 } E(x)为欧拉 阅读全文
posted @ 2016-04-16 11:28 L&King 阅读(166) 评论(0) 推荐(0)
素数筛选模板

摘要:1 const int N=1e6+11; 2 int p[N],pr[N],cnt; 3 void init() 4 { 5 for(int i=2;i<N;i++) 6 { 7 if(!p[i]) pr[++cnt]=i; 8 for(int j=1;j<=cnt&&i*pr[j]<N;j++) 阅读全文
posted @ 2016-04-16 11:18 L&King 阅读(170) 评论(0) 推荐(0)
线段树

摘要:线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)! 性质:父亲的区间是[a,b],(c=(a+b)/2)左儿子的区间是[a,c],右儿子的区间是[c+1,b], 阅读全文
posted @ 2016-04-09 17:05 L&King 阅读(248) 评论(0) 推荐(0)
HDU 3667 费用流(拆边)

摘要:题意:有n个城市(1~n),m条有向边;有k件货物要从1运到n,每条边最多能运c件货物,每条边有一个危险系数ai,经过这条路的费用需要ai*x2(x为货物的数量),问所有货物安全到达的费用。 思路:c<=5,这里可以做文章;把每条边拆成c条边,容量都为1,费用为ai*(2*i-1)(第二个i是指拆边 阅读全文
posted @ 2016-04-03 15:13 L&King 阅读(149) 评论(0) 推荐(0)
HDU 3081 最大流+并查集

摘要:题意:有n个男生和n个女生,玩结婚游戏,由女生选择男生;女生可以选择不会和她吵架的男生以及不会和她闺蜜吵架的男生,闺蜜的闺蜜也是闺蜜。问你最多可以进行多少轮,每一轮每个女生只能选择一个之前她没选过的男生。 思路:显然最少进行0轮,最多进行n轮,所以我们可以对轮数进行二分;源点到女生连一条容量为轮数的 阅读全文
posted @ 2016-04-03 12:56 L&King 阅读(335) 评论(0) 推荐(0)

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3