自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ramay7

https://ramay7.github.io/

  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 学习技能表

Good Good Study, Day Day Up.

2016-08-10 15:32:01 885

原创 HDU 3709 Balanced Number(数位dp)

题目链接: HDU 3709 Balanced Number 题意: 把一个数字都某一位看成一个支点,左右的权值和是各个位上的数字到支点的距离乘积之和。如果存在某个支点使得左右权值和相等,这个数字就称为Balanced Number。给定区间[L,R][L,R],求Balanced Number的数字个数。 数据范围:0≤L≤R≤10180\leq L\leq R \leq 10^{18}

2016-08-31 00:52:26 438

原创 2014 GCJ Round 1B New Lottery Game(数位dp,x小于等于A,y小于等于B,并且x&y值小于等于K的数字个数)

题目链接: 2014 GCJ Round 1B New Lottery Game 题意: 求x≤A,y≤Bx\leq A,y\leq B,并且xx&yy值小于等于KK的数字个数。 数据范围:A,B,K≤109A,B,K\leq 10^9 分析: 官方题解在这里:Here。通篇读下来很有意思,对于理解数位dp很有帮助。一般的数位dp我们在dfs的时候只记录一个limitlimit表示是否达

2016-08-31 00:41:20 589

原创 POJ 3252 Round Numbers(数位dp,区间中二进制表示时0的个数大于等于1的个数的数字的个数)

题目链接: POJ 3252 Round Numbers 题意: 给一个区间[a,b][a,b]求区间中二进制表示时0的个数大于等于1的个数的数字的个数。 数据范围:a≤b≤2∗109a\leq b\leq 2*10^{9} 分析: 数位dp。 做区间减法后,将区间上限表示成二进制形式,dfs处理。记录下当前已有0和1的个数即可。注意剪枝。#include <stdio.h>#inc

2016-08-31 00:26:00 654

原创 BZOJ 1799 self 同类分布(数位dp,区间各位数字和能整除原数的数字个数)

题目链接: BZOJ 1799 self 同类分布 题意: 给出aa,bb,求出[a,b][a,b]中各位数字之和能整除原数的数的个数。 数据范围:a≤b≤1018a\leq b\leq 10^{18} 分析: 暴力枚举所有可能的数字和即可。 需要判断余数等于0并且所有数字和等于设定的sum。#include <stdio.h>#include <string.h>#include

2016-08-31 00:16:22 1211

原创 Codeforces Round #369 (Div2) ABCDE

比赛链接:Codeforces Round 369 (Div2) A: 暴力B: 暴力C: dp,可以暴力,也可以不暴力D: 拓扑排序,dfs,方案计数E: 数学,待续A. Bus to Udayland题意: 给一个nn排的公交车座位,每排有四个位置,左右各两个,中间是过道,空的座位用O表示,非空的座位用X表示。要从中找到相邻的两个空的座位并输出。数据范围:n≤1000n\leq 1000分析

2016-08-30 14:31:36 599

原创 Codeforces 55D Beautiful Numbers(数位dp,能被自己各个位上数字整除的数字个数)

题目链接: Codeforces 55D Beautiful Numbers 题意: 定义:一个数如果能够被它所有位上非零数字整除那么这个数就是Beautiful Numbers。 给一个区间[L,R][L,R],求这个区间Beautiful Numbers的个数。 数据范围:1≤L≤R≤9∗10181\leq L\leq R\leq 9*10^{18} 分析: 这道题清新脱俗啊~

2016-08-29 18:48:03 1414

原创 HDU 3555 Bomb(1-n含有“49”的数字个数)

题目链接: HDU 3555 Bomb 题意: 求1到n中含有“49”序列的数字的个数。491,149都是含有“49”序列但是“419”不是的。 数据范围:n\leq 2^{63} -1 分析: 数位dp。差不多也是模版题了。 从高位到低位dfs记录前一位数字,并且记录当前是否已出现“49”序列,最后判断下状态,记忆化搜索。#include <stdio.h>#include <st

2016-08-29 18:08:39 857

原创 Codeforces Round #368 (Div 2) A,B,C,D,E

比赛题目链接A.Brain’s Photos给一个$n*m$的方格,判断是黑白色还是彩色:只要含有字母’C’,’M’,’Y’中任意一个就认为是彩色的。 暴力判断,时间复杂度:$O(n*m)$。#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include

2016-08-22 13:31:35 476

原创 HDU 4756 Install Air Conditioning(树形dp+MST)

