自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P3370 【模板】字符串哈希

关于进制的选择实际上非常自由,大于所有字符对应的数字的最大值,不要含有模数的质因子(那还模什么),比如一个字符集是a到z的题目,选择27、233、19260817 都是可以的。它的主要思路是选取恰当的进制,可以把字符串中的字符看成一个大数字中的每一位数字,不过比较字符串和比较大数字的复杂度并没有什么区别(高精数的比较也是。O(n)的),但只要把它对一个数取模,然后认为取模后的结果相等原数就相等,那么就可以在一定的错误率的基础上O(1)进行判断了。

2024-07-11 17:13:37 302

原创 P1030 [NOIP2001 普及组] 求先序排列

代码如下cout<<ch;//找根输出//递归左右子树;cin>>inord;//读入cout<<endl;return 0;

2024-07-10 19:54:52 176

原创 P1801 黑匣子

【代码】P1801 黑匣子。

2024-07-08 16:50:50 205

原创 P3378 【模板】堆

【代码】P3378 【模板】堆。

2024-07-08 16:47:21 771

原创 P1038 [NOIP2003 提高组] 神经网络

【代码】P1038 [NOIP2003 提高组] 神经网络。

2024-07-06 17:57:21 370

原创 P1037 [NOIP2002 普及组] 产生数

DFS的理论时间复杂度为指数级,即O(2^k),但本题中每个数字只搜索一次,重复的直接return,因此每一位实际的时间复杂度仅为O(n)dfs(a[0]),b[0]=0;//先搜索最高位,因为最高位不能为0。Floyd的时间复杂度为O(n^3),此处n为10(表示0-9每个数字)本题中注意整数n要用字符串读入,用long long会爆,用int128。i++){//搜索其余位。void out(lll x){//int128输出要自己写。

2024-07-06 17:54:29 269

原创 P5076 【深基16.例7】普通二叉树(简化版)

动排序,还不会像set一样去重,然后用lower_bound和upper_bound去二分查找相应的值就可以。他小的,或者后面一个比他大的,也就是维护一个单调队列,那stl中有个好东西呀,multiset,自。了,但这题有个坑点,要是没有后继的话,需要输出2147483647,(题目也没说呀,导致我第一。遍就40分),所以在开始前,先手动添加一个2147483647作为最大值,这样即使本来没有后继。正解肯定是BST,但我不会BST,这可咋办嘛 读了一遍题,发现其实主要操作就是找前面一个比。

2024-06-24 11:31:24 152

原创 P5076 【深基16.例7】普通二叉树(简化版)

【代码】P5076 【深基16.例7】普通二叉树(简化版)

2024-06-10 15:16:48 96

原创 P2671 [NOIP2015 普及组] 求和

设一个分组里有k个数,这个分组中的数分别是x[1],x[2]……x[k],下标分别是y[1],y[2]……所以我们可以模拟x,y,z,其时间复杂度为O(n^3),由于n<=100000所以一定会超时。然后事先将y[1]+y[2]+……+y[k]求出,用的时候调用就行了,其时间复杂度为O(n)根据题目,我们可以设有三个下标,他们分别是x,y,z,要满足x<y<z且y-x=z-y。所以我们其实只要穷举x和z就行了,但这个方法的时间复杂度为O(n^2)所以还是会超时。由此我们可以得到2y=z+x。

2024-06-09 15:19:21 110

原创 P1011 [NOIP1998 提高组] 车站

【代码】P1011 [NOIP1998 提高组] 车站。

2024-05-26 14:16:33 244

原创 P1008 [NOIP1998 普及组] 三连击

【代码】P1008 [NOIP1998 普及组] 三连击。

2024-05-26 14:13:14 406

原创 P1007 独木桥

【代码】P1007 独木桥。

2024-05-26 11:09:55 249

原创 P1005 [NOIP2007 提高组] 矩阵取数游戏

【代码】P1005 [NOIP2007 提高组] 矩阵取数游戏。

2024-05-19 15:09:48 220

原创 P1006 [NOIP2008 提高组] 传纸条

然后解释一下输出 f[n-1][n] 是因为j>i的去重需要。

2024-05-19 15:01:02 214

