自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 收藏
  • 关注

原创 【刷题汇总】 CSP/NOIP真题分析 & 基础OJ刷题包

1、NOIP与CSP-J/S的历年真题分析汇总序号标题内容属性1CSP-J2-2021 解题报告J组真题讲解题解包2CSP-J2-2020 解题报告J组真题讲解题解包3CSP-J2-2019 解题报告J组真题讲解题解包4NOIP2013-2018 解题报告NOPI真题分析题解包2、基础OJ题解包序号标题平台属性1NOIOJ入门题表-题解包NOIOJ题解汇总2洛谷试炼场(入门)-解题包洛谷试炼场

2022-03-26 10:37:59 963

原创 【知识汇总】 OI 入门技巧与方法

OI 相关的常识汇总(更新ing)序号标题内容属性1信息学竞赛答题的基础套路答题方法与技巧入门介绍2C++数据类型的极值与空间问题时间与空间介绍基础概念3随机数·真随机数的使用方法番外技巧42、OI 基础语法介绍(更新ing)序号标题内容属性1memset()函数怎么用?函数介绍2字符串基础1:字符数组介绍概念介绍3字符串基础2:常用的字符串函数介绍概念介绍4stri

2022-03-26 10:01:59 1066

原创 CSP-J2-2021 解题报告

CSP-J/S 常态化之后,内卷继续增加;J组的题目对思维能力继续提升,但是从各省的分数线可以看出,整体的难度是下降了(10-20%)!以下是J组的题目与分析编号题目考核内容难度1分糖果取模基础152插入排序排序基础203网络链接模拟+STL304小熊的果篮队列/链表32...

2022-03-20 19:01:47 570

原创 2019luogu试炼场题解包:普及组(更新至2-17)

12.1 简单模拟 6 题号 题目 相对难度1-5 备注 1003 铺地毯 2 逆向查找 1067 多项式输出 3 分段模拟 1540 机器翻译 4 循环队列 1056 排座椅 3 统计排序 1328 生活大爆炸石头剪刀布 3 暴力模拟 ...

2019-03-08 10:35:30 1279

原创 2018NOIOJ网站入门题表(大礼包汇总,更新ing)

章节 考核内容 1.3题解大礼包 编程基础之算术表达式与顺序执行 1.4题解大礼包 编程基础之逻辑表达式与条件分支 1.5题解大礼包 编程基础之循环控制 1.6题解大礼包 编程基础之一维数组 1.7题解大礼包 编程基础之字符串 1.8题解大礼包 编程基础之多维数组...

2018-08-07 08:23:03 7419 1

原创 C++ vector 使用方法(各种常用函数的介绍)

