自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 P3398 仓鼠找sugar(LCA,树剖)

题目描述小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n。地下洞穴是一个树形结构。这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c)到图书馆(d)。他们都会走最短路径。现在小仓鼠希望知道,有没有可能在某个地方,可以碰到他的基友?小仓鼠那么弱,还要天天被zzq大爷虐,请你快来救救他吧!输入格式第一行两个正整数n和q,表示这棵树节点的个数和询问的个数。接下来n-1行,每行两个正整数u和v,表示节点u到节点v之间有一条边。接下来q行,每

2020-12-06 09:42:39 1215 4

原创 最简单的次短路算法

最简单的次短路算法(2020-01-01)找次短路步骤起点s,终点t;找s到每个点的最短路并用dis1数组记下来;找t到每个点的最短路并用dis2数组记下来;访问每条边,用u表示这条边的起点,v表示这条边的终点,w表示权值,用k记下s到u的最短路加上v到t的最短路再加上w;比较k和dis1[ t ]的大小,如果k > dis1[ t ],就与ans比较,如果小于ans,则更新...

2020-01-01 17:09:39 1826

原创 C++扫雷小游戏及其算法实现

如果编译时出现了什么问题,欢迎在评论区留言,或者私信问我,我会及时解答您的疑惑的😊。

2023-12-12 16:04:35 589

原创 关于用scanf(“%d“,)时非法字符输入导致的死循环的原因及解决方法

(0<n<20),需要考虑非法字符输入的情况。若输入非法字符或者不在合法区间,则重新输入。题目要求输入一个整数。

2023-09-09 10:58:16 1686

原创 A. Tenzing and Tsondu(数学,贪心,二叉搜索树)

【代码】A. Tenzing and Tsondu(贪心,二叉搜索树)

2023-07-31 10:48:25 224

原创 Bzoj3687简单题(bitset)

题意给定一个含nnn(n<1000n<1000n<1000)个正整数(Σa\Sigma{a}Σa≤2e6≤2e6≤2e6)的集合,求其子集和的异或和。思路枚举子集显然是会超时的,考虑换一种思路。注意到集合内数的总和范围不是很大,所以可以考虑从值域下手,即判断每种可能的和sss是否会对答案产生贡献,因为仅当sss出现次数为奇数s才会产生贡献,所以只需记录每个sss出现的次数。这时,神奇的bitset就派上用场了,用bitset的第sss位记录和sss是否对答案产生贡献,最后把能产

2021-11-09 10:45:23 244

原创 CF1592C Bakry and Partitioning

题意给定一棵有nnn个节点的树,求删去111~kkk−-−111条边后,是否能让形成的各个连通块的异或和相同。做法令所有点的异或和为mmm,观察发现当m=0m=0m=0时,删去任意一条边都是可行方案;当m!=0m!=0m!=0时,删去边后得到的各个连通块的异或和都是mmm。考虑上述第二种情况,我们发现此时连通块的个数一定是奇数,所以至少要删去两条边,所以当k=2k=2k=2时显然是无法符合题意的。我们还可以发现连通块的个数一定是3个,因为大于3个时可以通过合并任意偶数个连通块来使个数变成3个。

2021-10-09 15:31:16 138

原创 CF1575A Another Sorting Problem

题意给nnn个长度为mmm的stringstringstring型数组按照如下规则排序:对于偶数位按字典序升序排序;对于奇数位按字典序降序排序。做法显然是不容易构造出一个可行的自定义cmp函数的。于是可以想到对题意进行转化,即考虑是否可以把两种情况归并为一种情况。考虑将降序排序转化成升序排序,可以将奇数位上的字母c进行转化:‘A’->‘Z’,‘Z’->‘A’,即变成'Z'-(c-'A')。然后就可以统一进行排序了。代码#include<cstdio>

2021-10-07 16:07:23 231

原创 1557C Moamen and XOR

