自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小G的ACM之路

一个在艰难爬坑的菜鸟

  • 博客(10)
  • 资源 (6)
  • 收藏
  • 关注

原创 POJ 1823 Hotel(线段树区间更新)

题意: 一个Hotel有N个房间,一开始全部为空。 接下来有M个询问。 输入1,代表房间被占用,然后输入两个数代表房间被占用的房间号和数量。 输入2,代表房间被置空,输入两个数代表房间被清空的房间号和数量。 输入3,输出连续最长没有被占用的房间数量。 思路: 线段树的区间更新,维护的值还是很好想的, 分别是当前 线段的maxl最长连续的左区间,maxr最长

2015-06-17 19:04:54 551

原创 hdu 1566 Color the ball(线段树区间更新)

解析: 题意说的很清楚了,从a更新到b,简单的线段树区间更新问题。 mymy codecode#include <cstdio> #include <cstring> #include <algorithm> #define ls (o<<1) #define rs (o<<1|1) using namespace std; typedef long long ll; const int N =

2015-06-17 15:36:29 637

原创 HDU 5238 Calculator(中国剩余定理+线段树)

题意: 有加,乘,次方3种运算,初始值为x,给定运算式。 现在有2种操作: 第一种:告诉你x的值,求答案模29393。 第二种:更改某个位置的运算。 解析: 线段树维护值域的问题,但是那个操作并不能简单的合并,因为值域还是很大的数组开不下,所以我们得另寻他法。 可以发觉29393并不是质数,29393 = 7×13×17×19。 设: t1=ans%7

2015-06-17 09:19:05 1362

原创 HDU 5039 Hilarity(dfs序+线段树)

题意: 给出一颗树,树的每条边上有权值(0或1)。 有两种操作: 1. 修改某个边的权值,0变为1,1变为0。 2. 查询当前的树有多少个不同的路径,使得路径上的权值异或和为1。 注意:起点和终点不同,算作不同一条路径。 思路: 其实发现这题是路径上的异或,那么就有更简单的做法了,因为不用真的求出所有的路径,确定一个根,那么两个点路径的权值异或和可以用它们到跟的路径的

2015-06-17 09:02:51 729

原创 hdu 5242 Game(dfs+线段树)

题意: 给定一个树形的游戏网络,可以从根节点出发K次,每次沿着一条路径走下去,不能回头,出口在各个叶子节点,在路过一个节点时可以 获得该点的权值,每个点的权值只能被获得一次(获得一次之后该点的权值变为0),问K次怎样走最后可以获得的权值总和最大,求最大值。 解析: 首先预处理出dfs序,然后求出每个dfs序的权值,以及每个节点在这个dfs序中的子树的区间。 然后用线段树维护最大的链上,

2015-06-10 21:39:41 536

原创 hdu 4027 Can you answer these queries?(线段树)

题意: 给定100000个数,两种操作,0 i j表示将i j这段的数字都开根号(向下取整),1 i j表示查询i j之间的所有值的和。(所有的和都不超过64位) 解析: 此题的关键是要理解对任何64位以内的值,开根号最多不会超过7次,所以用线段树做,更新到叶子节点的次数最多7次,所以,每当我们要进行更新操作的时候,我们先判断一下这个区间是否有必要进行更新(若全都是1就没有更新的必要了),判

2015-06-09 09:44:22 540

原创 hdu 5239 Doom(线段树+数论)

题意: 给出n个数和一个初始值为0的答案。每次操作给出一个区间[l,r],把区间所有的数加到答案中,之后把区间的每个数都平方。每次操作都需要输出答案 mod 9223372034707292160(2 ^ 63 - 2 ^ 31) 思路 这题的做法和 hdu 4027 类似 首先,应该想到这个题可以用线段树来维护区间的和,然后对于(2 ^ 63 - 2 ^ 31)这个数,即任意数的平方

2015-06-09 09:35:03 1013

原创 hdu 5249 KPI (动态中位数,两个set)

解析: 题意要求动态的求中位数,参考别人的方法是先开两个优先队列。 以及利用一个队列来模拟管道。 然后左边升序,右边降序,右边个数-左边个数>=1,然后右边询问的时候直接输出右边最小的,然后看看是左边还是右边的,把对应的那边的个数-1,如果发现(右边个数-左边个数>=1)这个条件不满足了,那么就权衡下,两个队列里面的元素处理下(左给右或者右给左),总的时间复杂度与数据无关,是O(n*

2015-06-09 09:09:16 909

原创 HDU 5265 pog loves szh II(二分)

题意: 给出n,p,n个数,从中取两个数 a,b , 求出( a + b )% p 的最大值。 解析: 先把每个数%p , 可以发现两个数加起来,要么 < p,要么 ≥ p,然后小于 2p。 那么对于大于p的,必定是最大那两个数加起来%p,满足贪心的。 小于p的话,就可以直接找,二分可以,因为满足单调性。 AC代码:#include <cstdio> #include <cstr

2015-06-09 08:59:02 672

原创 HDU 5266 pog loves szh III (线段树+LCA)

解析: 先利用RMQ求LCA的方法,求出每个节点的最值,让后利用线段树来维护每个区间上面的LCA就可以了。思路是比较简单的,可是比赛的时候不会LCA,所以没有做出来。 注意: 本题需要使用手动扩栈的方法不然会栈溢出。 AC代码#pragma comment(linker, "/STACK:102400000,102400000") #include <cstdio> #include <cs

2015-06-09 08:53:59 678

java局域网聊天(模拟QQ)

本程序实现了注册登入,私聊,群聊,文件传输的功能。 程序需要连接MySQL数据库,所以需要先安装MySQL数据库,然后执行建表语句,才可以运行。

2015-01-01

java十五数码图形界面程序

本程序是用java实现,15数码逻辑的逻辑部分是用c++生成的动态链接库实现的。 15数码的可能状态有 15!/2 这么多,不可能全部算完,所以这里我是用A*算法,寻找50之内,最接近答案的解,如果当前的状态没有找到答案,那么继续查找,最后肯定能复原。

2014-12-23

winmanager

winmanager插件,集合了taglist窗口,显示文件夹的目录结构并显示程序中的宏\函数\变量等

2014-09-15

ctags58.zip

ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。

2014-09-15

taglist_45.zip

taglist_45.zip包,加压把doc,plugin,auto中的东西风别放到vim对应的目录中去

2014-09-15

C++函数手册

一份比较全面的C++函数手册,欢迎大家下载

2014-08-18

空空如也

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

TA关注的人

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