自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NOIP2013普及组初赛

NOIP2013普及组初赛27void swap1(int p){ int i, j, b[SIZE]; for (i = 1; i <= p; i++) b[ ① ] = a[i]; for (i = p + 1; i <= n; i++) b[i - p] = ② ; for (i = 1; i <= ③ ; i++) a[i] = b[i];}void swap2(int p){

2020-08-28 16:22:03 566

原创 CSP-J 2019入门组初赛

CSP-J 2019入门组初赛7把8个同样的球放在 5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法?( )提示:如果 8 个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法解析:当放在一个袋子里时:8=8当放在两个袋子里时:8=1+7,8=2+6,8=3+5,8=4+4当放在三个袋子里时:8=1+1+6,8=1+2+5,8=1+3+4,8=2+2+4,8=2+3+3当放在四个袋子里时:8=1+1+1+5,8=1+1+2+4,8=1+1+3+3,8=1+2+2+3,8=2+

2020-08-28 15:14:19 2206

原创 CSP-S 2019提高组初赛

CSP-S 2019提高组初赛9一些数字可以颠倒过来看,例如 0、1、8 颠倒过来还是本身,6 颠倒过来是 9,9 颠倒过来看还是 6,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如 106 颠倒过来是 901。假设某个城市的车牌只由 5 位数字组成,每一位都可以取 0 到 9。请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌,并且车牌上的 5 位数能被 3 整除 (25 )。解析:可选的数字有0,1,6,8,9,中间的数字可以为0,1,8在中间的数字的数字和一侧的数字

2020-08-28 11:36:51 1909

原创 NOIP2018普及组初赛

NOIP2018普及组初赛12设含有 10个元素的集合的全部子集数为 S,其中由 7 个元素组成的子集数为 T,则 T/S 的值为(21128\frac{21}{128}12821​)。解析:S=210S=2^{10}S=210,T=C107T=C_{10}^7T=C107​,T/S=21128T/S=\frac{21}{128}T/S=12821​17从 1 到 2018 这 2018 个数中,共有___个包含数字 8 的数。包含数字 8 的数是指有某一位是“8”的数,例如“2018”与“188

2020-08-27 16:45:28 1327

原创 NOIP2011普及组初赛

NOIP2011普及组初赛15现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由 4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为 700、600、300、200。那么,“也”字的编码长度是( 3)。解析:如图所示23#include <iostream>using namespace std;int main(){ int i, n, m, ans; cin>>n>>m; i = n;

2020-08-27 16:28:28 565

原创 NOIP2018提高组初赛

NOIP2018提高组初赛7在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是 (13\frac1331​ ) 。解析:使用排除法解决问题,当左边的点在左边端点是,期望长度为12\frac1221​,所以答案一定小于12\frac1221​。10为了统计一个非负整数的二进制形式中 1 的个数,代码如下:int CountBit(int x){ int ret = 0; while (x) { ret++; __

2020-08-27 11:44:20 919

原创 NOIP2017提高组初赛

NOIP2017提高组初赛8由四个不同的点构成的简单无向连通图的个数是 ( 38)。解析 :因为是无向连通图,所以边数可以为3~6。分别枚举每种边数的情况,只后减去不是连通图的情况22如下图所示,A到B是连通的。假设删除一条细的边的代价是 1,删除一条粗的边的代价是2,要让A、B 不连通,最小代价是_____(2 分),最小代价的不同方案数是_____(3 分)。(只要有一条删除的边不同,就是不同的方案)解析:求方案数时,先求将B点单独择的方案数,之后求将B点和其他点一起择出来的方案数。.

2020-08-26 16:06:19 767

原创 NOIP2017普及组初赛

NOIP2017普及组初赛14若串 S=“copyright”,其子串的个数是( 46)。解析 :长度为1的子串个数为9,长度为2的子串个数为8…注:还有一个空串!19

2020-08-26 15:36:20 1865

原创 NOIP2015提高组初赛

11具有 n 个节点,e 条边的图采用邻接表存储结构,进行深度优先遍历和广度优先遍历运算的时间复杂度为( O(ne)O(ne)O(ne) )。解析 遍历每条边(e)和每个节点(n)一次,所以时间复杂度为 O(ne)O(ne)O(ne)。13双向链表中有两个指针域,llink 和 rlink,分别指回前驱及后继,设 p 指向链表中的一个结点,q 指向一待插入结点,现要求在 p 前插入 q,则正确的插入为(p->llink_>rlink=q;q->rlink=p;q->lli

2020-08-26 14:58:53 253

原创 yzy666

总结666图论朴素/堆优化Dijkstra(正权边无环最短路)spfa算法(负权边无负环)Bellman-ford算法(负权边无负环)Kruskal算法(最小生成树)prim求最小生成树数据结构单链表双链表单调栈单调队列(滑动窗口)KMP算法trie字符串统计最大异或对合并集合格子游戏连通块中点的数量堆排序模拟堆模拟散列表字符串哈希合并集合搭配购买区间和排序快速排序第K个数归并排序逆序对的数量二分数的范围[数的三次方根染色法判定二分图二分

2020-07-31 16:36:26 299

原创 没有上司的舞会(树形DP)

没有上司的舞会(树形DP)题目描述大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 H现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。算法思想动态规划使用dp[u][0]dp[u][0]dp[u][0]和dp[u][1]dp[u][1]dp[u][1]其中dp[u][0]dp[u][0]dp[u][

2020-07-29 14:23:11 127

原创 最短Hamilton路径

最短Hamilton路径题目描述给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 00 到终点 n-1的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。输入第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0a[x,y]=a[y,x]a[x,y]+a[y,z]>=a[x,z]输出输出一个整数,表示最短Hamilto

2020-07-29 11:20:05 83

原创 最短编辑距离

最短编辑距离题目描述给定两个字符串AA和BB,现在要将AA经过若干操作变为BB,可进行的操作有:1.删除–将字符串AA中的某个字符删除。2.插入–在字符串AA的某个位置插入某个字符。3.替换–将字符串AA中的某个字符替换为另一个字符。现在请你求出,将A变为B至少需要进行多少次操作。算法思想状态表示:dp[i][j]表示将字符串A中前i个字符编辑成字符串B中前j个字符所要进行的最少操作删除:dp[i−1][j]+1dp[i-1][j] + 1dp[i−1][j]+1插入:dp[i][j

2020-07-28 15:45:04 117

原创 完全背包问题

完全背包问题题目描述https://www.acwing.com/problem/content/3/https://www.acwing.com/problem/content/3/https://www.acwing.com/problem/content/3/算法思想完全背包问题与01背包问题差别不大,只是多了一重循环。我们可以通过优化,来减少一重循环(枚举选择商品的数量)。时间复杂度O(M∗N)O(M*N)O(M∗N)(优化后)代码#include <bits/stdc++.h

2020-07-28 15:34:23 68

原创 01背包问题

01背包问题题目描述https://www.acwing.com/problem/content/2/算法描述f[i][j]f[i][j]f[i][j]记录容量为jjj是选择前iii件物品的最大价值。因为每个物品只有一个,所以只有选和不选两种选择。最后输出f[n][m]f[n][m]f[n][m],即容量为mmm时选择前nnn件物品的最大值。时间复杂度O(N∗M)O(N*M)O(N∗M)代码#include<bits/stdc++.h>using namespace std

2020-07-28 15:25:32 69

原创 堆优化版Dijkstra

题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。算法思想基于朴素Dijkstra算法 ,使用小顶堆来获得到起点距离最小且不在集合st内的点。之后松弛所有相邻的点。时间复杂度时间复杂度 O(m∗log(n))O(m*log(n))O(m∗log(n)), n 表示点数,m 表示边数。使用堆来找点,时间复杂度为log(n)log(n)log(n).j将每一个边访问一遍,时间复杂度为mmm。所以

2020-07-20 16:04:05 301 1

空空如也

空空如也

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

TA关注的人

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