题目链接题意给出非负整数 n,k,构造长度为 n 的数组 a ,使得对任意的 i ,a1a_1a1​ < 2k都成立,并且数组 a 满足求合法的数组 a 的个数,答案对1 000 000 007取模。思路利用容斥思想,考虑不合法的情况,即小于的情况(因为这样不用考虑等于的情况)。因为是二进制运算,所以可以先考虑一位的情况,通过分析发现:1&1=1 > 1^1=01&0=0 < 1^0=10&0=0 = 0^0=0然后可以得出结

2021-08-10 18:29:37 147

原创 2021-08-09

「数学基础」第6章 期望问题A. 【例题1】单选错位:简单的期望。B. 【例题2】期望分数:期望DP,注意读入字符为'\n'的情况。C. 【例题3】路径长度:简单的图上的期望路径长度问题。

2021-08-09 09:49:38 134

原创 2021-08-08

「字符串算法」第5章 AC自动机A. 【例题1】单词查询:AC自动机模板。B. 【例题2】单词频率:注意单词会重复。洛谷上同一题需要进一步优化,fail不能再一步一步跳了。C. 【例题3】前缀匹配:匹配文本串,标记经过的点,最后再把每个模式串再匹配一下更新答案。D. 【例题4】屏蔽词删除:不需要跳fail;查找屏蔽词时用栈,每次找到后就回溯。...

2021-08-08 10:55:24 141

原创 2021年暑假集训总结

一、基础算法递推、贪心、二分掌握较好,可以提高难度。深搜、广搜及相应的剪枝掌握较差,需要加强。二、字符串算法经过这次集训,对字符串的处理的掌握更深了。Hash以及KMP再次复习了一下,还需要加强。AC自动机需要学一下,这一块几乎没学。三、图论对于并查集,掌握较好,可以提高难度。最小生成树也应加强练习。最短路可以提高难度。强连通分量要加强难度。四、数据结构堆 基本都是用优先队列做的,需要再掌握一下堆的操作。RMQ要善于应用,应加强应用类的。树状数组需更深入的了解其本

2021-07-25 10:18:22 309

原创 2021-07-23

一、上午复习了几道例题。二、下午复习了较简单的练习。三、晚上学了下Lucas,做了几个题。

2021-07-23 21:31:17 95

原创 2021-07-22

一、上午只有一个小时。二、下午做得质数只剩一题。三、晚上做完质数的题,第一个。

2021-07-22 22:00:54 84

原创 2021-07-21

一、上午差不多做了三题。二、下午D. 【例题4】炮兵阵地:忘了初始化,调了好久;然后在洛谷上交,交了24次才过,而这24份代码只有数组大小不同,特别玄学的错误,离谱!

2021-07-21 15:45:52 96

原创 2021-07-20

一、上午注意输入是否打错。做了树形DP的四道例题。

2021-07-20 11:25:42 105

原创 2021-07-19

一、上午B. 【例题2】货币系统:巧妙地转化成背包去做。

2021-07-19 10:45:19 128

原创 2021-07-18

一、上午只有一个小时,做了3题半。二、下午C. 【例题3】公园遛狗:卡一个多小时,发现忘了更新代表的区间端点。

2021-07-18 15:38:11 105

原创 2021-07-17

一、上午D. 【例题4】工作安排:和并查集里的超市购物差不多,但是d,p范围都好大,所以需要离散化,但要注意记录下原d数组的差。

2021-07-17 10:59:30 120

原创 2021-07-16

一、上午B. 【例题2】负环判断:玄学错误,queue<int>q每次重新定义 才55分,而只定义一次却有100分。按道理来说因为有这个if(sum[u]==n-1) return 1;所以当上一组数据存在负环时,队列不会清零,那么应该会影响后续数据的呀?更离谱的是洛谷上能过啊!...

2021-07-16 10:35:44 101

原创 2021-07-15

一、上午过了6题。二、下午过了3题。暂时榜首。做数列询问80分。三、晚上终于通过取巧过了数列询问,只排在第二位了,虽然同是第一。第一次做完某章所有题。

2021-07-15 19:46:04 97

