自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 HDU 2795 Billboard

思路: 我们可以将每一行当成一个叶子节点,起初叶子节点的均为w,此时我们便将问题转化为维护区间区间最大值即可,想通了之后便是一道简单的线段树单点更新的题目~~~#include #include #include #include #include #include using namespace std;const int MAXN = 222222;int ma

2013-10-31 10:05:42 414

原创 POJ 3417 Network

/* 题意:给出一棵树,再给出M条新边,问删除一条树边以及一条新边,使之至少变为两部分的方案数 对于新边(a,b),会在a->LCA(a,b)->b这里形成一个环,所以删除新边(a,b)以及这个环上的没有被其他环覆盖的边 即可分成两部分。所以问题转化为求每条边被环覆盖的次数 设dp[x]表示x所在的父边被覆盖的次数 引进一条新边(a,b)后,dp[a]++

2013-10-30 09:28:43 501

原创 POJ 3728 The merchant

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=34528#problem/L#include #include #include #include #include #include using namespace std;const int MAXN = 50010;const int POW = 1

2013-10-29 15:44:07 494

原创 Ubuntu 12.04安装OpenCV

1. 先从sourceforge上下载OpenCV的源码http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.0/2. 解压到任意目录tar xvfj OpenCV-2.4.3.tar.bz23. 进入源码目录,创建release目录cd OpenCV-2.4.3

2013-10-23 17:14:33 586

原创 HDU 2874 Connections between cities

赛前测试一下模板用的~~~Tarjan LCA离线算法#include #include #include #include #include #include #include #include #include using namespace std;const int MAXN = 10010;const int MAXM = 1000010;in

2013-10-23 16:26:50 584

原创 ZOJ 3381 Osaisen Choudai!

这是一道简单的DP题目,其中要用到RMQ问题的解决方法#include #include #include #include #include #include using namespace std;const int MAXN = 50010;int S[MAXN], X[MAXN], Y[MAXN];int ST[MAXN][20], dp[MAXN];i

2013-10-23 09:36:34 641

原创 HDU 2859 Phalanx

http://acm.hdu.edu.cn/showproblem.php?pid=2859二维dp: dp[i][j] = min(dp[i-1][j+1]+1, cnt);  ans = max(ans, dp[i][j])#include #include #include #include #include #include using namesp

2013-10-22 20:23:29 630

转载 LCA问题(含RMQ的ST算法)

一、定义与定理      LCA:Least Common Ancestors(最近公共祖先),对于一棵有根树T的任意两个节点u,v,求出LCA(T, u, v),即离跟最远的节点x,使得x同时是u和v的祖先。      在线算法:用比较长的时间做预处理,但是等信息充足以后每次回答询问只需要用比较少的时间。      离线算法:先把所有的询问读入,然后一起把所有询问回答完成。   

2013-10-21 16:10:07 601

原创 RMQ问题

原理很简单,思想很重要~~~一维RMQ:/*一维RMQ*/const int MAXN = 1010;int elem[MAXN];int dp[MAXN][15];int n;void RMQ_Init(){ int i, j; for(i = 1; i <= n; ++i) dp[i][0] = elem[i]; for

2013-10-21 16:07:26 506

原创 HDU The Boss on Mars

http://acm.hdu.edu.cn/showproblem.php?pid=4059本题便是对于利用容斥原理进行欧拉函数的求解的拓展....  n = p1^a1*p2^a2*p3^a3*...*pk^akA1表示m的素因子分解中含有素因子p1, .... Ak表示m的素因子分解中含有pk,则与n互质的数A1至Ak性质均不满足,显然可以利用容斥原理来进行求解...phi(n

2013-10-19 22:32:51 572

原创 组合数学问题(一)

对于在n位的2进制中,有m个0,其余为1的catalan数为:C(n,m)-C(n,m-1)。证明可以参考标准catalan数的证明。问题1的描述:有n个1和m个-1(n>=m),共n+m个数排成一列,满足对所有0 0的排列数。 问题等价为在一个格点阵列中,从(0,0)点走到(n,m)点且不经过对角线x==y的方法数(x > y)。考虑情况I:第一步走到(0,1),这样从(0,1)走到

2013-10-19 19:17:19 1008

原创 POJ Prime Test

模板题,代码留作以后用...#include #include #include #include #include #include using namespace std;typedef long long LL;const int maxn = 10000;const int S = 20;LL factor[maxn];int tot;//返

2013-10-19 12:40:54 682

转载 【转AekdyCoin】求小于等于N的与N互质的数的和

if gcd(n,i)=1 then gcd(n,n-i)=1 (1反证法:如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0而n%k=0那么必须保证i%k=0k是n的因子,如果i%k=0那么gcd(n,i)=k,矛盾出现;于是问题变的非常简单ANS=N*phi(N)/2i,n-i总是成对出现,并且和是n于是可能就有人问了,如果存在n-i=

2013-10-19 09:18:43 613

原创 HYSBZ 2743 采花

题意:给出一个数列,每个询问查询[L,R]中至少出现两次的数字有多少种?思路:(1)记录每个位置i的数字的前一个相同数字出现的位置pre[i],没有前一个相同的pre[i]为0。(2)询问按照R升序。(3)开始计算:枚举i从1到m(m为询问个数),对于某个位置x,将pre[pre[x]]+1增加1,pre[x]+1减少1,这样做的原因在于任意一个出现两次的数字在任意一段区间中最

2013-10-17 17:19:36 641

原创 HYSBZ 1878 HH的项链

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

2013-10-17 15:32:42 600

原创 POJ 3321 Apple Tree

题目大意为给出一棵树,节点数这题需要把一个树形结构变换为线性结构,然后使用树状数组动态求和。变换方法为DFS一次这棵树,记录下每个节点第一次访问和最后一次访问时的顺序编号,这时,在某节点第一次访问和最后一次访问编号之间的访问编号,必定为该节点的子节点,按照访问编号建立树状数组,当改变某一节点苹果时,只需按照该节点第一次访问的编号在树状数组中修改值,查询时统计某节点在第一次访问和最后一次访问编号

2013-10-17 09:46:50 546

原创 POJ 3067 Japan

将East coast当成x,West coast当成y, 这题需要注意的是两条高速公路交点只能在两条高速公路之间,不能在East coast 或 West coast处. 针对以上两种不同的情况排序的规则是不一样的:计算East coast 和 West coast在内的交点   首先按照 y非增,x非降的顺序进行排序,然后按照排序后的顺序遍历没条高速公路,利用树状数组统计当前高速公

2013-10-16 14:35:41 492

原创 POJ 2481 Cows

题目的思想和POJ 2352的思想是一样的,只是需要对重合区间的处理...#include #include #include #include #include #include using namespace std;const int MAXN = 100010;int Tree[MAXN], ans[MAXN];int n;inline int

2013-10-16 09:37:21 470

原创 多维树状数组

多维树状数组,顾名思义,是树状数组在多维空间上的扩展.它可以动态维护多维空间的前序和.以下是点修改,区间查询的树状数组的模式(向上修改,向下统计)意义:c[x,y,z,....]表示的是a[x-lowbit(x)+1,y-lowbit(y)+1,z-lowbit(z),....]到a[x,y,z,....]内的区间和.修改: 复杂度O(log(n)^k)void

2013-10-15 20:59:52 1032

转载 彻底弄懂二维树状数组

当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组.   通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组为A[i](i=1,2,...n),则与它对应的树状数组C[i](i=1,2,..

2013-10-15 20:48:29 736

原创 SPOJ 4491PGCD

这是GCD八题中最难的一题,自己写的是各种超时,只好参考网上大牛的解题报告,研究了一上午,终于给搞懂了.....题目要求:gcd(i,j)=素数的对数,其中1对于求解gcd(i,j)=k的对数利用莫比乌斯反演我们已经可以求解,所以最单纯的想法便是枚举素数然后逐个求解,这样肯定会TLE的。采取了网上一大牛的思路:我们要求解的结果为 Sigma(p, Sigma(p|d, mu

2013-10-15 11:23:02 880

原创 关于GCD的8题

1.   求GCD(X, Y) = 素数, 1    GCD(X, Y) = P 等价于 GCD(X',Y') = 1(X‘ = X/P, Y' = Y/P)因此上述问题可以转化为求解 GCD(X,Y)=1 1   首先预处理出1直n的所有的素数和欧拉函数的和,答案为sigma(sigma(n/pi)*2-1)(12.   求GCD(X,Y) =1的对数, 0   思路

2013-10-14 17:11:07 1250

原创 三分法——求解凸性函数的极值问题

转自http://hi.baidu.com/vfxupdpaipbcpuq/item/81b21d1910ea729c99ce33dbUVALive 5009#include #include #include #include #include #include #include #include #include #include #include #incl

2013-10-14 14:24:41 736

原创 POJ 1018 Communication System

http://poj.org/problem?id=1018枚举加优化,这题提交AC了,但是却发现自己的代码根本不正确,数据弱爆了,后来改了一下。。。  注意这题网上的大多数代码是错误的,虽然用它们的程序能过。。。#include #include #include #include #include #include #include #include #in

2013-10-14 14:17:43 540

原创 vim tab键默认4空格

为了vim更好的支持python写代码,修改tab默认4个空格有两种设置方法:1. vim /etc/vim/vimrcset ts=4set sw=42. vim /etc/vim/vimrc set ts=4set expandtabset autoindent推荐使用第二种,按tab键时产生的是4个空格,这种方式具有最好的兼容性。

2013-10-05 09:51:30 614

原创 Ubuntu下如何将普通用户提升到root权限

提升的方法如下:在shell里面输入  sudo gedit /etc/passwd   将里面的当前用户的ID值进行修改。譬如我的当前用户spongewxy,则找到了,spongewxy:x:1001:1001:www.spongewxy.com:/home/spongewxy:/bin/bash   将两个1000改成0即可。最后将Ubuntu系统进行注销,然后在登陆的用户名里输入

2013-10-02 12:33:29 700

原创 POJ 3040 Allowance

经典贪心题目~~~#include #include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;struct Node{ int val, num; Node() {} Node(int t_val, int t_num) : val(

2013-10-01 19:47:24 709

原创 POJ 3262 Protecting the Flowers

贪心好题~~~方法如下:当前最优,因为每一次搬运之后剩下的问题和原问题一样,只是规模变小了,故如果每次选出当前最优的解来进行选取,则累计起来的解也是最优的.所以这是一道贪心题.选择策略,1 在二个中间选择之中,能根据time/eat小的那个为最优解证明:二个羊中 A,B,属性分别为分别为eatA,timeA,eatB,timeB选A的时候损失timeA*eatB选B的时候

2013-10-01 18:50:42 541

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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