自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

那些年

在慢慢爬的程序员

  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 POJ - 2926 Requirements

题意:多维的曼哈顿最远距离思路:做了1,2,3维的,其实就是枚举所有绝对值的可能的表达式#include #include #include #include using namespace std;const int MAXN = 100005;const int M = 5;const double inf = 1e200;struct node{ double x

2014-04-30 22:02:54 750

原创 HDU - 4135 Co-prime

题意:求[a,b]与n互质的个数思路:容斥原理的运用,提取n的素因子,先算出不与n互素的个数,容斥原理奇加偶减#include #include #include #include #define ll long long using namespace std;const int MAXN = 70;ll prime[MAXN];ll a,b,n;ll make(l

2014-04-29 16:59:17 732

原创 HDU - 4497 GCD and LCM

题意:给出三个数的gcd,lcm,求这三个数的所有的可能思路 :设x,y,z的gcd为d,那么设x=d*a,y=d*b,z=d*c,a,b,c肯定是互质的,那么lcm=d*a*b*c,所以我们可以得到a*b*c=lcm/gcd=ans,将ans分解因数后,那么每次都要分配每个因数的个数,假设某个因数的个数为n,一定要有两个分配到n,0,所以是6种#include #include #i

2014-04-25 19:49:10 1082

原创 HDU - 1828 Picture (线段树求并周长)

题意:求

2014-04-21 18:15:12 651

转载 数据结构的选择与算法效率

数据结构的选择与算法效率——从IOI98试题PICTURE谈起 福建师大附中  陈宏 【关键字】数据结构的选择   线性结构   树形结构 【摘要】算法 + 数据结构=程序。设计算法与选择合适的数据结构是程序设计中相辅相成的两方面,缺一不可。数据结构的选择一直是程序设计中的重点、难点,正确地应用数据结构,往往能带来意想不到的效果。反之,如果忽视了数据

2014-04-17 22:27:56 3159

原创 HDU - 1542 Atlantis (线段树)

题意:给出每个矩形的左下角,右上角,求所有矩形的并面积,就是不重复计算重复的部分思路:线段树的一个应用,还是太年轻,看了别人的方法点击打开链接#include #include #include #include using namespace std;const int MAXN = 110;struct Line{ double x,y_down,y_up; int

2014-04-16 21:39:58 707

原创 HDU - 2642 Stars

题意:就是求每个矩形内的亮的星星的个数思路:二维的树状数组,相当于优化了的矩阵求和的题目#include #include #include #include using namespace std;const int MAXN = 1005;int arr[MAXN][MAXN];int vis[MAXN][MAXN];int lowbit(int x){ retu

2014-04-14 22:44:49 752

原创 HDU - 1541 Stars

题意:每颗星的左下角的星星的个数就是它的等级,求所有等级的星星个数思路:因为已经按y坐标排序了,所以只要线段树x坐标就行了#include #include #include #include using namespace std;const int MAXN = 32005;int tree[MAXN],level[MAXN];int n;int lowbit(in

2014-04-14 18:08:03 779

原创 HDU - 3465 Life is a Line

题意:求在[L,R]范围内直线交点的对数思路:首先如果两条直线相交的话,那么(xl1-xl2)*(yl1-yl2)#include #include #include #include #define ll long longusing namespace std;const int MAXN = 50010;struct node{ double x,y; int i

2014-04-14 16:02:23 998

原创 HDU - 3450 Counting Sequences

题意:求个数大于等于2的序列,要求每相邻的两个的大于d,求满足的个数思路:同样是树状数组的应用,跟前面两题类似,求每次加入的a[i],先求范围在[a[i]-d,a[i]+d]的个数,再加到a[i]上,加一加的是本身,还有要注意的是,要减去1个的情况,跟前面两题不一样,#include #include #include #include using namespace std;c

2014-04-13 23:39:12 886

原创 HDU - 2227 Find the nondecreasing subsequences

题意:求不递减的子序列的个数思路:跟昨天那题HDU-3030不同的是,昨天的是严格的递增的子序列数,稍微修改一下就行了#include #include #include #include #define ll long longusing namespace std;const int MOD = 1000000007;const int MAXN = 100010;ll

2014-04-13 15:34:31 772

原创 HDU - 3030 Increasing Speed Limits

题意:求有长为m的序列生成的长度为n的序列的上升子序列的个数思路:生成完长为n的序列后,首先我们想到(nlogn)的求上升序列的方法,然后再这个基础上改进,每插入一个的时候,我们可以得到左边的小于它的个数,然后我们就可以得新增加的上升子序列是sum(id-1)+1,然后更新树状数组#include #include #include #include #define ll long

2014-04-12 15:55:52 1251

原创 HDU - 1829 A Bug's Life (并查集应用)

题意:判断有没有同性恋的一道题,其实也可以看成是:在一颗二叉树上是否有环思路:在并查集的基础上,有区别的一步是:当是新的两个树合并的时候,除了将一个根设为另一颗树的根的父亲外,还要加上不同性别的一层关系,我们开新的数组,vis[i]=j表示i和j是异性,还要的是将i的根的异性伙伴与j的根合并#include #include #include #include using name

