七月练习:杀完NOIP全集
注:标记☆的是我未理解透彻的,标记★的是已经理解完的重点。
7.31:所有题目已经上传!
7.1
CF581A Vasya the Hipster
水。随便找规律。(CF 乱入)
P1199 [NOIP2010 普及组] 三国游戏
水。找排名第二的就是答案,因为第一大的被电脑拿了。
P1190 [NOIP2010 普及组] 接水问题
有点水。直接贪心,不要让水龙头闲着就过了。
7.2
P2118 [NOIP2014 普及组] 比例简化
水。直接枚举分子分母,L 连 100 都不到。
P2239 [NOIP2014 普及组] 螺旋矩阵
不错的找规律。小学奥数题。最后的转移比较妙~
return f(n-2,i-1,j-1)+4*n-4;
用这个方法快速确定位置相当妙,可仔细体味。
7.3
Go on the trip.
P8225「Wdoi-5」天才⑨与天才拆分
有点水。我曾经赛时没有 AC 的红题,回头补一下。
7.4
P1098 [NOIP2007 提高组] 字符串的展开
有趣的小模拟。
参数的顺序可加斟酌,有利于代码的简洁性。
7.5
有点颓==。
P5661 [CSP-J2019] 公交换乘
小模拟,一开始顺序搞反喜提 0 $pts$,这个其实用数组或者 vector 来动态维护可选的票,或者也可把没用的票即时抹去。
P1540 [NOIP2010 提高组] 机器翻译
容易想到队列维护,遍历可以用数组代替 STL,也可创建备份。
P1097 [NOIP2007 提高组] 统计数字
用 map+ 优先队列来维护(桶的思想)。
☆P5019 [NOIP2018 提高组] 铺设道路
有意思的贪心。想到了确实很妙,可仔细体味。
建议参考题解 P5019【铺设道路】。
CF1685A Circular Local MiniMax
挺好想的贪心策略,就是大小交错排列。
P5657 [CSP-S2019] 格雷码
解释一下第一篇题解。
k 格雷码
000 000
001 001
010 011
011 010
100 110
101 111
110 101
111 100
对于第 0 位,循环节是0101对应0110,
对于第 1 位,循环节是00110011对应00111100
......
对于第 i 位,循环节长为 $2^i$。
所以答案为 k xor floor(k/2)。
7.6
P2347 [NOIP1996 提高组] 砝码称重
可行性 dp,注意重量要从大到小枚举!
P1965 [NOIP2013 提高组] 转圈游戏
很好算出转后的位数 $x+10^k m$,直接取余数即为答案。
P2038 [NOIP2014 提高组] 无线网络发射器选址
较为简单的模拟,一眼激光炸弹。但是边界的问题有点炸心态,略烦。
P3078 [USACO13MAR]Poker Hands S
三倍经验。
P1969 [NOIP2013 提高组] 积木大赛
三倍经验。
P5686 [CSP-S2019 江西] 和积和
有点恶心,没想到取模后做减法会出现负数,WA 了很久,不过推式子倒是不难。
7.7
P5686 [CSP-S2019 江西] 和积和
推式子题。反复前缀和优化 2 次。
P5682 [CSP-J2019 江西] 次大值
找规律题。推出可行解后再判断大小即可。
P1019 [NOIP2000 提高组] 单词接龙
裸的 dfs。
P1025 [NOIP2001 提高组] 数的划分
剪枝练习题。考虑余下数字之和的最大即可。
P2678 [NOIP2015 提高组] 跳石头
一眼贪心,可加二分答案优化。
P1056 [NOIP2008 普及组] 排座椅
四次排序法,注意答案要有序。
7.8
P1158 [NOIP2010 普及组] 导弹拦截
枚举分割点。直接按答案排序。
P8296 [COCI2012-2013#2] KRIZALJKA
曾经的题解,又加了个 map 做法。
不要脸的推一波题解:题解 By Velvet。
☆P1020 [NOIP1999 普及组] 导弹拦截
两个类 LIS,要$O(n \log n)$ 的做法,用到了 Dilworth 定理。
P2196 [NOIP1996 提高组] 挖地雷
裸的 dfs。
P3951 [NOIP2017 提高组] 小凯的疑惑
小学奥数题。
7.9
P2404 自然数的拆分问题
裸的 dfs。
P1032 [NOIP2002 提高组] 字串变换
吐了,dfs 妥妥 MLE+TLE,只能 bfs+map 判重。
P3613【深基 15.例 2】寄包柜
vector 入门练习。
P1825 [USACO11OPEN]Corn Maze S
也是 bfs,裸的迷宫问题,只是加了个传送门,可以用 map。
7.10
颓-ing
AT173 単位
水。目测红题过水 + 恶意评分。
7.12
P5076【深基 16.例 7】普通二叉树(简化版)
二叉搜索树裸题。
P1364 医院设置
Floyd。
P1045 [NOIP2003 普及组] 麦森数
高精度快速幂,但是卡一卡常可过。
7.13
☆P1080 [NOIP2012 提高组] 国王游戏
py 水过,高精度写吐了。
P2895 [USACO08FEB]Meteor Shower S
bfs,加了个时间限制。
P2234 [HNOI2002] 营业额统计
果断 multiset 维护,答案只可能是其前一个或后一个。
P3884 [JLOI2009] 二叉树问题
Floyd 可解,根据从 root 节点到每个节点的距离(最短路)来求解,坑点是解之前会发现要解一个方程才知道边权。
P5250【深基 17.例 5】木材仓库
set 维护,lower_bound 可解,注意找不到时向前和后判断各一次即可。
P5318【深基 18.例 3】查找文献
dfs+bfs 裸题。
★P3916 图的遍历
反向建边 +dfs。暂时没搞懂为什么这是对的。
$Update 7.16:$
其实就是最大的点能到达的点的能到达的最大点一定是最大的点,好拗口。然后从最大点开始 dfs 即可。
P3405 [USACO16DEC]Cities and States S
考虑 map,给每个<a[i],b[i]>的值找一个 hash 可解。
7.14
P1113 杂务
发现是个 DAG 就好做了,求一个最长链即可。
P4017 最大食物链计数
toposort 裸题。类似斐波那契的求和即可。
P1807 最长路
Floyd 裸题。
P2853 [USACO06DEC]Cow Picnic S
考虑每个奶牛一次 dfs,统计能被到达 k 次的牧场数。
P3184 [USACO16DEC]Counting Haybales S
水。求区间点数只需要排序后用 upper_bound-lower_bound 即可。
CF933A A Twisty Movement
因为 a 只有 1 和 2 两种可能,所以答案一定分成 4 段,如【111...】【222...】【111...】【222...】
代码及其精简。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b,c,d;cin>>n;a=b=c=d=0;
while(n--)
{
int p;cin>>p;
if(p==1) a++,c++;
else b++,d++;
b=max(a,b);
c=max(b,c);
d=max(c,d);
}cout<<d;
return 0;
}
CF820A Mister B and Book Reading
恶评题。估计是红或者橙。
P7074 [CSP-J2020] 方格取数
不会 DP,写了个记搜。
P1320 压缩技术(续集版)
P5734【深基 6.例 6】文字处理软件
P2956 [USACO09OCT]The Robot Plow G
P7918 [Kubic] Lines
补了一下之前 WA 过的红和橙。
7.15
CF520B Two Buttons
bfs。
P1324 矩形分割
大的先割,总数为 $n+m$,下标会超出一个,而不是哪一个超出就停。
P5194 [USACO05DEC]Scales S
从前没开 long long
,喜提 $0pts$。
P6476 [NOI Online #2 提高组] 涂色游戏
数论题,推了 1h 哭哭。
其实就是 $(x+1)p_2-1-(x p_2+1)=p_2-2$ 个中全部是 $p_1$ 倍数的最坏情况能不能满足。
写了个题解:题解 By Velvet。
B3601 [图论与代数结构 201] 最短路问题_1
没看见负权边,拍了个 dijkstra
结果 WA*10
。正解 Bellman_Ford
。
P1363 幻象迷宫
到边界取余即可。
7.16
P1347 排序
md 一天就这一题,细节写炸的我身心俱疲。
7.17
P1127 词链
调了2Days,dfs,但是要用欧拉回路来求起始点。
P1072 [NOIP2009 提高组] Hankson 的趣味题
枚举其因数,考虑对称性(注意平方),$O(\sqrt{n})$ 可过。
CF185A Plant
炸 long long
了,用 __int128
即可。
P7965 [COCI2021-2022#2] Kutije
写了一个复杂度及其不对的做法(全靠O2),Floyd复活!!!
7.18
P1086 [NOIP2004 普及组] 花生采摘
是贪心!不是搜索。一个小模拟,没什么难点。
P8437 伟大的神
月赛Div2 T1,蒟蒻不会构造题。
P3913 车的攻击
小学数学题。
CF1260C Infinite Fence
双倍经验。
P4889 kls与flag
map
入门题。
P2638 安全系统
组合数推式子。
☆P2789 直线交点数
不大明白,待理解。
7.19
P1835 素数密度
打表一些素数,然后在这个范围内筛一遍。因为 $R-L\le10^6$。
P4057 [Code+#1]晨跑
直接求最小公倍数。
P2651 添加括号III
考虑极端情况。a1/(a2/a3/a4/...)=a1a3a4.../a2。
也不需要高精度,反复 gcd
即可,如果 a2 变成 1 就说明可以整除。
P3956 [NOIP2017 普及组] 棋盘
bfs,但是要先转化一下。
转化思路。
发现普通的队列不行之后改用优先队列就过了。
7.20
P1069 [NOIP2009 普及组] 细胞分裂
分解质因数,依次计算x的值,如果质因数没有出现就是无解,取出答案即可。
☆P1593 因子和
用逆元解的一道题,因子和是有公式的,刚好是等比数列。逆元还不大会。
P1414 又是毕业季II
比较妙。分解因数,统计出现次数,对于每个 i ,出现次数< i 的才符合要求。
P2660 zzc 种田
水。一开始以为多块一起算的是长方形的周长WA了几次,忘了是一个一个减的。
P1403 [AHOI2005]约数研究
因为 $[1,n]$ 里约数有 $i$ 的个数为 $\left \lfloor \frac{n}{i} \right \rfloor $。
直接枚举,不过也可以整除分块做。
P6365 众数出现的次数
众数即一组数据中出现次数最多的数值。所以用map统计即可,记得判重。
B3630 排队顺序
链表裸题。
CF552C Vanya and Scales
题解 By Velvet
CF757B Bash's Big Day
统计因数出现的最多次数,没有则输出 1。qwq 没有特判WA 6次。
P7911 [CSP-J 2021] 网络连接
裸的map。
唯一难点是判断无解,sscanf即可,另外判断前导0只需要把分解后的合并,与原来的比较。
P4018 Roy&October之取石子
归纳法。只有石子数为 6 的倍数时是第二个人赢。
可参考。
7.21
P1022 [NOIP2000 普及组] 计算器的改良
根据等号两边分别计算即可,把方程变成 $ax+b=0$ 的形式。
P1309 [NOIP2011 普及组] 瑞士轮
要用归并排序,不过STL里有。
P1914 小书童——凯撒密码
略。
P5026 Lycanthropy
P4231 三步必杀
二次差分练习,对于增加的量是等差数列时有效。
如下列等差数列:
| 00 | 00 | 04 | 06 | 08 | 10 | 12 | 00 | 00 |
进行一次差分后:
| 00 | 00 | 04 | 02 | 02 | 02 | 02 | 00 | 00 |
发现 除了首元素外, 其他元素都相等, 相当于区间加操作。
则可再进行一次差分 :
| 00 | 00 | 04 | -2 | 00 | 00 | 00 | -2 | 02 |
发现 只有四个位置被操作, 值有所改变。
(By 灵乌路空)
(By WAMonster)
以 $v=1,i=0$ 时的情况为例。(标红为入水点)
原序列:
$0 \quad 1 \quad 0\quad {\color{Red} -1} \quad 0\quad 1 \quad 0 \quad 0$
一次差分后:
$0 \quad 1 \quad -1\quad {\color{Red} -1} \quad 1\quad 1 \quad -1 \quad 0$
两次差分后:
$0 \quad 1 \quad -2\quad {\color{Red} 0} \quad 2\quad 0 \quad -2 \quad 1$
于是推出公式,相较之下第一题更坑,数组下标可能是负数!
7.22
P1037 [NOIP2002 普及组] 产生数
Floyd。转换成图论模型,开 __int128 可过。
P3948 数据结构
裸的差分。在线询问直接暴力,离线部分先改成前缀和再查询。
7.23
SP15637 GNYR04H - Mr Youngs Picture Permutations
线性DP练习。
用 $F_{a_1,a_2,a_3,a_4,a_5}$ 来表示每一排从左到右分别站了 $a_1,a_2,a_3,a_4,a_5$ 个人的合影方案数量。
初始条件:$F_{0,0,0,0,0}=1$
目标:$F_{N_1,N_2,N_3,N_4,N_5}$
转移方法:当每排人数不超过 $N_i$ 时,且前一排的人数大于本排人数时就可插入身高为 $i$ 的角色。
当然,此转移方法是基于身高从小到大来分析的。
同时每个状态也需要维持其单调性。
CF10D LCIS
有点恶心。如果不输出方案可以 $O(N^2)$ 求解。
由于数据特别水,故 $O(N^3)$ 可过,最后递归求出答案序列即可。
P2893 [USACO08FEB] Making the Grade G
先要分析出一定存在一种方案,使得 $B$ 中的数值都在 $A$ 中出现过。
之后容易想到类似 LIS 问题的做法。
$dp_i=\min\{{dp_j+cost(j+1,i-1)} \}{(0 \le j<i且a_j\le a_i)}$
时间复杂度为 $O(N^3)$。
当然,因为本题的决策集合只增不减,就可以实现 $O(1)$ 的转移。
具体的,设 $dp_{i,j}$ 为完成前 $i$ 个数的构造且 $B_i=j$ 时,$S$ 的最小值。
P1311 [NOIP2011 提高组] 选择客栈
不断记录距离当前客栈最近的 $最低消费\le p$ 的那个。
然后实时记录其之前各种颜色的客栈出现次数,答案加上和当前客栈颜色一致的客栈数量即可。
7.24
P1006 [NOIP2008 提高组] 传纸条
线性 DP。考虑路径的形成和行走,四种可能分别转移即可。
7.25
P1541 [NOIP2010 提高组] 乌龟棋
容易想到用 $dp_{a,b,c,d}$ 来表示四种卡片分别使用了 $a,b,c,d$ 张时的答案。
于是就可以愉快的 DP 了。
当然也可以写记忆化搜索,代码雷同。甚至比 DP 快。
P5016 [NOIP2018 普及组] 龙虎斗
先预处理出势力值。
然后可以 $O(1)$ 求出更新后的答案。
7.26
P1078 [NOIP2012 普及组] 文化之旅
一道错题。
不过可以考虑限制条件,然后 Floyd 求最短路即可。
注意是起点和终点特判是否满足条件。
P2672 [NOIP2015 普及组] 推销员
考虑按疲劳值排序。
记录下前后 $k$ 个点的路径最大值分别为 $q_k$ 和 $h_k$。
答案即 $\max \{ sum_x+q_x,sum_{x-1}+h_x \}$。
其中 $sum_{x-1}+h_x$ 意思是舍弃当前一个点的疲劳值,在后面寻找路径更长的来弥补。
因此 $h$ 数组在计算时不仅要计算路径的长度,而且要算出对应的一个疲劳值。
P1970 [NOIP2013 提高组] 花匠
容易想到统计趋势的变化情况,但是需要先排除相等的情况。
P1076 [NOIP2012 普及组] 寻宝
按题意模拟即可。
不过在寻找楼梯间的时候会用到模数,为了防止一层楼只有一个出口的情况,要先 $-1$ 再 $+1$。
UVA11624 Fire!
做的最轻松的蓝题。
只需要两次 bfs,人在火之前到就行。
7.27
P1023 [NOIP2000 普及组] 税收与补贴问题
题意较难理解,可参考:Discuss By ShefYong。
按照等差数列求出线性关系,根据不补贴时的价格从小到大枚举答案即可。
P1016 [NOIP1999 提高组] 旅行家的预算
大模拟???
细节很多,贪心思路很细,参考了题解 By Twilight_。
P2671 [NOIP2015 普及组] 求和
咕咕咕......前缀和推式子题。
7.28
P5018 [NOIP2018 普及组] 对称二叉树
不断递归左右子树,判断权值和位置是否对称。
P1043 [NOIP2003 普及组] 数字游戏
直接爆搜。
剪枝策略就是判断当前答案已经无法再更新了就返回。
考场上的高精度可以用两个 long long
来平替。
P1982 [NOIP2013 普及组] 小朋友的数字
明显要求一个最大子段和。然后愉快的递推即可。
7.29
P5017 [NOIP2018 普及组] 摆渡车
迷惑题?参考了题解 By Sooke。
先抽象化问题,找到线性 DP 的模型就好写了。
虽然正解是斜率优化,但是用一个避免无效转移就过了???
7.30
P8452 「SWTR-8」15B03
赛时打的 $80\;pts$ 部分分。
UVA1193 Radar Installation
贪心练习。
七月练习:杀完NOIP全集的更多相关文章
- NOIP算法总结
前言 离NOIP还有一个星期,匆忙的把寒假整理的算法补充完善,看着当时的整理觉得那时还年少.第二页贴了几张从贴吧里找来的图片,看着就很热血的.旁边的同学都劝我不要再放PASCAL啊什么的了,毕竟我们的 ...
- NOIP初赛知识点
http://www.doc88.com/p-9982181637642.html 连载中…… (一)八大排序算法 下面这张表摘自博客http://blog.csdn.net/whuslei/arti ...
- HGOI NOIP模拟4 题解
NOIP国庆模拟赛Day5 题解 T1 马里奥 题目描述 马里奥将要参加 NOIP 了,他现在在一片大陆上,这个大陆上有着许多浮空岛,并且其中一座浮空岛上有一个传送门,马里奥想要到达传送门从而前往 N ...
- NOIP后省选集训前文化课划水记
划水划了一个多月,文化课没啥长进还他妈累死了...--ghj1222 11.11(NOIP Day2) 师傅开车开得很快,晚上8:00多就到了二狱 晚上听毒瘤班主任swh讲了半节语文,我:黑人问号.j ...
- QBXT七月D1
今天是lyd神仙讲课的第一天,可以感觉到的是这位神仙有着不同于他人的气质,比如他的表情包(雾) 好了来讲正经的) 今天讲的比较多的是模拟算法和一些比赛中的好习惯 high-level 这个名词的大体意 ...
- NOIP模板整理计划
先占个坑 [update]noip结束了,弃了 一.图论 1.单源最短路 洛谷P3371 (1)spfa 已加SLF优化 #include <iostream> #include < ...
- NOIp 11.11/12
最后一场比较正式的NOIp模拟赛,写一发小总结.题目没什么好说的,大部分很简单,先贴一下代码. 1111 T1 //string //by Cydiater //2016.11.11 #include ...
- NOIp 1109
停课后的第一场模拟赛,应该不会怎么说今天的模拟赛,除了第一题不知道那种筛法的复杂度是$log$的没敢写,其他都挺水的.另外,第三题的数据也弱化了,建议去这里再交一遍. 贴一下AC代码,有兴趣可以参考一 ...
- NOIp 2016 总结
NOIp 2016 总结 -----YJSheep Day 0 对于考前的前一天,晚自习在复习图论的最短路和生成树,加深了图的理解.睡得比较早,养足精力明日再战. Day 1 拿到题目,先过一边,题目 ...
- 历年NOIP水题泛做
快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...
随机推荐
- Java中的包装类(wrapper class)
1.介绍 顾名思义,包装类是封装Java原始类型的对象.每个Java原始类型都有一个对应的包装类: 基本类型 包装类 boolean Boolean byte Byte short Short cha ...
- java.lang.System快速指南
1.介绍 在本教程中,我们将快速了解java.lang.System类及其特性和核心功能. 2.IO 系统类是java.lang的一部分,它的一个主要特性是让我们能够访问标准的I/O流. 简单地说,它 ...
- spring boot+bootstrap实现动态轮播图实战
1.bootstrap轮播图 最近开发了个网站需要用到轮播图,正好前端用的是Bootstrap,这里就实战一下. 水平一般能力有限,仅供参考. 前提条件: bootstrap4.5 jquery 3张 ...
- CentOS 7 SSH连接超时自动断开解决方案
用SSH登录到Linux的时候,由于默认的连接超时时间很短,经常断开! 1.修改文件 # vi /etc/ssh/sshd_config # vi /etc/ssh/sshd_config 找到 #C ...
- win32 - 匿名管道的使用
目标: 创建一个父进程和子进程,在子进程的控制台窗口输入数据,数据通过管道发送给父进程,父进程的控制台窗口读取数据,最后将数据打印出来. Parent.cpp //CMD.exe #include & ...
- ASCII编码的影响与作用:数字化时代的不可或缺之物
一.ASCII编码的起源 ASCII(American Standard Code for Information Interchange)编码是一种最早用于将字符转换为数字的编码系统.它诞生于20世 ...
- django学习第三天---django模板渲染,过滤器,反向循环 reversed,自定义标签和过滤器,模板继承
django模板渲染 模板渲染,模板指的就是html文件,渲染指的就是字符串替换,将模板中的特殊符号替换成相关数据 基本语法 {{ 变量 }} {% 逻辑 %} 变量使用 示例 Views.py文件 ...
- 【Azure 应用服务】如何定期自动重启 Azure App Service Plan(应用服务计划)
问题描述 如何定期自动重启 Azure App Service Plan(应用服务计划)? 因一个App Service Plan 下包含多个应用服务,如果能统一通过应用服务计划来重启所有的应用,则有 ...
- TLS数据包重组
TLS解密 参考以下链接:Wireshark 解密 TLS报文_在线tls解密-CSDN博客 总结: 配置环境变量 wireshark首选项配置 TLS解密例子 Frame 2700 Frame 27 ...
- Java //输入两个正整数m和n,求其最大的公约数和最小公倍数//12和20的最大公约数是4,最小公倍数是60
1 //输入两个正整数m和n,求其最大的公约数和最小公倍数 2 //12和20的最大公约数是4,最小公倍数是60 3 4 Scanner scan = new Scanner(System.in); ...