原创 并查集的神奇应用

题目描述在一条数轴上有n个点,分别为 1~ n。一开始所有的点都被染成黑色。接着进行m 次操作,第i 次操作将l ~ r 这些点染成白色。请输出每个操作执行后剩余黑色点的个数。思路显然可以用线段树来做,但是会超时,这里讲一种并查集的做法。我们可以用并查集维护每个点右边的第一个黑色点的位置,然后对于每次操作我们就可以很快地知道这次操作使该区间多少个点变成了白色。其实这种思路和这道题很像,都是用并查集来优化的。核心代码int l=read(),r=read();if(!f[l]) ans

2021-07-15 15:40:05 160

原创 2021-07-14

一、上午二、下午单词拼接:注意n,为此调了两个小时,注意两个单词可以是同一个。

2021-07-14 21:20:33 106

原创 2021-07-13

一、上午(字符串处理)数字反转:新知识:sscanf(s,"%d",&n);//将字符串s转化成数字n,字符串前面的负号保留,后面的不保留,如果读入非数字则中断 sprintf(s,"%d",n);//将数字n转化成字符串s ...

2021-07-13 10:06:07 90

原创 2021-07-12

一、二分算法防具布置:long long!!!

2021-07-12 22:09:03 73

原创 2021-07-11

一、递推算法无限序列:和斐波那契数有关,观察发现规律。平铺方案:注意高精加法。二、贪心算法雷达装置:转化为区间覆盖问题。畜栏预定:诡异的结构体优先队列排序。最大积分:题目描述有误,若在第i个等级购买了ti件物品应该为若总共购买了ti件物品;等级m能变成m+1。出栈序列:若右侧有数a[k]大于栈顶的数s[top],则从当前数a[i]到a[k]全部入栈;否则出栈。最后要把栈中的数都输出。...

2021-07-11 21:59:44 75

原创 优先队列结构体排序

