2017.08.15【NOIP提高组】模拟赛B组
Summary
今天比赛很差很差,掉到谷底。第一题快排打错了,漏了递归,变成一个while循环。最后一题k忘记减一,答案一直是无穷大,所以没交。第三题没时间调DP就打了个递归,第二题状态想歪了。四道题有三道DP的,一道小码力的。DP可见很差,还要多学,多做。快排打到一半傻乎乎就没打了,样例数据又刚好都是对的,不会对拍。马上就要学一下啊!
Problem
T1 平台
题目大意
给你一堆平台,每个平台平行于x轴,距离x轴有个高度h。每个平台由两个柱子支撑,分别在离端点0.5个单位的位置。问柱子的长度和
想法
鉴于平台个数很小,平台的横坐标小,直接暴力即可。
先将平台高度从小到大排序,然后用bz数组,bz[i]表示横坐标为i时,上面最高的平台高度是多少,每次查找就行了。
因为有0.5这种小数的情况,所以可以将所有坐标乘以二。
T2 单足跳
题目大意
游戏在一行N个方块中进行,编号为1到N,一开始Alice在方块1中,第一次只能跳到方块2中,接下来每一次跳跃必须满足以下两个限制:
(1) 如果是向前跳(即跳到比现在编号大的方块),跳跃距离必须比上一次要大1;
(2) 如果是向后跳(即跳到比现在编号小的方块),跳跃距离必须跟上一次一样。
每个方块有个花费值,问从方块1到方块n的最小花费值。
想法
考试的时候我是这么设的
f[i,j]表示第i次到j这个位置的最小花费值,怎么转移都不对。大家也可以想一下,评论一下。
正解是这样的
设f[i,j]表示你花费i步走到j这个位置。
显然,我们两种方案,一种往前,一种往后
往前的情况:
我们会到达j-i这个位置,根据题目意思,同样是花费i步过去,所以这么转移f[i,j-i]=min{f[i,j-i],f[i,j]+a[j-i]}
当然,j一定符合范围
往后的情况:
我们会往后跳i+1位,即到达j+i+1这个位置,他是花费i+1步过去,故转移为f[i+1,j+i+1]=min{f[i+1,j+i+1,f[i,j]+a[j+i+1]}
题目很快就解决完毕了。
T3 生日聚餐
题目大意
晚餐由N种原料做成,每道菜所需每种原料的数量是一样的。
厨房里有一些原料,但不够,Alice还需要从旁边的超市中购买一些回来。超市里什么原料都有,每种原料都分大包装和小包装。Alice有M元钱,她想利用这M元钱购买原料使得能做出最多的菜。
想法
跟之前做过的一道题差不多,同样可以先求完全背包,然后枚举答案,二分答案也是可以的。
我们用f[i,j]表示第i种材料,用了j数量的最小价值
我们求完后需要维护一下f数组,因为可能刚好不能组成j数量的物品,但是用多点钱还是可以买到。例如你5块钱可以买到6块橡皮擦,但是你只需要5块,商店又不能分开买,你买5块橡皮擦,同样也是需要5块钱。
然后我们枚举(二分)答案,也就是做多少钱数,我们设这个数为i。
答案就是
显然这个是递增的,取个最大符合条件的值,对应的i就是答案
这就是二分求解的东西,故可以用二分
f数组的空间会炸,所以可以使用动态数组(可以在程序中根据需要定义数组大小)
下面是一维的定义方式(pascal),二维的只需要加多括号内容
var
a:array of (array of) longint;
begin
setlength(a,s,(s1))表示第一维下标开0~s-1大小,括号中,第二维表示下标开从0~s1-1大小
end.
T4 数学题
题目大意
给你一串数,让他们可以往里面加加号,使之等于一个数,问最少的加加号个数。
想法
我们可以想到动态规划。
设f[i,j]表示选到前i个数,和为j所加的最少加号个数是多少。
我们枚举i,j,k,如图标明位置
其中,我们要把k~i这些数弄成一个数,独立起来,也就是说,在k前面放一个加号。
显然,转移就是f[i,j+ans]=min{f[i,j+ans],f[k,j]},Ans就是k~i这些数组合成一个的那个新的数。
还有一种情况就不放加号
f[i,j*10+a[i]]=min{f[i,j*10+a[i]],f[i-1,j])。很显然,你这么做最多加4次,你就会被挂了,因为一直不放加号,数的大小可想而知。
到目前为止,时间复杂度是O(n³),显然你会炸的巴拉巴拉的
唯一可能优化的就是k,其实k枚举这么多是不必要的,关键还是0的问题
所以,我们对输入的字符串处理一下,最多只能有4个连续的0
时间复杂度:O(4n²)
2017.08.15【NOIP提高组】模拟赛B组的更多相关文章
- 2017.1.16【初中部 】普及组模拟赛C组总结
2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...
- NOIP2017提高组 模拟赛15(总结)
NOIP2017提高组 模拟赛15(总结) 第一题 讨厌整除的小明 [题目描述] 小明作为一个数学迷,总会出于数字的一些性质喜欢上某个数字,然而当他喜欢数字k的时候,却十分讨厌那些能够整除k而比k小的 ...
- 2018.12.30【NOIP提高组】模拟赛C组总结
2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...
- 2018.12.08【NOIP提高组】模拟B组总结(未完成)
2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...
- ZROI提高组模拟赛05总结
ZROI提高组模拟赛05总结 感觉是目前为止最简单的模拟赛了吧 但是依旧不尽人意... T1 有一半的人在30min前就A掉了 而我花了1h11min 就是一个简单的背包,我硬是转化了模型想了好久,生 ...
- NOIP2017提高组 模拟赛13(总结)
NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...
- NOIP2017提高组模拟赛 10 (总结)
NOIP2017提高组模拟赛 10 (总结) 第一题 机密信息 FJ有个很奇怪的习惯,他把他所有的机密信息都存放在一个叫机密盘的磁盘分区里,然而这个机密盘中却没有一个文件,那他是怎么存放信息呢?聪明的 ...
- NOIP2017提高组模拟赛 8(总结)
NOIP2017提高组模拟赛 8(总结) 第一题 路径 在二维坐标平面里有N个整数点,Bessie要访问这N个点.刚开始Bessie在点(0,0)处. 每一步,Bessie可以走到上.下.左.右四个点 ...
- NOIP2017提高组模拟赛 9 (总结)
NOIP2017提高组模拟赛 9 (总结) 第一题 星星 天空中有N(1≤N≤400)颗星,每颗星有一个唯一的坐标(x,y),(1≤x,y ≤N).请计算可以覆盖至少K(1≤K≤N)颗星的矩形的最小面 ...
- NOIP2017提高组模拟赛 7(总结)
NOIP2017提高组模拟赛 7(总结) 第一题 斯诺克 考虑这样一个斯诺克球台,它只有四个袋口,分别在四个角上(如下图所示).我们把所有桌子边界上的整数点作为击球点(除了4个袋口),在每个击球点我们 ...
随机推荐
- 51 nod 1212 无向图最小生成树(Kruckal算法/Prime算法图解)
1212 无向图最小生成树 N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树. 收起 输入 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量.(2 <= N < ...
- Git 分支 - 分支的新建与合并
转载自:https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB ...
- C# float与UInt16互转
//float拆分成两个UInt16 public static UInt16 FloatToTwoUInt16(float f) { byte[] bs = BitConvert.GetBytes( ...
- photoshop CC智能切图
网页设计在技术层面上,第一步是美工做出网页效果图,第二步就是网页前端进行网页切图.网页切图工具常用的有fireworks.PS,这里使用PS进行网页切图. 我们通过设计稿,得到我们想要的产出物(如.p ...
- bzoj3992
题解: 求模素数 p 原根的方法:对 p-1 进行素因子分解,记pi为p-1的第i个因子,若恒有a^((p-1)/pi) mod p ≠ 1 成立,则 a 就是 p 的原根.(对于合数求原根,只需把 ...
- alpha冲刺3/10
目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺3 团队部分 后敬甲(组长) 过去两天完成了哪些任务 文字描述 组织第一次团队编程 继续阅读小程序开发文档 接下来的 ...
- jmeter访问mysql数据库
jdbc:mysql://localhost:3306/jy?allowMultiQueries=true 如果想同时执行多条语句
- Hive| 压缩| 存储| 调优
Hadoop压缩配置 修改Hadoop集群具有Snappy压缩方式: 查看hadoop支持的压缩方式 [kris@hadoop101 datas]$ hadoop checknative 将编译好的支 ...
- day64 url用法以及django的路由系统
此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...
- win 10 slmgr.vbs -xpr 无法运行,被豆麦笔记打开解决方法
win 10 slmgr.vbs -xpr 无法运行,被豆麦笔记打开解决方法 删除这个豆麦笔记 如果之前已经在 控制面板 程序中卸载过,那么是找不到的,我们先运行 slmgr.vbs -xpr,这个时 ...