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提高组题解
第一题:笨小猴 模拟 第二题:火柴棒等式 搜索 深搜不用说,确定出两个加数然后判断能否拼出等式. 枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解.不过这题的数据貌似很温和,我 ...
随机推荐
- WEB前端常用的测试工具
一.QUnit 前端测试工具 QUnit是一个强大的JavaScript单元测试框架,该框架是由jQuery团队的成员所开发,并且是jQuery的官方测试套件.Qunit是Jquery的单元测试框架, ...
- hlsl 的tex函数
texCUBE http://msdn.microsoft.com/en-us/library/windows/desktop/bb509687(v=vs.85).aspx
- PHP之SQL防注入代码集合(建站常用)
SQL防注入代码一 <?php if (!function_exists (quote)) { function quote($var) { if (strlen($var)) { $var=! ...
- 【EntityFramwork--处理数据并发问题】
EntityFramwork--处理数据并发问题时支持乐观并发,即假定最佳场景(这里是指数据在更新过程中没有发生变化) 具体看<Beginning ASP.NET 4.5 Databases&g ...
- Scrum敏捷开发简介
Agile 敏捷开发实践中,强调团队的自我管理.在 Scrum 中,自我团队管理体现在每天的 Scrum 会议中和日常的协同工作,在每天的 Scrum 例会中,团队成员一般回答一下几个问题 : 昨天完 ...
- java基础知识回顾之---java StringBuilder与StringBuffer异同点
/* * StringBuilder与StringBuffer异同点: * * 使用方法与StringBuffer完全一样 * Str ...
- [转]SQL Server建立应用程序安全性和程序角色
转自:http://dev.yesky.com/450/7619450.shtml 2007-10-22 14:00 来源:论坛整理 作者:luolina 责任编辑:幽灵·yesky Microsof ...
- DB2 中将date类型的转换成timestamp
方法1: TIMESTAMP(Char(date)||'00.00.00') SELECT T2.RECORDNO,T2.DANGERTIME,T2.BIZORIGIN,T3.COMMONNAME A ...
- 通过Calendar 类获取前一个月的第一天
SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); //获取到当前的时间 Cale ...
- css中的:before与:after的简单使用
直接上代码,不多说了! 画三角形 1). <style type="text/css"> .triangle{ width: 0; height: 0; /*borde ...