- 博客(39)
- 收藏
- 关注
原创 离线查询区间颜色种数 bzoj1878 HH的项链 bzoj1293
对于每一种颜色记录下次出现该颜色的位置next 将区间按照左界升序排序 先将每种颜色的第一次出现点权值赋值为1(其余为0) 扫过1-n 若i为区间左界ans=sum(l,r) 若i权值为1 next【i】=1 i=0 区间和用树状数组(我不会就用的线段树) 此题相当于我们维护了从 i 开始每种颜色的第一次出现位置 bzoj1293 求包
2015-10-23 19:39:11 354
原创 BZOJ1150 数据备份
首先一定取的每一段都连接着相邻的楼 我们可以每次取最小的一段用堆维护 但是这样发现过不了样例,因为一栋楼只能被连接一次 考虑样例 转化为2 1 2 6中取俩个但不能相邻 在取1的时候可以加入2+2-1=3 以后取3表示不取1取两边 重点是边境 边界同样要考虑 比如1 2 3 4 取完1以后加入1显然是有问题的(少加了个数)
2015-10-22 14:40:19 371
原创 NOI2008 志愿者招募
Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要Ai 个人。 布布通过了解得知,一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作到第Ti 天,招募费用是每人Ci 元。新官上任三把火,为了出色地完成自己的工作
2015-10-19 20:43:11 565
原创 bzoj1096 仓库建设
Description L公司有N个工厂,由高到底分布在一座山上。如图所示,工厂1在山顶,工厂N在山脚。 由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L先生决定紧急在某些工厂建立一些仓库以免产品被淋坏。由于地形的不同,在不同工厂建立仓库的费用可能是不同的。第i个工厂目前已
2015-10-19 18:11:14 301
原创 关于DP的单调队列优化和斜率优化区别
单调队列优化: dp[i]=dp[j]+f[i] i-j有范围 队列一维维护i 的位置(i-j有范围) 另一维维护dp【i】(最值) 注意有范围啊 i-j 有范围 斜率优化: dp[i]=dp[j]+f[i]*f[j] 说白了 k 可以更新 i 但不一定能更新 j 因为与i j 本身有关 遇到O
2015-10-16 19:02:51 266
转载 NIM 博弈游戏
桌面上有三行硬币,每一行中分别有a1、a2、a3个硬币,其中a1、a2、a3是可以任意指定的正整数。两个人轮流拿走硬币,每一次只能从某一行中拿走任意多个硬币,谁拿走最后一枚硬币谁就赢了。 比如说a1=1,a2=2,a3=3的情况吧,这时如果轮到我拿了,我可以从第三行拿走2枚硬币,或者可以把第三行的三枚硬币全都拿走,等等;但是我不能同时从第一行和第三行里各拿走1枚硬币。这个简单的情况,可以枚举
2015-10-14 19:33:21 304
原创 superoj925 hello
题意 30分 强行枚举每一位给A或B O(2^(2n)) 100分 dp 因为分配每一位,在记录下前几位给A,前几位给B时的最优解,是不受后面元素影响的 所以可以DP dp【i】【j】表示i位给A j位给B (总位数i+j)的最优解 dp[i][j]=max(dp[i-1][j]+a[i+j]*js[i],dp[i][j-1]+a[i+j]*js[j]);
2015-10-14 17:23:08 239
转载 BZOJ水题
RunID User Problem Result Memory Time Code_Length 695765 Eolv 1000 Accepted 804 kb 0 ms 118 B 739478 Eolv 2463 Accepted 804 kb 0 ms 134 B 696662 Eolv 1968 Accepted
2015-10-13 21:58:25 473
转载 bzoj1003 物流运输trans
题目大意:给定一个无向图,运输n天,其中有些天有些点不能走,更换路线代价为k,求代价总和 首先令cost[i][j]为第i天到第j天都走同一路线的最小花销 这个用SPFA处理 然后就是动规的问题了 令f[i]为1~i天的最小花销 则f[i]=min{ f[j]+cost[j+1][i]+k } ( 0 注意m和n别写反 乘天数之前要特判是不是正无穷 我自己的代码
2015-10-13 20:48:48 383
转载 BZOJ1045 糖果传递
转载~~ 环形纸牌分配问题 前段时间TYVJ的某场模拟赛好似有这个题、、模型就是环形的均分纸牌、、 这个题目其实主要是数学分析啦、、 从线性的均分纸牌出发、令a[i]为纸牌树,k为每堆的目标牌数、 记p[i]=k-a[i]+p[i-1] 含义就是第i堆需要从后一堆拿的纸牌、 那么对p数组求和就是答案了、 对这个环形的、我们这样考虑、 记sum[i]=
2015-10-13 17:36:45 272
原创 NOI2014 动物园
KMP补充: next【i】表示 1--i 的最长后缀等于前缀 next【next【i】】 表示 1--i 的次长后缀等于前缀 题解:每个i 枚举所有next【i】 next【next【i】】。。。。。求小于长度 i/2 的个数 强行枚举next 50分 因为next【i】一定小于 i 所以建next【i】为 i 的爸爸 ,形成一个有根树,求每个节点的祖先有多少个小于
2015-10-13 17:27:05 366
原创 superoj725 工作分配
DP斜率优化 一行代码一行泪啊 不等式正负。。。 /* WA N次原因: 1 不等式移向是没注意正负(!!!!!负数变号啊) 2 除法除数不能为0。。。 */ /* WA N次原因: 1 不等式移向是没注意正负(!!!!!负数变号啊) 2 除法除数不能为0。。。 */ #include #include #include #include #
2015-10-13 17:23:54 452
转载 DP斜率优化
转载~~ 我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i]的形式,其中f[j]中保存了只与j相关的量。这样的DP方程我们可以用单调队列进行优化,从而使得O(n^2)的复杂度降到O(n)。 可是并不是所有的方程都可以转化成上面的形式,举个例子:dp[i]=dp[j]+(x[i]-x[j])*(x[i]-x[j])。如果把右边的乘法化开的话,会得到x[i]*x[
2015-10-12 19:49:28 335
原创 superoj922 树形图计数
给边,点 求所有(包含所有点)的树的方案数 n 分析: 直接混dfs,bfs不好实现,因为是树,所以只要找每个节点的爸爸就行了。 枚举root,然后枚举每个节点的爸爸。 因为是树,所有爸爸不能有环,要维护。 我的错误方法: 直接模拟维护,记录一个点的所有儿子,连爸爸时把儿子传个爸爸。 错因:传给爸爸时我只传了一层,俩层的祖先没有收到,仍会成
2015-10-12 17:30:37 773
原创 superoj921 编译优化
分析: 此题为一个环,告诉你环上的权值,求最大选择和; 选择要求:选了A,与A相邻的俩个元素就不能选。 数据 60% n=5000 100% n=200000 我65分dp 60% dp dp[i][j]=max(dp[i-1][j],dp[i-2][j-1]+a[i]); 再多旋转几圈防止1和n冲突 复
2015-10-12 16:46:46 313
原创 noi oj7627 鸡蛋的硬度
dp题 因为每次扔鸡蛋都有俩中情况:碎 不碎 碎了 就要搜索更矮的高度和少一个鸡蛋 不碎 搜索更高的高度,鸡蛋数不变 dp方程 dp[j][i]=min(dp[j][i],max(dp[k-1][i-1],dp[j-k][i])+1); 错误方程:dp[j][i]=min(dp[j][i],max(dp[k][i-1],dp[j-k][i]+1)); 因为k点已经搜过了 要从
2015-10-09 14:52:44 1192
原创 中国剩余定理
x=a1 (mod m1) 模数m互质 M=m1*m2*……*m(n) Mi=M/mi ti为Mi在模mi下的逆元(Mi*ti=1 mod mi) x=sum(ai * ti *Mi) i=1--n x=x mod M 此情况M内解数唯一 模数m不互质 合并方程 以i=1,2为例 m1*k1=a2-a1 (mod m2) 解出k1的最小非负整数解 d=g
2015-10-09 10:39:27 296
原创 逆元简析
定义 A*B=1 (MOD P) B^(-1)为逆元 用处 模意义下的除法 模意义下的加减乘法都可以先模(减法注意是否为负 为负加P) 除法:A=(C/B)mod p 即 A=C*(B^-1) MOD P 求法 扩展欧几里得(p随意)ax+by=c 即BA+kP=1 求B 快速幂(p为质数 因为费马小定理:a^(p
2015-10-09 10:10:53 377
原创 superoj495 不要62(未完成)
题目背景 HDU2089 题目描述 杭州人称那些傻乎乎粘嗒嗒的人为 62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有 4 或 62 的号码。例如:62315 73418 88914 都属于不吉利号码。但是,6
2015-10-08 22:56:00 291
原创 noi2014 起床困难综合症(未完成)
分析: 对于每个2进制位的数字经过处理得到的ans都是确定的 于是我们可以从高位开始,优先ans max和选0 进行数位DP 代码暂无。。。
2015-10-08 22:48:48 365
原创 superoj779 柠檬的密码
题目描述 Lemon 觉得他需要一个复杂的密码来保证他的帐号的安全。他经过多日思考,决定使用一个长度为奇数的回文串来作为他的密码。 但是这个回文串太长了,Lemon 记不住,于是 Lemon 决定把它记在本子上。当然直接把密码明文记录实在太愚蠢了,于是 Lemon 决定在记录时加入一些无意义的字符以保证密码的安全。 具体来说,假设 Lemon 的密码串是 S ,Lemon 选择了一个不超
2015-10-08 22:11:42 487
原创 superoj755 魔棒
题目描述 有一个英雄,初始生命值是 hp(生命值无上限),在接下来的 n 秒内,每秒会受到一次伤害,第 i 秒受到的伤害值为 a[i]。 这个英雄有一个道具“魔杖”,魔杖的初始能量为 0 ,每受到一次伤害,积攒一点能量。在英雄受到伤害后,可以立即释放魔棒中的能量,回复 15*[能量点数] 的生命值,且魔棒的点数清零。释放能量有施法间隔 cd(cd是正整数),即相邻的两次释放的时间间隔至少有
2015-10-08 20:56:25 416
原创 superoj738 诸葛亮
题目: xpp 每天研究天文学研究哲学,对于人生又有一些我们完全无法理解的思考。 在某天无聊学术之后,xpp 打开了http://web.sanguosha.com,准备用他心爱的诸葛亮虐人。进入了八人身份局,作为一位主公,xpp 果断选了诸葛亮,用诸葛亮挑7人。 xpp 为什么喜欢诸葛亮这个武将呢?因为观星是个很牛逼的技能。 观星——回合开始阶段,你可以观看牌堆顶的X张牌(X为存活角色的
2015-10-08 20:27:05 437
原创 superoj520 圆排列
题目描述 有 N 个人顺时针围在一圆桌上开会,他们对身高很敏感。 因此决定想使得任意相邻的两人的身高差距最大值最小。如果答案不唯一,输出字典序最小的排列,指的是身高的排列。 输入格式 多组数据。 第一行:一个整数 T(1 每组测试数据格式如下: 第一行: 一个整数 N(3 第二行, 有个 N 整数, 第 i 个整数表示第i个人的身高 hi(1 输出格式
2015-10-08 20:09:30 405
原创 superoj441 餐巾计划
题目描述 一个餐厅在相继的 N 天里,每天需用的餐巾数不尽相同。假设第 i 天需要 ri 块餐巾(i=1,2,…,N) 。餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 n 天(n>m) ,其费用为s(s 每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗
2015-10-08 19:48:31 283
原创 noip提高组2014 飞扬的小鸟
DP 用可重复背包优化 代码较长 注意细节 #include #include #include #include #include #include #include #include #include using namespace std; int shang[10010]; int xia[10010]; int up[10010]; int down[10010]; int f[10
2015-10-08 19:39:37 368
原创 NOIP提高组2006 金明的预算方案
背包升级版 附带从属关系 因为从属关系很少 所以强行把儿子绑在爸爸上dp 故必须dp俩维 dp[局数][代价] 把儿子方案们放在同一局,由上一局转移,使其不能相互影响 #include #include #include #include #include #include #include #include using namespace std; int i,j,k,ans,s,n,
2015-10-08 19:22:20 505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人