原创 P1015 [NOIP1999 普及组] 回文数

【代码】P1015 [NOIP1999 普及组] 回文数。

2024-05-19 14:48:37 157

原创 P1540 [NOIP2010 提高组] 机器翻译

【代码】P1540 [NOIP2010 提高组] 机器翻译。

2024-05-18 10:44:30 219

原创 P1160 队列安排

【代码】P1160 队列安排。

2024-05-18 10:42:52 517

原创 P1160 队列安排

【代码】P1160 队列安排。

2024-05-12 10:49:51 346

原创 P1996 约瑟夫问题 题解

【代码】P1996 约瑟夫问题 题解。

2024-05-12 10:46:34 133

原创 P1876 开灯

【代码】P1876 开灯。

2024-05-05 15:21:11 241

原创 P1867 【Mc生存】经验值

【代码】P1867 【Mc生存】经验值。

2024-05-05 15:19:28 215

原创 P1838 三子棋I

【代码】P1838 三子棋I。

2024-05-05 15:16:54 92

原创 P1830 轰炸III

【代码】P1830 轰炸III。

2024-05-05 15:15:13 114

原创 P1749 [入门赛 #19] 分饼干 II

1,2,3,⋯,k] 需要的糖果数量是最少的,考虑等差数列求和公式,其和为 k×(k+1)/2。只需要判断 k×(k+1)/2 是否大于 n 即可,如果大于,则分不了。因为每名小朋友的饼干数量都 >0,且都互不相同。考虑求出分饼干数量的最小值。注意开 long long!

2024-05-05 15:13:29 61

原创 P1615 西游记公司

【代码】P1615 西游记公司。

2024-05-05 15:06:22 387

原创 P1449 后缀表达式

【代码】P1449 后缀表达式。

2024-05-05 14:47:43 9

原创 P3613 【深基15.例2】寄包柜

【代码】P3613 【深基15.例2】寄包柜。

2024-05-05 14:42:01 9

原创 P3156 【深基15.例1】询问学号

【代码】P3156 【深基15.例1】询问学号。

2024-05-05 14:34:50 163

原创 P1825 [USACO11OPEN] Corn Maze S

【代码】P1825 [USACO11OPEN] Corn Maze S。

2024-05-04 15:19:49 253

原创 P1032 [NOIP2002 提高组] 字串变换

【代码】P1032 [NOIP2002 提高组] 字串变换。

2024-05-04 15:13:30 169

原创 P1162 填涂颜色

为什么都是BFS,难道DFS不够简洁吗。。。(可能是因为我不会BFS吧)言归正传,这种题第一眼应该就可以看出求联通快,于是。。。从边界为起点,把所有0搞成1,然后……好像除了输出就没然后了#include<iostream>#include<cstdio>using namespace std;int a[100][100],b[100][100]={0};int n,x,y;void dfs(int x,int y){ if(x>n||x<1||y>n||y<1||a[x][y]!=0)

2024-05-04 15:00:13 334

原创 P1596 [USACO10OCT] Lake Counting S 题解

值得一提的是,加上快读等优化以后已经做到stl队列能运行时间的极致了,然而提交就算开O2优化还是会有两个测试点被T。很多人只会拿DFS写,那我来写写这两种解题方法,再分析一下深搜和广搜的优缺点。优点:同级优先搜索,在求最优解的时候可以避免许多无用的搜索,提高效率、可以避免递归。BFS就是维护一个队列,以一个点往四周搜索,如果符合条件的话就把它放进队列里。这就需要我们手写队列了以及各种优化了,但是这个代码适合bfs的初学者理解。缺点:不好写,易出问题,用stl写队列很慢。优点:好写,不易出错,浅显易懂。

2024-05-03 11:17:23 530

原创 P2404 自然数的拆分问题 题解

很典型的一道深搜,一路搜到底得到一种方案,本次方案排列完毕后,回溯搜索下一方案。

2024-05-03 10:50:05 204

原创 P1605 迷宫

