自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Deng's site \#

http://blog.deng.cf

  • 博客(19)
  • 资源 (46)
  • 收藏
  • 关注

原创 HDU 3974 Assign the task(树 并查集)

题意  公司中有n个员工  除了boss  每个员工都有自己的上司  自己下属的下属也是自己的下属  当给一个员工分配任务时  这个员工会把任务也分配到自己的所有下属   每个员工都只做最后一个被分配的任务  对于每个C x  输出员工x正在做的任务  没有就输出-1 把员工的关系数建成类似并查集的结构  把每个直接分配任务的员工的任务和任务分配时间保存起来  查询时只要找这个员工所有父节点中最

2015-04-22 21:48:27 1397

原创 HDU 1540 Tunnel Warfare(线段树 区间合并 最大连续区间)

题意  有n个连在一起的地道  接下来有m个操作  D x 炸掉x号地道  炸掉后x所在的区间就不连续了  Q x 查询输出包括x的最大连续区间长度   R修复最后一个被炸的地道  注意输入R时可能并没有需要修复的地道 线段树的区间合并问题  线段树要维护3个信息   len  对应区间的最大连续长度   ll  对应区间最左端的一段连续长度 lr  对应区间最右端的一段连续

2015-04-22 14:25:48 1201 1

原创 HDU 4027 Can you answer these queries?(线段树 区间不等更新)

题意  输入n个数  然后有两种操作   输入0时将给定区间所有数都变为自己的开方   输入1输出给定区间所有数的和 虽然是区间更新  但每个点更新的不一样  因此只能对单点进行更新  其实一个点最多被更新7次  2^64开平方7次后就变为1了  如果某个区间的数都变为了1  那么对这个区间的开方就不用考虑了   另外要注意给你的区间可能是反的 #include #define lc p<<

2015-04-19 09:34:08 1701

原创 POJ 2528 Mayor's posters(离散化 线段树 贴海报)

题意  在墙上贴n张海报  输入每张海报的的左右端点坐标  问最后可以看到多少张海报  能看到一点也是能看到 先把线段树初始化为0 输入一张海报  就把那个区间变成这张海报的序号  最后判断墙上有多少个不同的序号就行了 但是海报坐标的端点值高达10000000  直接用线段树会超时   但是注意到海报最多只有10000张  也就是最多有20000个不同的坐标  于是可以利用离散化的知识   把

2015-04-18 19:06:56 2032

原创 Codeforces 535C Tavas and Karafs(二分)

