一模 (1) day2
第一题:(水题)
题目大意:就是给出扫雷的图,然后统计每个九宫格的雷的个数。
解题过程:
1.好久没做这样的水题了。直接模拟水过。。
第二题:
题目大意:给出一个长度小于1000的数k,要求一个尽可能小的数x,这个数的各个位的乘积为k;
解题过程:
1.想不到什么高级的算法,感觉就是考高精度除法,于是果断dfs爆搜,既然要求尽可能小的数,那么每次就从9到2一个一个试除,第一个找到的答案就是最后答案。这样20个点能过17个。
2.对比了标程,发现有2个剪枝:
首先如果上一次除的是 x,那么这一次 不必从9开始试除,因为比x大的因此 在之前肯定已经除掉了。
其次,如果当先枚举到能被x除尽,那么不必枚举比x小的那些数来除,因为这样也必定不比除x优。证明:假设 x能除尽当前的数,且存在y<x 能除尽当前的数,且之后能找到答案, 那么 除掉y之后,再去除的必定是x。 但是这样还不如 先除x在除y。而如果先除x找不到答案,那么先除y也一样找不到答案。
3.还是一道非常不错的题目,结合了贪心,搜索剪枝和高精度。从这题可以感受到,有的时候真的一个小小的优化可以让你的程序跑得快许多。
第三题:
题目大意:给出N个点M条边的无向图,要求一条从s到t的路径,使得 路径上 权值最大边的权值 除以 权值最小边的权值 的商最小, 结果输出这个商,如果是分数,用X/Y的形式表示,X和Y互质; N<=500,M<=5000
解题过程:
1.一开始想到的自然是 给边按权值排序,枚举最小值,二分最大值,用并查集判断联通,但是目测会超时。
2.然后就改成spfa:做两次spfa,分别从s,t出发 求出到每一个点的路径权值最大边的最小值,权值最小边的最大值,最后枚举中间点。结果 发现样例过不去,仔细想了想 其实这样的贪心是不对的。因为没法保证最大边最小和最小边最大 在同一条路径上。
3.看时间不够了,还是老老实实按1的方法来写,2个点超时。 看了下标程,发现有一个剪枝:就是如果枚举最小值的时候,上一个最小值和当前的相等,那么直接跳过。 加上这个减枝竟然神奇的0ms过了。。 而且标程的最大边没有二分,也是枚举的。时间复杂度O(M*(M+N*α(N))),按理说应该超时的。常数小,反而0ms。 我一开始的程序复杂度是大致 O(M*logM*M),确实慢了。 二分完全没有必要。
一模 (1) day2的更多相关文章
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
- 一模 (4) day2
第一题: 题目大意:二进制数 n mod m 的结果是多少? n 的长度(二进制数的位数)<=200 000: m 的长度(二进制数的位数)<=20. 解题过程: 1.我的算法是直接高 ...
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 二模 (15)day2
第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...
- 二模 (13)day2
第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...
- 又是一个二模02,不过day2
话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...
- 二模Day2题解
小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...
- 二模 (12)day2
第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...
- 二模 (11) day2
第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...
随机推荐
- create table xxx as select 与 create table xxx like
create table xxx ) | NO | PRI | NULL | auto_increment | | Name | varchar() | NO | ...
- Java JDBC连接数据库 Access连接数据库
1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),再通过java.lang.Class类的静态方法forName(String classN ...
- (一)MII/MDIO接口详解
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法. ...
- SQL数据库基本操作语句
一.数据库及数据库表定义 1.创建基本表 create table <表名> (<列名><数据类型>[列级完整性约束条件] ...
- iOS开发 创建单例模式
+ (id)defaultNSObjectName { static id defaultNSObjectName = nil; static BOOL token = NO; if (!token) ...
- easyui 查询
<fieldset> <legend>查询</legend> <table style="width: 100%;"> <tr ...
- Alpha
100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% ...
- switch-case 执行顺序
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 de ...
- javascript图片切换
JavaScript 图片滑动切换效果 作者:cloudgamer 时间: 2009-09-25 文档类型:原创 来自:蓝色理想 第 1 页 JavaScript 图片滑动切换效果 [1] 第 2 页 ...
- java synchronized静态同步方法与非静态同步方法,同步语句块
摘自:http://topmanopensource.iteye.com/blog/1738178 进行多线程编程,同步控制是非常重要的,而同步控制就涉及到了锁. 对代码进行同步控制我们可以选择同步方 ...