首先告诉大家一个好消息:bits/stdc++.h在复赛可以使用了。其次看这道简单的题目,我的策略是不考虑边界,直接初始化,将边界当作障碍。附上程序。#include<bits/stdc++.h>using namespace std;int q[101][101];int sum=0;int i,j,n,m,t,sx,sy,x,y,ex,ey;void dfs(int a,int b){ if (a==ex&&b==ey)//终止条件 { sum++;

2024-05-03 10:42:22 272

原创 P1019 [NOIP2000 提高组] 单词接龙

首先在题意上可能有些误解。两个单词合并时,合并部分取的是最小重叠部分相邻的两部分不能存在包含关系就是说如果存在包含关系,就不能标记为使用过。每个单词最多出现两次.(其实也就是读题问题。这些都是我所犯的错误,希望大家能注意一下)好了。然后是解题思路。首先是预处理,用yc[i][j]来存储 第i个单词 后连接 第j个单词 的 最小重叠部分(mt函数)后来预处理完了之后就是深搜:先从第一个到最后一个单词看一看哪个单词是指定字母为开头的,作为深搜的第一个单词,同时标记使用过一次(vis[i]++)然后继续搜吧。以

2024-05-03 10:38:25 275

原创 P1433 吃奶酪

好像没有人用状压DP啊……个人更喜欢这种复杂度比较确定的做法。设f[i][s]表示从i点出发遍历集合为s的点的路程最小值(i也包括在s里),枚举s里的其他点进行转移。边界为f[i][s]=0(s中只有i)。注意最后答案要加上到(0,0)的距离。时间复杂度O(n*2^n)#include<cstdio>#include<cmath>#include<cstring>typedef double db;db x[20],y[20],f[20][35000];template<class T> T mi

2024-05-03 10:36:39 95

原创 P9343 一曲新词酒一杯

题目思路定义两个 set 容器 first 和 second 分别表示第一和第二种操作。set 容器的好处是可以自动去掉重复的数字。我们可以想到,在以下三种情况能够全部贴上红纸:对于 1 到n 的数都有一次操作1;对于一个数 x,一次操作 1 和一次操作 2;两次及以上不相同的操作 2。接下来我们就可以实现代码了。对于第 i 次操作,记输入的数为 x。如果是操作 1,first 插入 x,否则 second 插入 x。插入后,我们就判断,当 first 的大小为 n 或者 first 和 seco

2024-05-01 19:30:50 145

原创 P1135 奇怪的电梯

1:dis[k]);(A,0),然后把上、下入队(合法的话),直到第一次出现 B,其实就是不记录。dis 还不排序的 Dijkstra,记得打标记。if(i+v<=n)//判断越界。非负),可以不考虑判断负环(但是代码里还是有)。模板 SPFA 判断负环,关于 SPFA。由于本题目边权均为 1。

2024-04-27 15:46:54 879

原创 P1443 马的遍历

STL大法好!!取百家所长成一家之言!!介绍一下用STL模板库 <queue>来广搜这道题广搜什么的自然不同我介绍; 我来介绍一下非常好用但没人用的pairqueue<pair<int,int> > q;它可以将两种数据类型的值组合成一个值存入队列中大体是这样操作:queue<pair<int,int> > q;//定义q.push(make_pair(x,y));//入队//取队首xx=q.front().first;//第一个值yy=q.front().second;//第二个值q.po

2024-04-27 15:42:37 223

原创 P3853 [TJOI2007] 路标设置

此题为二分求最优解的模板对于任意一个给出的“空旷指数”G,我们应该怎样去判断它是否符合题目的意思呢?我们可以想象,我们已知了这条路上的所有的路标,我们从头开始枚举两两相邻的路标的间距,如果大于G,那么已经不符合G为最大距离的条件了,为了使G满足,我们就可以在前一个路标前面G米处加一个路标,这样与前面一个就符合条件了,再判断新设的路标和后面的路标是否距离小于G,如果不,继续重复操作设置新路标当新设的路标数已经超过题目所给最大增设值时,如果还有路标不满足G,但已经不能设置新路标了,所以该G值就不满足条件。相反,

2024-04-25 15:17:49 307

P8898 [USACO22DEC] Feeding the Cows B 题解.docx

P8898 [USACO22DEC] Feeding the Cows B 题解.docx

2024-02-14

空空如也

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

TA关注的人

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