2014-04-09 23:00:43 893

原创 HDU - 1422 重温世界杯

Description世界杯结束了,意大利人连本带利的收回了法国人6年前欠他们的债,捧起了大力神杯,成就了4星意大利.世界杯虽然结束了,但是这界世界杯给我们还是留下许多值得回忆的东西.比如我们听到了黄名嘴的3分钟激情解说,我们懂得了原来可以向同一个人出示3张黄牌,我们还看到了齐达内的头不仅能顶球还能顶人…………介于有这么多的精彩,xhd决定重温德国世界杯,当然只是去各个承办

2014-04-07 21:13:02 946

原创 HDU - 3015 Disharmony Trees

题意:给你n棵树的坐标x,高度h,让你分别按坐标,高度排序后,得到一新的序列,也可以理解为一颗组合成的新树,这棵树的坐标,高度都是排序来的,看了别人的解释,还是理解了老半天,然后就是求花费了,每任意两颗树的花费为min(h[i],h[j])*abs(x[i]-x[j]),求所有组合的花费思路:经过排序的处理后,就是仿着POJ-1990 的思想来做 了,也可以简化成:按高度排序后,然后按每棵

2014-04-07 12:49:29 968

原创 POJ - 1990 MooFest

题意:一排牛,每头牛(坐标pos,听力v),如果牛i和牛j交流的话,需要max{v[i],v[j]}*abs(pos[i]-pos[j]),求两两交流的总和。思路:还是求逆序数对的思想,按坐标排序后,求当前小于它听力的牛们的总花费,然后倒序后再求一遍就是结果了,#include #include #include #include using namespace std;const

2014-04-05 15:42:16 1268

原创 HDU - 2838 Cow Sorting (树状数组)

题意:求排列成升序的花费,每次只能交换相邻的两个数,且话费为两个数字的和,求最小的话费思路:先设想一下,每个数字会被交换的可能,一个是当前面有大于它的数字,一个是当后面有小于它的数字两种情况,这样我们就可以联想到树状数组了,每次看看该数面有多少小于它的,就可以求出多少大于它的了,然后倒着求小于它的情况,起初一直挖,改着改着就A了,还有太大的数组一定要定义成全局变量#include #in

2014-04-05 10:25:24 777

原创 HDU - 1142 A Walk Through the Forest

题意:英语着急的题目,看了别人的解释,给个图,让你求最短路,然后找出满足下列条件的个数:假设 A 和 B 是相连的,当前在 A 处,如果 A 到终点的距离大于 B 到终点的距离,则可以从 A 通往 B 处,问满足这种的条件的路径条数。思路:再用最短路处理完后,就是求满足条件的个数,这里用到了记忆化搜索减少搜索用dp[i]来表示i开始的满足条件的个数#include #includ

2014-04-03 22:03:43 698

原创 HDU - 2870 Largest Submatrix

题意:求最大的子矩阵,要求矩阵的字母都是一样的思路:首先枚举所有的可能,也就是a,b,c,,然后就是类似于HDU1505,1506两道题目了#include #include #include #include using namespace std;const int MAXN = 1010;char map[MAXN][MAXN];int n,m;int num[MA

2014-04-03 12:03:29 799 1

原创 HDU - 1505 City Game

题意:简单的说就是求最大的面积,F表示可取,R表示不可取思路:跟1506的思路是一样的,就是变成了二维的了#include #include #include #include using namespace std;const int MAXN = 1005;int l[MAXN],r[MAXN];int a[MAXN];int n,m,ans;int main()

2014-04-02 22:26:27 714

原创 HDU - 1506 Largest Rectangle in a Histogram

题意:求最大的矩形面积思路:单纯的搜索每个点能拓展的最大的矩形会超时,所以预处理,每个点的,到最左/右的最远的下标,那么矩形的面积就能求出来了,然后找最大值#include #include #include #include using namespace std;const int MAXN = 100010;long long a[MAXN],l[MAXN],r

2014-04-02 18:58:38 657

原创 HDU - 2688 Rotate

题意:很容易理解,求每次序列的顺序数思路:要用到线段数,不然会超时,第一次处理的时候,用线段树每次来查询树的相对的位置的前几个的个数,之后交换的时候,判断用第一个交换数的大小就可以计算个数了 ,注意输出,用cout过的#include #include #include #include using namespace std;const int MAXN = 3000005;

2014-04-01 22:20:54 915

Spring-AOP-JDK动态代理

Spring-AOP-利用java中的动态代理和Spring的拦截器做到AOP

2015-05-12

Spring核心学习IOC部分

Spring核心学习IOC部分:从最简单的BeanFactory开始一步步完善类似Spring的功能

2015-05-11

intellij idea 快捷键

intellij idea 常用的快捷键

2014-05-02

空空如也

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

TA关注的人

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