题意  有一个等差数列  从A开始  公差为B  然后n个询问  每个询问给定l,t,m   然后要求如果每次可以最多选择m个数   使这m个数-1   那么在t次操作中可以使l为左端点的最长序列中使所有数为0  输出这个最长序列的右端序号 定理  序列h1,h2,...,hn 可以在t次时间内(每次至多让m个元素减少1)  全部减小为0  当且仅当   max(h1, h2, ...,

2015-04-15 16:26:19 1444

原创 HDU 4006 The kth great number(优先队列·第K大数)

题意  动态查询第K大的数 用小数在前优先队列维护K个数  每要插入一个数时 若这个数小于队首元素那么就不用插入了  否则队首元素出队  这个数入队  每次询问只用输出队首元素就行了 #include #include using namespace std; int main() { int n, a, k; char op[5]; while(~scanf("%d%

2015-04-14 13:05:56 1296

原创 HDU 1166 敌兵布阵 (树状数组·线段树)

题意  中文 动态区间和问题   只会更新点  最基础的树状数组 线段树的应用 树状数组代码 #include using namespace std; const int N = 50005; int c[N], n, m; void add(int p, int x) { while(p <= n) c[p] += x, p += p & -p; } int

2015-04-14 12:54:32 811

原创 Codeforces 534D Handshakes(贪心)

题意   房子里有n个人走进来  编号1~n  每个人走进来时房子里所有空闲的人都会和他招手  空闲的某三个人可以选择一起去打比赛  当然打比赛就变得不空闲了  给你每个人进来时和他招手的人的数量  要求输出一种可能的进房间顺序 没有可能的就输出Impossible 这题放在d就比较简单了  直接贪心就可以  把招手数量为i对应的人都保存到栈s[i]里  第一个进房间的人肯定是s[0]里的  然

2015-04-13 18:22:01 1177

原创 Codeforces 534B Covered Path(贪心)

题意  你在路上走 每秒钟的开始都可以改变自己的速度(改变速度都是瞬间完成的)  知道你开始的速度v1 结束时的速度v2  整个过程所用时间t  以及每秒最多改变的速度d  求这段时间内你最多走了多远 最优的肯定是先把速度从v1升到最大  然后从最大减到v2  使得用的时间不会超多t   因为肯定是足够从v1减为或升到v2的   那么我们只用从两端往中间靠  哪边的速度小  哪边就加上d  知道

2015-04-13 17:29:27 873

原创 hiho一下·41 骨牌覆盖问题·一(矩阵快速幂·费波拉契)

题意  求费波拉契数列第N项  1≤N≤100,000,000 通过矩阵的幂  可以把一维递推的时间复杂度减小到O(logN)  主要就是快速幂的思想   对于m^n  若 n=2^a1+2^a2+...+2^ak  那么 m^n = m^(2^a1) * m^(2^a2) * ... * m^(2^ak)  那么只用看n转换为二进制后哪些位为1就可以快速求出m^n了 #include

2015-04-13 17:09:52 958

原创 POJ 2299 Ultra-QuickSort(归并排序·树状数组·逆序对)

题意  给你一个数组求其中逆序对(ia[j]) 的个数  我们来看一个归并排序的过程: 给定的数组为[2, 4, 5, 3, 1],二分后的数组分别为[2, 4, 5], [1, 3],假设我们已经完成了子过程,现在进行到该数组的“并”操作: a: [2, 4, 5] b: [1, 3] result:[1] 选取b数组的1

2015-04-10 20:27:30 785

原创 Codeforces 230C Shifts(模拟)

题意  有n个m列的转盘  每个转盘的某一列为1或0  你每次可以将某个转盘转动一格  问至少转多少次使得某一列n个转盘上的数都是1 把每个转盘的所有列转为1所需要的最小时间都存起来  可以以某一个1为基点顺时针逆时针各转一圈就可以把每个点需要转的次数算出来   最后看哪一列的和最小就行了 #include using namespace std; const int N = 105, M

2015-04-07 20:05:14 909

原创 HDU 3714 Error Curves(3分)

题意  求分段函数的最低点  每个点函数值为n个 a*x^2 + b*x +c (a>=0, |b| 由于a是不小于0的   所以此分段函数的函数图像只可能是类似'V'形的  可以画图观察出来  那么求最小值就可以用三分来解决了 #include using namespace std; const int N = 10005; const double eps = 1e-9; int a[

2015-04-07 17:56:22 700

原创 UVa 11624 Fire!(BFS 逃离火灾)

题意   n*m的迷宫中有一些着火点  每个着火点上下左右相邻的非墙点下一秒也将成为一个着火点  Joe每秒能向相邻的点移动一步  给你所有着火点的位置和Joe的位置  问Joe逃离这个迷宫所需的最小时间 可以先一遍bfs把每个点的最早着火时间存起来   只有Joe到达该点的时间小于这个时间Joe才能走这个点   只需要对Joe所在的点为起点再来一次bfs就行了   需要注意的是开始可能有多个着

2015-04-03 12:58:31 931

原创 FZU 2150 Fire Game(DFS+BFS)

题意  在n*m个格子组成的草地上   你可以选择两个是草('#')的格子点燃  每个点燃的格子在下一秒其四个相邻的是草的格子也会被点燃   问点燃所有的草至少需要多少秒 DFS和BFS的综合  如果'#‘连通块的数量大于2个是肯定不能点燃所有的  先dfs判断连通块个数  再bfs找出选哪两个格子可以最快把草烧完 #include #include #include using nam

2015-04-03 10:16:31 1236

原创 POJ 3414 Pots(BFS 倒水)

题意  你有两个容积分别为a,b杯子  你每次可以将某个杯子中的水倒满或者倒掉或者倒到另一个杯子  问能否通过这两个杯子量出c容量的水 和上一个倒可乐问题类似  只是这个操作更多了点  将两个杯子中各含有的水作为状态  每出队列一个状态  将所有可能到达的状态入队  直到有一个杯子里面水的体积为c   打印路径直接递归就行了 #include #include #include usin

2015-04-02 17:11:48 1018

原创 POJ 3126 Prime Path(BFS 数字处理)

题意  给你两个4位素数a, b  你每次可以改变a的一位数但要求改变后仍为素数  求a至少改变多少次才能变成b 基础的bfs  注意数的处理就行了  出队一个数  然后入队所有可以由这个素数经过一次改变而来的素数  知道得到b #include #include using namespace std; const int N = 10000; int p[N], v[N], d[N],

2015-04-02 07:48:30 935

原创 POJ 1426 Find The Multiple(BFS 同余模定理)

题意  给你一个数n  输出一个仅由0,1组成的数m使得m是n的倍数 找到一个m 是m%n==0 就行了  初始让m=1  然后bfs扩展m的位数  只有两种情况  m = m * 10  或 m = m*10 + 1;    同余模定理  (a+b) % c = (a%c + b%c) % c,  (a*b)%c = (a%c * b%c) % c; 运用同余模定理  可以只记录余数  这

2015-04-01 21:34:24 727

原创 HDU 1495 非常可乐(BFS 倒水问题)

题意  将体积为s的可乐  利用容积分别为n和m的两个杯子平均分为两份  至少需要倒多少次可乐 可以把容器s,n,m中装的可乐量看成一种状态  容器都是没有刻度的  所以每次倒可乐要么把自己倒完 要么把对方倒满  每种状态可以通过一次倒水到达哪些状态  于是可以通过bfs判断到达每种状态需要倒多少次   3个容器中有一个装的可乐为s/2的状态就是答案了  s是奇数时明显不可能平分的  可以

2015-04-01 09:39:11 2509 2

线性筛法与积性函数

贾志鹏的线性筛法与积性函数 看看就知道是什么了

2015-07-11

手速练习软件TT(带DOSBox)

经典的打字练习软件TT 提升手速还是需要的 个人觉得比金山打字通赞多了

2015-07-04

KawigiEdit2.1

Topcoder的插件 个人感觉最好用的一个 入口kawigi.KawigiEdit

2015-03-18

15个Codeblocks高亮主题

CodeBlocks的几款高亮皮肤 来自官方wiki 使用方法见我的blog

2014-11-30

C++语言程序设计·第4版·郑莉 第9章课件

清华大学出版社C++教材 C++语言程序设计·第4版·郑莉 第9章课件 模版与群体

2014-09-01

nt6 hdd installer v3.1.4

计算机相关必备工具之 nt6 hdd installer v3.1.4 硬盘安装Windows的实用工具

2014-08-30

超级PI 1.9

计算机相关必备工具之 SuperPI-1.9 小巧精悍的CPU性能测试工具

2014-08-30

CPU-Z 1.70

计算机相关必备工具之 CPU-Z 1.70 专业的CPU信息查看工具

2014-08-30

引导修复工具 v2.5.7

计算机相关必备工具之 引导修复工具 v2.5.7 多系统引导修复工具

2014-08-30

windows安装器 3.6

计算机相关必备工具之 windows安装器 3.6.3 方便安装原版系统啦啦啦

2014-08-30

EasyBCD 2.2

计算机相关必备工具之 EasyBCD 2.2中文版 系统引导相关配置工具

2014-08-30

AS SSD Benchmark 1.7

计算机相关必备工具之 SSD测试工具 查看测试SSD硬盘的详细信息

2014-08-30

编程字体合集

计算机相关必备工具之 个人喜欢的5个编程字体 让代码更好看

2014-08-30

HDTunePro 5.5

计算机相关必备工具之 硬盘测试工具 查看测试硬盘的详细信息

2014-08-30

文件校验工具

计算机相关必备工具之 文件校验工具 查看文件的hash md5 sha1等信息

2014-08-30

码农第11期

图灵社区出品电子杂志码农 之 码农第11期 2014-3-26日出版

2014-08-30

POJ最新离线版

离线的POJ题库 有2009年3月前的所有题目 题目从1000-3722 没网的ACMer必备噢

2014-08-25

(HDUACM201403版_12)组合博弈入门

杭电ACM课件2014版之(HDUACM201403版_12)组合博弈入门

2014-08-25

(HDUACM201303版_15)筛选法及预处理(附菜鸟的23个经典错误)

杭电ACM课件2014版之(HDUACM201303版_15)筛选法及预处理(附菜鸟的23个经典错误)

2014-08-25

(HDUACM2010版_13)二分匹配及其应用

杭电ACM课件2014版之(HDUACM2010版_13)二分匹配及其应用

2014-08-23

(HDUACM201403版_11)特殊的数

杭电ACM课件2014版之(HDUACM201403版_11)特殊的数

2014-08-23

(HDUACM201403版_10)搜索入门

杭电ACM课件2014版之HDUACM201403版_10)搜索入门

2014-08-23

(HDUACM201403版_08)计算几何基础

杭电ACM课件2014版之 (HDUACM201403版_08)计算几何基础

2014-08-23

(HDUACM201303版_07)背包专题

杭电ACM课件2014版之 (HDUACM201303版_07)背包专题

2014-08-23

(HDUACM201403版_06)并查集(最小生成树)

杭电ACM课件2014版之 (HDUACM201403版_06)并查集(最小生成树)

2014-08-23

(HDUACM201403版_05)动态规划

杭电ACM课件2014版之 (HDUACM201403版_05)动态规划

2014-08-23

(HDUACM201403版_04)递推求解

杭电ACM课件2014版之 (HDUACM201403版_04)递推求解

2014-08-23

(HDUACM201403版_03)贪心算法

杭电ACM课件2014版之 (HDUACM201403版_03)贪心算法

2014-08-23

(HDUACM201403版_02)简单数学题

杭电ACM课件2014版之 (HDUACM201403版_02)简单数学题

2014-08-23

(HDUACM201303版_01)初识ACM 高清PPT

杭电的ACM课件2014版之(HDUACM201303版_01)初识ACM

2014-08-23

空空如也

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

TA关注的人

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