noip2002提高组题解
再次280滚粗。今天早上有点事情,所以做题的时候一直心不在焉,应该是三天以来状态最差的一次,所以这个分数也还算满意了。状态真的太重要了。
第一题:均分纸牌
贪心。(昨天看BYVoid的noip2001题解的时候一不小心看到了2002的题解里的两个字,就是贪心,然后就很放心地写了,这算不算作弊啊。。。)
貌似我的方法挺奇怪的:遍历,计算出[卡牌数与平均数之差],在里面找到差最大的那堆卡牌,然后分别统计最大堆左边和右边的[卡牌数与平均数之差]的和,然后决定从最大堆中往哪边分牌以及分多少牌。如果堆两边[卡牌数与平均数之差]的和都为负,就向更小的那个方向分牌,分的牌数恰好等于该方向[卡牌数与平均数之差]的和的绝对值(绕来绕去好别扭);如果两边和一正一负,往负的方向分,分的牌数为正的方向之和加上最大堆自身的与平均数的差。
果然是很奇怪的策略。居然能一次AC我表示十分感动。
貌似网上的题解是依次而且是一次将各个牌堆变为目标状态。果然通俗易懂。
第二题:字串变换
又是字符串。。。NOIP两大坑:字符串和浮点。
看到最多10步果断想到ID-DFS,写起来各种方便,时间也还能忍受。不用多讲,每次查找替换然后往下搜索。ID-DFS所有点加起来居然只跑了0.7s,我是应该说数据太弱还是说学校测评机太好。。
1次AC。
第三题:自由落体
水题。但是我爆零了。而且还是不知道什么地方错了。反正是水题。错就错了。本题不需要题解。
目前仍爆零。不愿再做。
第四题:矩形覆盖
嗯,这道题目一开始看的时候确实会觉得很难。但是仔细分析之后发现搜索或者枚举就好。我用的是深搜,每次新扫描到一个点就修改当前矩形的上下左右边界,或者干脆另起一个矩形。注意点是要排序的,而且第一次按横坐标排序,搜索,第二次按纵坐标排序,再搜索。注意如果横坐标相同就纵坐标小的优先。在这个细节被卡掉一个点,所以只拿了80分。
经验教训:
1. 不要畏难;
2. 排序的时候注意当第一关键字相同时应该采取什么策略(第二关键字优先或者随意);
3. 不要高估了NOIP的题目。
noip2002提高组题解的更多相关文章
- noip2010提高组题解
NOIP2010提高组题解 T1:机器翻译 题目大意:顺序输入n个数,有一个队列容量为m,遇到未出现元素入队,求入队次数. AC做法:直接开1000的队列模拟过程. T2:乌龟棋 题目大意:有长度为n ...
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- NOIP 2001 提高组 题解
NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...
- NOIP 2000 提高组 题解
NOIP2000 提高组 题解 No 1. 进制转换 https://www.rqnoj.cn/problem/295 水题 对于n和基数r, 每次用n mod r, 把余数按照逆序排列 注意 mod ...
- 【NOIP2018】提高组题解
[NOIP2018]提高组题解 其实就是把写过的打个包而已 道路铺设 货币系统 赛道修建 旅行 咕咕咕 咕咕咕
- NOIP2002 提高组
[NOIP2002] 提高组 T1.均分纸牌 算法:贪心(模拟) [分析]: 1.简化 2.过滤 3.辩证法 详见课件的例7 还有一种类似的思路是:求出平均值后,i←1 to n-1扫描,若a[i] ...
- NOIP2002[提高组] 均分纸牌 题解
题面 题目保证有解即纸牌总数能被人数整除(N|T)每个人持有纸牌a[1]...a[m],我们可以先考虑第一个人 1.若a[1]>T/M,则第一个人需要给第二个人c[1]-T/M张纸牌,即把c[2 ...
- noip2009提高组题解
NOIP2009题解 T1:潜伏者 题目大意:给出一段密文和破译后的明文,一个字母对应一个密文字母,要求破译一段密文,如果有矛盾或有未出现密文无法破译输出failed,否则输出明文. 思路:纯模拟题 ...
- noip2008提高组题解
第一题:笨小猴 模拟 第二题:火柴棒等式 搜索 深搜不用说,确定出两个加数然后判断能否拼出等式. 枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解.不过这题的数据貌似很温和,我 ...
随机推荐
- Ajax出入江湖
window.onload = initAll; var xhr = false; function initAll() { if (window.XMLHttpRequest) { xhr = ne ...
- 表中相同数据的sql语句
1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from ...
- 【设计模式六大原则5】迪米特法则(Law Of Demeter)
定义:一个对象应该对其他对象保持最少的了解. 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大. 解决方案:尽量降低类与类之间的耦合. 自从我们接触编程开始 ...
- POJ 1663
#include<iostream>//cheng da cai zi using namespace std; int main() { int time; cin>>tim ...
- Oracle 9 - 分析undo和snapshot too old错误
什么操作会生成undo INSERT生成的UNDO最少,只要记录新的rowid UPDATE生成的undo多一点,它要记录修改前的数据中的那部分. DELETE生成最多的undo, 因为它要记录整行被 ...
- 【转】Android 实现“再按一次退出程序”
From:http://blog.csdn.net/ldj299/article/details/7574365 个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比 ...
- 使用Css截取字符串
white-space:nowrap; /* 禁止自动换行 */ overflow:hidden; /* 隐藏溢出的内容 */ text-overflow:ellipsis; /* 溢出文本使用... ...
- lintcode:合并两个排序链表
题目: 合并两个排序链表 将两个排序链表合并为一个新的排序链表 样例 给出 1->3->8->11->15->null,2->null, 返回 1->2-& ...
- hdu 4474 Yet Another Multiple Problem
题意: 找到一个n的倍数,这个数不能含有m个后续数字中的任何一个 题解: #include<stdio.h> #include<string.h> #include<qu ...
- 【Linux高频命令专题(8)】五大查询命令
find 格式 find 路径 -命令参数 [输出形式] 路径:告诉find在哪儿去找你要的东西 命令参数:参考下面 输出形式:输出形式很多,-print,-printf,-print,-exec,- ...