一、vector的基础介绍0、数组基础一维数组与多维数组,是C++中最常用的系列存储工具,数组的常规使用的基础上,STL的中自带多种升级版的容器与基础函数,vector则是其中一款。1、vector的基础概念1.1 vector翻译为向量,但称为 可变长数组 或者 动态数组 更容易理解;1.2 vector内部采用连续存储空间来存储元素,所以存储与操作的逻辑与数组类似,支持指定元素的快速访问和操作。1.3 vector的元素不仅可以是int,double,string,还可以是 结构体(注意:结

2022-03-26 15:23:19 5102 1

原创 C++ string类 使用方法(各种常用函数的介绍)

必要性对于字符与字符串的模拟与各种操作的题目,在各类OI基础赛事中层出不穷。掌握基础的字符串函数和各类读入、修改、输出等奇奇怪怪的操作技巧非常有必要。前情提要在 C 中,字符与数组拥有同类的使用方法,操作直观,浅显易懂,之前的两篇扫盲贴有做简要分析:1、字符串基础1:字符数组介绍2、字符串基础2:常用的字符串函数介绍string 类简介函数介绍实例演示...

2022-03-25 09:59:45 2417

原创 luoguP7912 小熊的果篮 [CSP-J2 2021]

题目连接该题是CSP-J2 2021 T4 小熊的果篮题目大意给出一个绿球和红球的交叉分布序列,每轮取走所有同色区间最左边的一个,要求将每一轮的取数打印( $ n \leq 2 \times 10^5$)。样例操作如下图:解法分析作为普及组的压轴题,很容易让人浮想联翩,但是仔细分析,可以发现其实也不用高大上的算法或者数据结构(什么分块、排序树,先放一放)。普遍的做法是队列或者链表完成,O(n)O(n)O(n) 即可解决问题。以下是将每一块打包,然后压进队列,直接模拟扫描即可。

2022-03-20 18:59:45 931

原创 luoguP7911 网络连接 [CSP-J2 2021]

题目连接该题是CSP-J2 2021 T3 网络连接题目大意给出两种计算机的一些网络属性,对字符串的特定属性判重与差错。解法分析考察 模拟+STL1、细节较多,需要将所有情况分析清楚;2、考察 STL 的基础用法: map 和 string;实践步骤1、首先考虑查重:用 map 可以轻松解决,以地址字符串作为下标存储服务机编号即可;2、模拟的细节:(1)字符格式是否符合类似 1.1.1.1 的分布模式;(2)数字是否符合范围;(3)数据是否有多余前导零。参考代码//T

2022-03-20 16:37:50 517

原创 luoguP710 插入排序 [CSP-J2 2021]

题目连接该题是CSP-J2 2021 T2 插入排序题目大意给定长度为 nnn 的序列 aia_iai​,要做 qqq 次操作,类别有两种:操作类别1:修改,将第 xxx 个位置的值更改为 kkk (最多有 500050005000 次);操作类别2:查询,将原下标为 xxx 的数的排名。解法分析考核排序的基础理解,因为数据较小,不需要用任何高大上的数据结构和算法,直接暴力模拟即可。参考代码//T2-插入排序 //CSP-J2 2021#include<bits/std

2022-03-20 16:10:42 1249

原创 luoguP7909分糖果 [CSP-J2 2021]

题目连接该题是CSP-J2 2021 T1 分糖果题目大意给出三个数 n,l,rn,l,rn,l,r,要求在 [l,r][l,r][l,r] 中找到一个整数 kkk,设 d=k%nd=k \% nd=k%n ,输出这个最大的 ddd 。解法分析考察取余的基础性质:1、因为 d=k%nd=k \% nd=k%n ,所以 ddd 的值在 [0,n−1][0,n-1][0,n−1] 之间;2、因为 kkk 的值在 [l,r][l,r][l,r] 之间,所以讨论清楚 r−l+1r-l+1r−

2022-03-20 15:29:58 428

原创 CSP-J2-2020-解题报告

NOIP强势回顾(变成了以前的提高组T2)CSP非正式地成为前置赛…以下是普及组的题目与分析编号题目考核内容难度1优秀的拆分数位拆分12直播获奖桶23后缀树树基础54方格取数DP+优化3...

2020-12-02 09:48:32 401

翻译 luogu-P7073-后缀树

题目连接该题是CSP-J2-2020-T3题目大意输入一个后缀表达式,根据输入的条件,取反和输出。感谢MZH同学详细的题解解法分析303030分暴力。每次更改某一点数值后,重新计算后缀表达式。后缀表达式求值可以用一个栈。如果当前考虑的是数,就直接把它放进栈里;如果是!,就弹出一个数,把它的取反后的数放回栈;如果是|或者&,那么就弹出两个数,计算他们两个通过该种运算后得到的结果后放回栈里。最后栈里剩下的数即为答案。时间复杂度O(n2)O(n^2)O(n2)。(讲真栈的想

2020-12-02 09:41:31 158

原创 luogu-P7074-方格取数2020

题目连接该题是CSP-J2-2020-T4题目大意在一个棋盘内,允许向右,或者向上、下移动,求经过的点的和最大。题目分析1、显然是DP题,但是和之前的方格取数(4维降3维)有一丁点区别;2、如果对于每个点,都从三个方向过来,需要 O(n3)O(n^3)O(n3) ,能得 707070 分;3、如果分开数组做,用 dn[i][j]dn[i][j]dn[i][j] 表示从上往下的最值, up[i][j]up[i][j]up[i][j] 表从下往上的最值, f[i][j]f[i][j]f[i

2020-12-01 15:38:05 520

原创 luogu-P7072-直播获奖

题目连接该题是CSP-J2-2020-T2题目大意输入 nnn 个数,要求实时输出前若干名的分数线所在值。题目分析1、看起来是多次排序题, nnn 是 10510^5105 ,感觉会超时;2、因为选手的分数值域是 1−6001-6001−600 的整数,所以显然是用桶;3、时间复杂度为 O(n∗600)O(n*600)O(n∗600) 。参考代码//T2-直播获奖 //CSP-J2-2020//桶基础 #include<bits/stdc++.h>using

2020-12-01 11:45:53 262

原创 luogu-P7071-优秀的拆分

题目连接该题是CSP-J2-2020-T1题目大意输入一个整数,求他的二进制是否为优秀,优秀的原则是:二进制的第一位(2^0)不能有值。题目分析考核的是二进制基础,方法有很多,如果会倍增数组的话,相对简单,也可以用位运算来处理。参考代码1//T1-优秀的拆分 //CSP-J2-2020//二进制基础 #include<bits/stdc++.h>using namespace std;int a[110],n;int main(){ cin>>n

2020-12-01 11:34:01 292

原创 luogu2016:战略游戏:求最大独立集(板子)

题目连接树形DP专题题目大意给出一棵树,每个守卫可以瞭望相邻的点;问,最少需要多少个守卫,可以瞭望全图。题目分析瞭望:其实是希望用最少的点,覆盖长度范围为1的图。所以是经典的“最小点覆盖”问题,在树上也叫“最大独立集”问题;因为是板子,所以肯定很简单,直接上代码,相信应该问题不大。解题流程略参考代码//1.3-luogu2016-战略游戏//最小点...

2020-01-06 08:47:01 287

原创 loj10155:数字转换:树的直径问题

题目连接树形DP专题题目大意一个数字n,求n以内的数字之间 “约数和关系” 的最长链;约数和关系:一个数字 xxx 的约数和为 s[x]s[x]s[x] ;题目分析由 约数和关系 可以想到,如果 s[x]<xs[x]<xs[x]<x ,他们之间可以连一条双向边;题目就转换为了一个树上,求直径。直径的定义: 树上最长的链。求树的直径的方法1:用两次df...

2019-12-25 10:45:58 265 1

原创 hdu3534:tree:树的直径问题(dp求解)

题目连接树形DP专题题目大意给出一棵带边权的树;问1:求出树的直径;问2:有多少对点的距离等于树的直径。题目分析直径的定义: 树上最长的链(可能有多条)。求树的直径的方法1:用两次dfs来完成dfs1从根出发,找到最远的叶子结点 kkk;dfs2以 kkk 为根,出发,找到离他最远的点 ttt , kkk 与 ttt 之间的距离就是直径。求直径的做法2:dp的思...

2019-12-24 09:19:50 460

原创 luogu1352:没有上司的舞会

题目连接树形DP专题题目大意给出一棵带权值的树;如果父亲出席,则儿子们都不出席舞会;如果父亲不出席,儿子们可以选择出席与否;求最大的权值和。题目分析f[x][1]f[x][1]f[x][1] 表示 xxx 会出席晚会,所以他的儿子都不出席,取和:f[x][1]=∑y∈son[x]f[y][0]f[x][1] = \sum_{y \in son[x]}^{} f[y...

2019-12-23 11:56:49 149

原创 luogu1122:最大子树和

题目连接树形DP专题题目大意知道一棵树,每个点有权重;删掉任意个点,保留以1为根的子树;使得权值和最大。题目分析树形DP的入门题,考核树上的递归更新。解题思路一个dfs完成参考代码//luogu1122-最大子树和#include<bits/stdc++.h>using namespace std;const int N=20000;...

2019-12-23 09:56:39 232

原创 CSP-J2-2019-解题报告

NOIP暂停,更名为CSP....以下是普及组的题目与分析(应该是官方数据)编号 题目 考核内容 难度 1 数字游戏 字符串基础 1 2 公交换乘 贪心+模拟 3 3 纪念品 思维转化(难)+多重背包 7 4 加工零件 思维转化(难)+拆点+最短路 10 吐槽几句吧!...

2019-12-02 15:15:48 676

原创 luogu-P5663 加工零件

题目连接该题是CSP-J2-2019-T4题目大意给出一张无向图;点表示工人,任意一个工人如果要做 x 阶段 的物品,相邻的工人需要提供 x-1 阶 的物品; 0阶 的物品设定为原材料多组询问,若 a 号工人做 L 阶物品的时候,1 号工人是否需要提供原材料(0阶物品)。题目分析第一感觉像是树的分层,如下图:2号点如果要做1阶的物品,则相邻的都给他提供原材料(0阶物...

2019-12-02 14:57:58 493

原创 luogu-P5662 纪念品

题目连接该题是CSP-J2-2019-T3题目大意知道 T 天的 N 个物品的价钱(当天买入卖出同价);初始有 M 元钱,要求最后一天全部换回现金;问过程中如何操作,可以使得最后的现金最多。题目分析根据NOIP的惯例,这个T3应该是DP了,大胆地开始推。类似 美元 那题的暴力思维,也是知道所有的天数的汇率,要求最后拿到等值最高的货币;解题思路推了大半天,发现...

2019-12-02 12:30:10 255

原创 luogu-P5661 公交换乘

题目连接该题是CSP-J2-2019-T2题目大意可以选乘公车或者地铁;乘坐地铁时:一定要买票,但会获得(45分钟内有效)的免费公车券;乘坐公车时:有券一定用券(而且先用早的券),没券则买票;问:最小的花费。题目分析根据NOIP的惯例,这个T2也应该是签到题,大胆地想模拟。结果发现,真的是个大模拟,注意细节就好。参考代码//CSP-J2-2-公交换乘//贪心模...

2019-12-02 11:06:06 565 1

原创 luogu-P5660 数字游戏

题目连接该题是CSP-J2-2019-T1题目大意输入一个定长为8的 01 串,统计1的个数。题目分析无脑签到题,只要学过字符数组或者字符串的同学,秒切。参考代码//CSP-J2-1-数字游戏 //字符分析 #include<bits/stdc++.h>using namespace std;char s[10];int ans;int main()...

2019-12-02 10:58:02 383

转载 NOIP近五年真题分析(NOIP2013-NOIP2018

NOIP2018 提高https://mp.weixin.qq.com/s/I8RggjLtxYfvYfzjycOFkANOIP2017 提高https://mp.weixin.qq.com/s/LM8lW_UlbbeJ-ildCLOEtwNOIP2016 提高https://mp.weixin.qq.com/s/mn7Ks3LhRverZLfC9c23FwNOIP2015 提高ht...

2019-11-06 15:09:34 380

原创 luogu1052:过河:线性DP+路径压缩

题目连接该题是luogu试炼场的2-18:T6题目大意在一个长度是n的数轴上,有m个格子有石头;从0出发,跳出数轴,每次可以跳 s-t 的距离;问:要求踩到尽可能少石头的情况下,踩了多少石头。n是109 ,m的范围是100(最多100个石头);题目分析在没看到n的范围之前,这是一道非常直观的线性DP,30%的分数稳了。100%的数据,显然要想优化才行。3...

2019-06-28 11:14:43 530 1

原创 luogu1063:能量项链:区间DP

题目连接该题是luogu试炼场的2-18:T4类似luogu1880 的石子合并题目大意n颗珠子串成一圈,可以头尾合并;只能相邻的合并,合并后原地变成一颗新的珠子,头尾不变;求用什么顺序合并,得到的能量最大。题目分析这题和石子合并,堪称区间DP的模板级:1 处理成环的问题;2 搞清楚每颗珠子的前后关系;思路:问什么设什么:f[i][j]表示从i合并到j...

2019-06-26 09:12:29 207 1

原创 luogu1541:乌龟棋:带技巧的背包

题目连接该题是luogu试炼场的2-18:T2题目大意一个n格的跑道,每个格子上有得分;要求乌龟从第一格走到第n格,有4种共m张牌可以用;1号牌可以移动1格,2号派可以移动2格。。。计算落脚点的得分;数据保证刚好卡牌用完,落在终点,问如何调整牌的顺序,得到最大得分。题目分析第一个感觉就是背包,而且隐藏了很多信息:1 而且数据保证,用完m张牌,刚好到达终点;2 从1...

2019-06-25 14:27:57 198

原创 信息学竞赛答题的基础套路

1.头文件:详细查询请点这里超级常用标准库头文件: <iostream> // 标准流对象 <cstdio> // C 风格的输入输出 <cmath> // 常用数学函数库 <cstring> // 字符串处理函数 <cstdlib> // 动态内存分配、随机数、排序与搜...

2019-06-21 10:05:22 1482

原创 memset()函数怎么用?

0 问题引入将一个n*m的二维数组 a 初始化为 0 ;朴素的代码:for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) { a[i][j]=0; }}C++给了一个memset()函数,可以大幅降低代码量:memset(a,0,sizeof(a));以上两段代码实现的结果,都是满足题意的,但是同学们希望能用memset...

2019-06-21 09:32:11 1338 1

原创 luogu1417:烹调方案:01背包ex

题目连接该题是luogu试炼场的2-17:T4题目大意01背包问题+了难度。题目分析因为价值与次序有关,所以在普通的01背包基础上,假如了次序的概念,需要先进行特殊排序,再跑背包。解题思路用结构体来表述每样物品:k[i]物品的属性包括:a,b,c;区别于传统的背包,题目中设定了价值:a-t*b,所以一个物品先枚举和后枚举,价值是会发生变化的;设定k...

2019-06-18 11:05:27 165

原创 luogu1736:创意吃鱼法:棋盘DP

题目连接该题是luogu试炼场的2-17:T6题目大意n*m的0,1棋盘中;找最大的正方形,要求:(左或者右)对角线上全是1,其他位置全是0。题目分析和1387最大子正方形十分类似,但要增加预处理。因为左右对角线都有可能是最值,所以分开两次DP:一次左斜,一次右斜,再取最值。解题思路:左斜问什么设什么: f[i][j]表示以(i,j)为右下角的正方形,符合条件...

2019-06-18 09:38:53 176

原创 luogu1855:榨取kkksc03:二维01背包

题目连接该题是luogu试炼场的2-17:T5题目大意知道n个队伍的金钱消耗w[i],金钱消耗t[i];知道金钱的最大值是m,时间的最大值是t;求最多的队伍次数。题目分析经典的二维01背包问题;和“潜水员”基本是重合的。思路:二维背包看他写就好参考代码//luogu1855:榨取kkksc03:二维背包 #include<bits/stdc++...

2019-06-13 09:42:24 171

原创 luogu1508:吃吃吃:递推水题(略)

题目连接该题是luogu试炼场的2-17:T1题目大意n*m的棋盘,每个格子有一个整数;要求从第n+1行往上,每次只能选左上/上/右上这三个格子中的一个推进;求累加到第一行的路线中,值最大。题目分析~~ 吐槽一波:题目写得好凌乱,完全不认真写题面!!~~典型的三角形取数问题,应该放在递推模块才对的,放在这里纯粹浪费题目数量!!思路:倒推直接出答案从上往下过...

2019-06-13 09:20:47 224

原创 luogu1387:最大正方形:子矩阵问题

题目连接该题是luogu试炼场的2-17:T3题目大意n*m的棋盘,每个格子有一个0/1的数值;求一个最大的正方形子矩阵,要求矩阵内都是1;输出这个最大子矩阵的边长;题目分析经典的子矩阵问题,问什么设什么:f[i][j]表示以(i,j)为右下角的子矩阵,能构成正方形的边长的最大值;如果a[i][j]的值是0,f[i][j]不存在子矩阵;如果a[i][j]的值是1...

2019-06-13 08:49:25 3215 2

原创 luogu1006:传纸条:棋盘DP

题目连接该题是luogu试炼场的2-17:T2题目大意n*m的棋盘,每个格子有一个0-100的数值;从左上角出发,只能向右和向下走,到达右下角;从右下角出发,只能向左和向上走,到达左上角;要求2次的路线不能重复,求经过格子的取值和尽可能大。题目分析体面非常直观,第一感觉用深搜就可以做,而且只有50的数据,感觉随便搞一搞还能暴力AC;本题是在DP模块,所以还是用DP的...

2019-06-11 09:40:16 180

原创 luogu1880:石子合并:区间DP元问题

题目连接该题是luogu试炼场的2-16:T4题目大意有n堆石子,围成一圈;(成环)单次只能合并相邻的两堆石子,消耗与“两堆石子”等重的能量;要求把所有石子合并完成,消耗的能量最小。题目分析区间DP的概念:要知道从i->j区间内的最优解,则需要枚举区间内的所有情况;本题成环,所以需要用两倍的长度作为过程,最后只需要扫一遍n长度就可以了。 解题思路...

2019-06-11 08:34:59 264

原创 luogu1140:相似基因:挖空匹配问题

题目连接该题是luogu试炼场的2-16:T1题目大意知道两个字符串,对应DNA中的碱基,并且四种碱基之间对应有一个得分表;求最大的匹配得分。思路1他写得非常完美代码://luogu1880:石子合并 #include<bits/stdc++.h>using namespace std;int na,nb,a[110],b[110],f[110...

2019-05-30 15:19:50 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除