题目链接: HDU 4756 Install Air Conditioning 题意: 给nn个点的二维坐标,要将这nn个点连通,边权就是两点距离,其中00号节点是根,可能会破坏除根之外的任意两点的边(不能建边),要求将这nn个点连通的最坏代价? 数据范围:n≤1000n\leq 1000 分析: 上面的黑体字是因为原题中有这句话: But Tom200 is informe

2016-08-18 00:25:12 525

原创 HDU 4126 Genghis Khan the Conqueror(树形dp,MST,破坏原有最小生成树边后的最小生成树代价)

题目链接: HDU 4126 Genghis Khan the Conqueror 题意: 给nn个点和mm条无向边,需要将这nn个点连通。但是有QQ次破坏,每次破坏会把mm条边中的某条边的权值增大,求QQ次破坏每次将nn个点连通的代价的期望?(每次破坏后的最小生成树的代价累加除以QQ) 数据范围:n≤3000,Q≤104,单边权≤107,总边权≤109n\leq 3000,Q\leq

2016-08-18 00:14:25 962

原创 UVALive 7003 A Balance Game on Trees(树形dp)

题目链接: UVLive 7003 A Balance Game on Trees 题意: 给一个nn个节点和每个节点的儿子的有根树,根为1,初始时树上每个节点的颜色都为白色,现在要将树上的一些节点的颜色染为黑色使得每个白色节点的周围(直接相连的边的另一端)恰好有KK个黑色节点,求最多可以保留多少个白色节点? 数据范围:n≤100,K≤10n\leq 100,K\leq 10 分析:

2016-08-17 16:29:40 578

原创 HDU 5534 Partial Tree(dp优化)

题目链接: HDU 5534 Partial Tree 题意: 有一棵树有nn个节点,对于度为dd的节点对树的价值贡献为f(d)f(d),给出f(1),f(2),⋯,f(n−1)f(1),f(2),\cdots ,f(n-1),(边是任意构造的)。求树的最大价值? 数据范围:n≤2015n\leq 2015 分析: 一个nn个节点的树会有n−1n-1条边,每条边可以贡献两个度,所

2016-08-17 00:41:41 463

原创 Codeforces 337 D Book of Evil(树形dp,两遍dfs)

题目链接: Codeforces 337 D Book of Evil 题意: 给一个nn个节点和n−1n-1条边的树,有mm个给定的点,求这nn个点中到这mm个点的距离都小于等于dd的点的个数?树上两点的距离就是树上两点间路径的边的数量。 数据范围:1≤m≤n≤105,0≤d≤n−11\leq m \leq n \leq 10^5,0\leq d \leq n-1。 分析: 需

2016-08-16 11:52:36 555

原创 HDU 4616 Game(树形dp,两遍dfs)

题目链接: HDU 4616 Game 题意: 给一个nn个节点和n−1n-1条边的树。每个节点代表一个房间,每个房间都放有一个价值为正的礼物,有的房间有陷阱,有的房间没陷阱,最多可以经过CC个陷阱(第CC个陷阱时就应该停止),可以从任意的房间开始行走,每个房间只能走一次,求获得的礼物的最大价值和? 数据范围:n≤5∗104,1≤C≤3n\leq 5*10^{4},1\leq C \le

2016-08-15 21:40:16 504

原创 HDU 4714 Tree2cycle(树形dp)

题目链接; HDU 4714 Tree2cycle 题意: 给一个nn个节点和n−1n-1条边的树。要求把这棵树变成一个环(所有的点都在环上),每破坏一条边和新建一条边的代价都是1,求最小的代价。 数据范围:n≤106n\leq 10^6 分析: 我们来考虑保留边的最大数量,记为leftleft。首先原来有n−1n-1条边,保留了leftleft条边,那就意味着要破坏n−1−le

2016-08-15 21:28:26 548

原创 SPOJ Con-Junctions(树形dp,方案计数)

题目链接: SPOJ Con-Junctions 题意: 给一个nn个节点和n−1n-1条边的树,要用灯点亮所有的边,每条边至少要有一个端点放盏灯就点亮了这条边,求最少的放灯数量和最少放灯数量时的方案数。方案数结果模1000710007输出。 数据范围:n≤100010n\leq 100010 分析: 最少放灯数量很好求。 用dp[u][0]dp[u][0]表示点亮uu子树的

2016-08-15 17:23:58 495

原创 HDU 2586 How far away?(LCA)

