一模 (3) day1
第一题:
题目大意:给出m个小于n的数,求出出现次数大于m div 2 的数。 1<=n<=2^31 1<=m<=10000
解题过程:
1.看到m的数据范围比较小,直接 sort 排个序,统计每个数出现的次数 即可。
第二题:
题目大意:给出 分数a/b(0<=a<b<=1000) ,要求将其 拆成尽可能少 的分子为1的分数 之和,并且要求相同长度的 最大的分母尽可能小。
解题过程:
1.这题是黑书上讲ID—DFS的例子,直接套用,因为没法确定搜索的深度,所以必须人为定一个边界。对于分数的处理,直接通分+约分即可。直接用double除出来是不行的。
2.几个减枝:
剪枝A:首先先确定一个顺序,即搜索的时候按分母从小到大来搜,不能从大到小。。因为没法确定最大的那个 可以大到多少。
剪枝B:最后一个分数是不要枚举的,剩下待拆分的值就是最后一个分数,因此只要检查它的分母是不是比上一个分母pre大,并且分子是否为1。
剪枝C: 枚举当前的分母x的时候,会有一个上下界,首先要比上一个分母pre大(x>pre),其次这个分数不能比当前剩下待拆分的值(a/b)大,即 1/x < a/b --> x>b/a
最后如果当前还能拆dep个分数,由于这个分数必定比剩下的那些要大,所以 dep/x > a/b --> x < (b*dep)/a;
3.第一次写的时候感觉要最大的分母尽可能小,那么只要前面的分母大一些就好,所以枚举分母的之后从大到小,搜到第一个答案就exit,但是这样是错误的。因为要求每个分数的分子必须是1,虽然前面的分母比较大,但是可能最后一个分数的分子不是1.
第三题:
一个美国旅行代理商经常被要求去估计开车从一个城市旅行至另一个城市的最小费用。他有一个在通常路线上的大多数加油站的列表。列表包括了所有加油站的位置及当前每加仑汽油的价格。为了简化估计费用的过程,代理商使用了以下的简化汽车驾驶员行为的规则:
● 除非汽车无法用油箱里的汽油达到下一个加油站(如果有的话)或目的地,在油箱里还有不少
于最大容量一半的汽油时,驾驶员从不在加油站停下来。
● 在每一个停下的加油站,驾驶员总是将油加满。
● 在一个加油站停下之后,驾驶员将为旅程在快餐和糖果上花去 2.00 元。
● 在驶向加油站或目的地时,驾驶员不需要超过必须量的汽油。不需要“安全余量”。
● 驾驶员开始旅行时油箱总是满的。
● 每个加油站付款时四舍五入到分(1 元等于 100 分)。
你必须写一个程序以估计驾驶员在旅程上至少要为汽油和食品付多少钱。
解题过程:
1.感觉和NOIP的一道叫旅行家的预算的题有点像,那题是贪心,于是这题也果断贪心。题解貌似是动归,但是感觉不太对劲,题解里用一维的状态明显是不够的,还是贪心靠谱。
2.贪心策略这题比旅行家的预算要简单的多,因为只有当汽车到了某一个加油站,并且油量不足一半的时候,才有决策,其他都是模拟。对于这种情况,只要看不加油能到达的加油站中最便宜的那个,开过去,如果最便宜的还不如当前加油站便宜,那么在当前这里加。
3.用了2中的贪心策略还是WA了一个点,原因是当前在一个加油站,如果加满油可以直接到终点,且花费是cost1,但是它现在的油量少于一半,且后面还有更便宜的能到达到的加油站,那么按照原来的贪心,就会走到后面那个加油站,然后加满油,开到终点。 因为每次都是加满油,所以这样开到终点还有很多油,就会有浪费。。 所以还要维护cost1,最后再和原来贪心得到的ans 作比较,取小的 作为答案。
一模 (3) day1的更多相关文章
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 一模 (1) day1
第一题:(水题) 题目大意:求出n个 X% (X是小于等于2位的整数) 的乘积,去掉末尾的0: 解题过程: 1.直接 把整数乘好,然后确定小数点的位置,去掉多余的0 输出即可. 第二题:(搜索题) ...
- 二模 (15)day1
第一题: 题目大意: 有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个. 解题过程: 1.这题是刘汝佳<<训练指南>>上的一道经 ...
- 二模 (13)day1
第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正 ...
- 二模 (12) day1
第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...
- 二模 (11) day1
第一题: 题目大意:用邻接矩阵给出一棵树(边权非负)上N个节点相互之间的最短路距离,求这棵树所有边权的和. 解题过程: 1.暂时还没想出来,待AC. 第二题: 题目大意:给出一些单词,然后建立Trie ...
- 二模 (9)day1
第一题: 题目大意: 给出一个n位01串,要么不动它,要么把它删掉一个字符,要么插入一个字符(0或1),要么把一个1变成0,.使得有1的位置号的总和是n+1的倍数,或者是0. 解题过程: 1.直接枚举 ...
- 二模 (10)day1
第一题: 题目描述: 一个阅览室每天都要接待大批读者.阅览室开门时间是0,关门时间是T.每位读者的到达时间都不一样,并且想要阅读的刊物不超过5本.每位读者心里对自己想看的刊物都有一个排位,到达之后他会 ...
- 二模 (8) day1
第一题: 题目大意: 梦幻城市每年为全市高中生兴办一次运动会.为促使各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数皆相同.为增加比赛的竞争性,希 ...
- 二模 (7) day1
第一题: 题目大意: 给出数轴上N棵树的坐标和高度,如果两棵树之间的距离小于其中一颗树的高度,那么就有树会被挡住.因此要把一些树砍矮一点.求砍树的总高度最小值. N<=100000; 解题过程: ...
随机推荐
- Java编程思想学习笔记_3(继承,内部类)
一.继承与清理 如果某个类需要去清理自身的资源,那么必须用心为其创建回收垃圾的方法,而如果此类有导出的子类,那么必须在导出类中覆盖回收的方法,当覆盖被继承类的回收垃圾的方法的时候,需要注意销毁的顺序应 ...
- 浅谈 MVP in Android
一.概述 对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等.本篇博文仅是为了做下记录,提出一些自己的看法,和帮 ...
- HTML标签的默认样式
body 有默认的内外边距(margin:0;padding:0); p 有默认的外边距(margin:0;)
- 在Linux下运行C语言程序
市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图).CentOS.Deepin(深度Linux).本教 ...
- IE和Firefox的Javascript兼容性总结
长久以来JavaScript兼容性一直是Web开发者的一个主要问题.在正式规范.事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬.为此,主要从以下几方面差异总结IE和Firefox的Javas ...
- 【matlab】读写文件
save('pqfile.mat','M'); ('E:\我的坚果云\pqfile.mat','M'); 其他: http://blog.csdn.net/iqizheng/article/detai ...
- mac 下基于firebreath 开发多浏览器支持的浏览器插件
mac 下基于firebreath 开发多浏览器支持的浏览器插件 首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多 一. 关于 firebreath http://www.fir ...
- linux笔记:linux常用命令-权限管理命令
一个文件的权限只有root和所有者可以更改. 权限管理命令:chmod(改变文件或目录的权限) 权限的数字表示: 用权限加减的方式改变权限(u代表所有者,g代表所属组,o代表其他人,a代表所有人): ...
- java.lang.ClassNotFoundException: org.apache.http.util.Args
java.lang.ClassNotFoundException: org.apache.http.util.Args at org.apache.catalina.loader.WebappClas ...
- 阮一峰:RSA算法原理(一)
今天看到一篇好文章,关于加密算法,收藏了觉得不过瘾,还是自己贴一遍,也能加深一下印象. 原文链接:http://www.ruanyifeng.com/blog/2013/06/rsa_algorith ...