struct node{ int r,n; node (int a,int b):r(a),n(b){}//记住就行 bool operator < (const node a)const{//重载运算符 return a.r<r; }}; priority_queue<node>q;q.push(node{r,n});

2021-07-11 18:47:13 231

原创 P6560 [SBCOI2020] 时光的流逝(博弈论,拓扑排序)

题目链接思路显然这是道博弈论的题,而且是图上的。我们可以在图上标记必胜点和必败点,显然终点是必败点,所有没有出边的点是必败点。我们可以发现规律:能到必败点的一定是必胜点;只能到必胜点的是必败点。起点状态未知,终点状态已知,所以我们可以从已知的必败点开始按照拓扑序反向bfs,判断每个点的状态。代码1(我有点没搞明白)#include<cstdio>#include<queue>#include<cstring>#define ri register

2021-07-08 20:15:45 229

原创 博弈论题单

我的博弈论题单

2021-07-06 16:44:32 184

原创 P1488 肥猫的游戏(博弈论)

题目链接思路通过对四边形、五边形、六边形的模拟我们可以知道,野猫是否能赢只与黑色三角形的位置有关,我们只需要知道黑色三角形的每条边各需要切多少次才能成为裸露的,显然有几个顶点就需切几下,这个操作很简单,详细见代码。然后我们就可以找规律了,我们用(a,b,c)表示黑色三角形的三边外分别有a,b,c个顶点。显然(0,0,k),(0,k,0),(k,0,0)(k为任意正整数)这三种状态是必胜态。(注意这一类不可包括在下一类当中)显然(0,1,1),(1,0,1),(1,1,0)是必败态。(0,b,c

2021-07-03 10:59:51 433

原创 UVA1343 旋转游戏 The Rotation Game(IDA*)

题目链接(原题地址链接)思路这是一道比较显然的IDA*题,只是对读入预处理及操作处理比较麻烦注意剪枝:排除等效分支。代码#include<cstdio>#define ri register intusing namespace std;int a[8][8];int n[25],tong[10];char ans[100];char c[9]={'\0','A','B','C','D','E','F','G','H'};int fan[9]={0,6,5,8,7,2

2021-07-02 22:00:04 189 1

原创 P3959 [NOIP2017 提高组] 宝藏(随机化贪心)

题目链接思路可以利用random_shuffle()将打通宝藏屋的顺序随机出来,然后贪心求解即可。即 假如要打通第i个宝藏屋,那么从已打通的宝藏屋中选出打通道路花费最小的即可。代码#include<cstdio>#include<cstring>#include<algorithm>#define int long long#define ri register int#define min(a,b) a<b?a:b#define inf

2021-06-29 20:19:10 220

原创 P3959 [NOIP2017 提高组] 宝藏(状压DP)

#include#include#include#define ri register int#define min(a,b) a<b?a:b#define max(a,b) a>b?a:busing namespace std;int n,m,ans,maxd;int w[15][15];int f[15][1<<13];int Accessible[1<<13];int pd[15],flag[15],d[15];int s[1<<

2021-06-23 17:26:18 210

原创 区间DP题单

洛谷区间DP题单

2021-06-08 16:01:20 231

原创 P2831 [NOIP2016 提高组] 愤怒的小鸟

题目链接正解O(Tn22n)把所有可能的抛物线都枚举出来,然后DP,保证这些抛物线不重复经过某个点。注意精度!#include<cstdio>#include<cstring>#define ri register int#define min(a,b) a<b?a:b#include<cmath>using namespace std;const double ep=1e-6;double x[18],y[18];int dp[1&l

2021-06-06 16:54:57 209

原创 P3226 [HNOI2012]集合选数

题目描述《集合论与图论》这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中。同学们不喜欢这种具有枚举性 质的题目,于是把它变成了以下问题:对于任意一个正整数 n<=100000,如何求出{1, 2,…, n} 的满足上述约束条件的子集的个数(只需输出对 1,000,000,001 取模的结果),现在这个问题就 交给你了。输入格式只有一行,其中有一个正整数 n,30%的数据满足 n<=20。

2021-06-06 09:32:45 228 2

原创 概率与期望题单

概率与期望题单

2021-04-03 17:11:57 197

原创 C++中的cmath和string常用函数

一、c++ cmath常用库函数绝对值函数abs、fabs、labs四舍五入函数round取上整函数ceil取下整函数floor常用三角函数sin、cos、tan、asin、acos、atan对数函数log、log10指数函数pow、pow10平方根函数sqrt二、C++中的String的常用函数用法总结string读入用getline(包括空格)或者cin(不包括空格)。该博客内容string的构造函数的形式string的大小和容量:size()和length()st

2021-04-03 09:37:08 421

原创 矩阵乘法应用小结

一、矩阵快速幂P3390 【模板】矩阵快速幂。二、矩阵加速DPP1939 【模板】矩阵加速(数列)。P1962 斐波那契数列。P1349 广义斐波那契数列。P1306 斐波那契公约数,斐波那契数列的性质。P5343 【XR-1】分块,DP。P2044 [NOI2012] 随机数生成器,龟速乘。P5550 Chino的数列。P4910 帕秋莉的手环,P4838 P哥破解密码,DP。P2129 L国的战斗续之多路出击,移动坐标系。P3216 [HNOI2011]数学作业 ,分段进行

2021-03-09 16:52:30 157

原创 P3870 [TJOI2009]开关(分块)

http://hzwer.com/8053.html

2021-02-03 11:46:07 221

C++扫雷小游戏实现及其算法(汇报ppt)

ppt讲的是用C++在Visual Studio上实现的扫雷小游戏,里面含有整个程序的完整代码及游戏演示。

2023-12-12

2020-2021学年度高中数学期中考试卷-1e36572b200e4029a8c3b59a9e149c69.docx

2020-2021学年度高中数学期中考试卷-1e36572b200e4029a8c3b59a9e149c69.docx

2021-03-06

csp各知识点题目大全.xls

csp各知识点题目大全.xls

2020-12-16

空空如也

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

TA关注的人

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