题目链接; HDU 2586 How far away? 题意: 和POJ 1986 Distance Queries一样的,包括数据范围。 分析: 这里建单向边就能过了。。。#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>using namespace std;typede

2016-08-13 14:12:46 370

原创 POJ 1986 Distance Queries(查询两点距离,LCA)

题目链接: POJ 1986 Distance Queries 题意: 给一个连通的nn个节点的树,有QQ次查询,每次输出两点间距离。 数据范围:n≤40000n\leq 40000 分析: 先用基于RMQ算法的求LCA的方法求出LCA。记dis[i]dis[i]为根节点到ii节点的距离,那么uu和vv之间的距离就是: Ans=dis[u]+dis[v]−2∗dis[LCA(

2016-08-13 13:35:01 712

原创 POJ 1470 Cloest Common Ancestor(用Tarjan查询LCA)

题目链接; POJ 1470 Cloest Common Ancestor 题意: 给一个nn个节点,n−1n-1条边的树,有多组查询两个节点的最近公共最先,按编号从小到大输出至少作为一次查询的最近公共祖先的节点编号和相应的次数。 数据范围:n≤900n\leq 900 分析: TarjanTarjan离线处理。当然使用基于RMQRMQ的在线处理方式也应该可以 。 算法

2016-08-13 11:07:58 433

原创 POJ 1330 Nearest Common Ancestors(LCA,在线处理三种方式)

题目链接: POJ 1330 Nearest Common Ancestors 题意: 给一个nn点和n−1n-1条边的树,第nn行是要查询的两个节点的最近公共祖先,输出要查询的最近公共祖先。 数据范围:n≤104n\leq 10^{4} 分析: 可以学习《挑战程序设计竞赛》P328−P331P_{328}-P_{331}暴力求解记节点vv到根的深度为depth[v]depth[

2016-08-13 00:33:48 439

原创 POJ 1655 Balancing Act(简单树型dp)

题目链接: POJ 1655 Balancing Act 题意: 给一个nn个结点和n−1n-1条无向边的树,定义树中每个结点的平衡值是删掉这个结点形成若干子树的所有子树结点数量最大值。 求所有结点中平衡值的最小值。 数据范围:n≤2∗104n\leq 2*10^{4} 分析: 比较简单的树型dp。 对每个节点记录以它为根的子树的结点数量,dfsdfs更新即可,再判断下父亲结点之上的

2016-08-12 00:17:57 395

原创 HDU 4514 湫湫系列故事——设计风景线(并查集+树的直径)

题目链接: HDU 4514 湫湫系列故事——设计风景线 题意: nn个点和mm条无向边。先判环,无环的话输出最长直径。 数据范围:n≤105,m≤106n\leq 10^{5},m\leq 10^{6} 分析: 并查集判环,树的直径两遍dfsdfs即可。 用C++交AC,G++就MLE,o(╯□╰)o//#pragma comment(linker,"/STACK:102400000

2016-08-11 23:52:02 477

原创 HDU 3486 Interviewe(RMQ)

题目链接: HDU 3486 Interviewe 题意: 要求从nn个人中,选择最少的人使得这些人的权值大于limitlimit,选择的人必须是连续的长度相同的区间中选择的,而且最后的不够区间长度的剩余人数舍弃。例如在7个人中选择2个人,在[1,3]和[4,6][1,3]和[4,6]各选1个人,然后第七个人舍弃。 数据范围:n≤20000n\leq 20000 分析: RMQ.

2016-08-11 11:19:59 460

原创 HDU 3183 A Magic Lamp(贪心,删掉m个数字使剩下的数字字符串最小)

题目链接: HDU 3183 A Magic Lamp 题意: 给一个只含数字的字符串ss,从中正好删掉mm个数字,求剩下的最小的数字字符串(不含前导0)?无解输出-1. 数据范围:|s|≤1000|s|\leq 1000 分析: 贪心。 每次从前往后扫到第一个位置ii,满足s[i]>s[i+1]s[i] > s[i+1],然后删除ii,相当于将后面的字母前移一个位置,直到删

2016-08-11 11:05:31 800

原创 HDU 4213 Bob’s Race(树形dp+单调队列)

题目链接: HDU 4213 Bob’s Race 题意: 给出一个nn个节点的树,先对每个点求最远可到的距离,然后有mm询问,每次询问找一个最长的区间使得区间的距离最值差小于等于limitlimit,输出区间长度。 数据范围:n≤5∗104,m≤500,单条边权:≤5000,limit≤107n\leq 5*10^4,m\leq 500,单条边权:\leq 5000,limit\leq

2016-08-08 22:49:10 493

原创 HDU 4003 Find Metal Mineral(树形dp,从根节点出发k个机器人遍历所有边的最小代价和)

题目链接; HDU 4003 Find Metal Mineral 题意: 给一个nn个节点和n−1n-1条边的树,每条边有权值,在给定的根节点rootroot有KK个机器人,要用这KK个机器人从根节点出发遍历所有的边,求最小代价?代价就是经过的所有边的权值和,机器人不必最终都回到根节点,机器人也可以重复走一些边。 数据范围:n≤104,k≤10n\leq 10 ^4,k\leq 10

2016-08-08 20:43:13 1039

原创 HDU 5661 Claris and XOR(异或,贪心)

题目链接: HDU 5661 Claris and XOR 题意: 给定区间[a,b][a,b]和[c,d][c,d],求x∈[a,b]x\in [a,b],y∈[c,d]y\in [c,d]使得x异或yx异或y的值最大?输出最大的值。 数据范围:a≤b≤1018,c≤d≤1018a\leq b \leq 10^{18},c\leq d \leq 10^{18}。 分析: 从后往

2016-08-08 19:55:17 845 2

原创 HDU 5779 Tower Defence(dp+组合数)

题目链接就: Tower Defence 题意: 小白最近痴迷于玩Tower Defence。他想要自己制作一张地图。地图是一张有n个点的无向图(图可以不连通,没有重边和自环),所 有边的长度都为1,满足从1号点到其他任意一个点的最短路都不等于k.小白想知道这样的图有多少个。如果两个顶点不连通,那么它 们之间的距离为无穷大。答案对109+710^9+7取模。 数据范围:n≤60,k≤6

2016-08-06 18:52:15 463

原创 POJ 2152 Fire(依赖型树形dp)

题目链接: POJ 2152 Fire 题意: 给一个nn个节点和n−1n-1条边的树,边权代表距离,要在这些点中选择一些点建立消防站,使得每个点都会被消防站覆盖到。每个点有两个属性:cost[i]cost[i]表示在这个点建立消防站的代价,limit[i]limit[i]表示当某个消防站离ii的距离不超过limit[i]limit[i]时,这个点就可以认为被该消防站覆盖,求使得nn个点都被

2016-08-06 14:33:38 490

原创 SPOJ Two Paths(树形dp,最大不相交路径长度乘积)

题目链接: SPOJ Two Paths 题意: 给一个nn个节点和n−1n-1条边的树,求两条不相交(无公共节点)的路径长度乘积最大值?(路径长度就是路径上边的数量) 数据范围:n≤105n\leq 10^5 分析: 这道题和Codeforces 633 F The Chocolate Spree是其实一样的。本来以为会好些点,实际上还是写了好久。。。。主要是细节太多了,有的地

2016-08-03 14:06:42 3077

原创 Codeforces 633 F The Chocolate Spree(树形dp,两条不相交链节点权值和最大)

题目链接: Codeforces 633 F The Chocolate Spree 题意: 给一个nn个节点的树和n−1n-1条边,每个点有一个权值,从树中选择两条不相交的链(无公共节点)使得两条链上节点权值和最大? 数据范围:n≤105,value[i]≤109n\leq 10 ^ 5,value[i] \leq 10 ^ 9 分析: 参考博客:逍遥丶綦 先dfs

2016-08-03 13:49:59 2261

原创 HDU 4313 Matrix(并查集/破坏边使得k个点两两不连通的最少代价)

题目链接: HDU 4313 Matrix 题意: 有nn个点和n−1n-1条无向边,需要破坏一些边使得给定的kk个点两两不连通,求最少的破坏代价? 数据范围:n≤105n \leq 10^5 分析;#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <climi

2016-08-03 13:14:09 577

原创 数据生成 -- 树

生成一个nn个节点的树和n−1n-1条无向边(无边权),生成数据时需要注意无重边,无环,和所有节点编号都要在边的信息中出现。我是把最后一条边设为(n−1,n)(n-1,n),并且在之前保证这两个节点不连通。这个似乎破坏了一些随机性:)#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#includ

2016-08-03 11:46:32 434

ACM--状态压缩

ACM--状态压缩(天津大学·周伟)

2016-09-15

状态压缩by天津大学·周伟

2016-09-13

空空如也

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

TA关注的人

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