自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最小生成树

【代码】最小生成树。

2024-04-08 19:02:55 92

原创 带权并查集

有 n 个同学(编号为 1 到 n )正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 Ti 的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息, 但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自 己的生日时,游戏结束。请问该游戏一共可以进行几轮?

2024-03-31 10:41:33 286

原创 并查集知识点

老师想从n名学生中选m人当学霸,但有k对人实力相当,如果实力相当的人中,一部分被选上,另一部分没有,同学们就会抗议。第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Mi和Mj具有亲戚关系。一行,表示既不让同学们抗议,又与原来的m尽可能接近的选出学霸的数目。第一行,三个正整数n,m,k。

2024-03-24 09:41:12 625

原创 折半搜索补题报告

Bobek 已经抵达布拉格,他不是任何团队的粉丝,也没有时间观念。如果他有足够的钱,他会去看所有的比赛。不幸的是,他的财产十分有限,他决定把所有财产都用来买门票。给出 Bobek 的预算和每场比赛的票价,试求:如果总票价不超过预算,他有多少种观赛方案。第一行,两个正整数 N 和 M(1≤N≤40,1≤M≤10^​18​​),表示比赛的个数和 Bobek 那家徒四壁的财产。第二行,N 个以空格分隔的正整数,均不超过 10^16,代表每场比赛门票的价格。计算路径上的权值的异或和,求异或和等于。

2024-03-17 08:59:35 843

原创 补题报告3

#include<bits/stdc++.h>using namespace std;int t,n,k,x;int main(){ cin>>n>>t; cin>>k; int l=1,r=n; while(l<r){ int mid=(l+r)/2; cout<<"?"<<1<<" "<<mid<<"\n"; int x; cin>>x; if(mid-x<k){

2024-03-10 09:56:49 316

原创 字符串算法习题分析

一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串。一个串 P 是串 A 的前缀, 当且仅当存在串 B, 使得 A=PB。如果 并且 P 不是一个空串,那么我们说 P 是 A 的一个proper前缀。定义字符串 Q 是 A 的周期, 当且仅当 Q 是 A 的一个proper前缀并且 A 是 Q+Q 的前缀(不一定要是proper前缀),若这样的字符串不存在,则 A 的周期为空串。比如串abab和ababab都是串abababa的周期。

2024-02-05 20:16:02 378

原创 补题报告1

#include#include#includeusing namespace std;string a[1003],s;struct node{ int l,r,id;}z[150][150][150];bool v[150][150][150];int dp[1003];int n,m;int main(){ int t; cin>>t; while(t--){ memset(dp,

2024-02-04 14:10:12 1321

原创 单调栈知识

给定一个N,表示一个序列的长度,然后输入这个序列,输出序列每个元素的左边最近的比它小的数字,如果不存在则输出-1。输入包含两行。第一行一个N,表示序列长度。第二行输入N个数字,表示序列。对应序列每个元素,均输出其左边最近的比它小的元素。

2024-02-04 14:01:31 732

原创 单调队列知识

给你一个大小为 n 的数组。有一个大小为k的滑动窗口从数组的最左边移动到最右边。您只能在窗口中看到k 个数字。每次滑动窗口向右移动一个位置。下面是一个例子:数组是[1 3 -1 -3 5 3 6 7],k是3。你的任务是确定滑动窗口中每个位置的最大值和最小值。输入由两行组成。第一行包含两个整数n和k,它们分别是数组和滑动窗口的长度。第二行有n 个整数。输出中有两行。第一行分别给出了窗口中每个位置的最小值,从左到右。第二行给出最大值。

2024-02-04 13:54:59 785

原创 字符串哈希

现在有一条密文,前一半为经过加密的字符,后一半为前一半加密前的字符。不过由于某些原因导致文末的部分内容消失了,你现在的任务是,恢复出最短的完整的密文。,可以得到一个128进制的数(每一位上的数字都在0~127中),再将这个128进制的数转成对应的十进制,就可以得到对应的哈希值。然后是 n 行,每行代表一个字典条目,包含一个英语单词,后面是一个空格和一个外语单词。给你有 2626 个字母的密码表 S,S[i] 表示第 i 个字母经过密码表转变成的密码字符。输出是翻译成英文的信息,每行一个词,共 m 行。

2024-02-04 13:48:28 1763

原创 补题报告2

#include<bits/stdc++.h>using namespace std;int a[105],t,n;int main(){ cin>>t; while(t--){ cin>>n; int minn=101,maxx=0; int m1,m2; for(int i=1;i<=n;i++){ cin>>a[i]; if(maxx<a[i]){

2024-02-04 13:34:23 1648

原创 KMP进阶

Yifenfei和魔王lemon的挑战很简单:由lemon给出三个字符串,然后要yifenfei说出第一串的某个子串,要求该子串长度最小,并且同时包含第2个串和第3个串。给你一个字符串 s​1​​,它是由某个字符串 s​2​​ 不断自我连接形成的(保证至少重复 2 次)。但是字符串 s​2​​ 是不确定的,现在只想知道它的最短长度是多少。第二行给出字符串 s​1​​ 的一个子串,全由小写字母组成。特别地,如果有多个这样的子串,则请输出字母序最小的一个。仅一行,表示 s​2​​ 的最短长度。

2024-02-03 21:00:32 743

原创 哈希冲突hash

Hash Killer II#include<bits/stdc++.h>using namespace std;int n=100000,l;long long a[100005];string s;int main(){ srand(time(0)); for(int i=1;i<=n;i++){ char c=rand()%26+97; s+=c; } l=20; cout<<n<

2024-02-03 11:00:37 308

原创 KMP算法

#include<bits/stdc++.h>using namespace std;int Next[1000005];int main(){ string s1,s2; cin>>s1; cin>>s2; s1=" "+s1; s2=" "+s2; int i,j; for(Next[1]=j=0,i=2;s2[i];i++){ while(j&&s2[i]!=s2[j+1]){ j=Next[j];

2024-02-02 19:26:10 743 1

空空如也

空空如也

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

TA关注的人

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