自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 追逐影子的人,自己就是影子。 ——荷马

int n, m;i < n;i++) {LL w;cin >> w;n++;LL res = 0;LL sum = 0;i < m;i++) {heap.pop();res += sum;return 0;

2024-06-19 19:00:24 199

原创 雪花雪花雪花

int H() { //设计Hash函数。

2024-06-14 14:49:20 249

原创 兔子与兔子

/其实可以把字符串hash理解为base进制数。//字符串hash前缀和。//挺好用的一个hash base。

2024-06-13 13:20:26 297

原创 达达现在碰到了一个棘手的问题,有 N 个整数需要排序。达达手头能用的工具就是若干个双端队列

/ 上升的时候last更新为最大值,// 因为是sort(pair经过sort)过的, 因此minx一定这一段的第一个数的位置。if (last > maxx) { //如果上一个位置>当前的最大位置,if (dir == -1) { //如果是下降的, 如何做?// 第一条边一定是下降的, 因此dir初始化为-1(可以理解为是从上面接下来的)// 我们处理的时候是一个点一个点进行处理的(如果有相同的, 则处理一段,// 如果这一段的数字是相等的, 那么这些下标是可以随意变换的。

2024-06-12 11:44:40 359

原创 给定一个长度为 n 的序列 A,A 中的数各不相同。对于 A 中的每一个数 Ai,求:min1≤j<i|Ai−Aj|以及令上式取到最小值的 j(记为 Pi)。若最小值点不唯一,

if (it--!= s.begin() && ans.first >= a - (*it).first) {// 要找一个最接近的, 也就是差值最小的。

2024-06-11 15:50:53 373

原创 雪花雪花雪花

Problem:AcWing 137. 雪花雪花雪花。int H() { //设计Hash函数。

2024-06-09 16:01:08 408

原创 达达现在碰到了一个棘手的问题,有 N 个整数需要排序。达达手头能用的工具就是若干个双端队列。

/ 上升的时候last更新为最大值,// 因为是sort(pair经过sort)过的, 因此minx一定这一段的第一个数的位置。if (last > maxx) { //如果上一个位置>当前的最大位置,if (dir == -1) { //如果是下降的, 如何做?// 第一条边一定是下降的, 因此dir初始化为-1(可以理解为是从上面接下来的)// 我们处理的时候是一个点一个点进行处理的(如果有相同的, 则处理一段,// 如果这一段的数字是相等的, 那么这些下标是可以随意变换的。

2024-06-07 18:36:03 383

原创 蛐蛐国最近蚯蚓成灾了!

int main()i<=n;++i)i<=m;++i) {//tp += ofst;ofst += q;a1 -= ofst;a2 -= ofst;i<=n;i<=t1;i<=t2;int i = 0;while(!++i;pq.pop();return 0;

2024-06-06 23:27:20 348

原创 直方图中最大的矩形

/l[i], r[i]表示第i个矩形的高度可向两侧扩展的左右边界。

2024-06-06 08:36:17 181

原创 这里有 n 列火车将要进站再出站,但是,每列火车只有 1 节,那就是车头。

/ 回溯到上一层时需要将stk[]长度减1,以便还原状态。// tt为栈顶指针,remain记录已经输出的方案数。if (u > n) // 如果当前所有火车都已进站,则输出当前方案并返回。if (tt) // 如果栈非空,则可以让栈顶火车出站。// 将弹出的元素重新放回stk[]中。// 存储还未出站的火车。

2024-06-04 23:08:37 270

原创 你将要实现一个功能强大的整数序列编辑器。

if(op == 'I'){ //如果是第一个操作(往光标前插入一个数)else if(op == 'L'){ //把光标往左移动。else if(op == 'R'){ //把光标往右移动。else if(op == 'Q'){ //输出最大前缀和。

2024-06-03 09:30:51 427

原创 今天某公司有 M 个任务需要完成。每个任务都有相应的难度级别和完成任务所需时间。

/将时间足够的机器放到set中。

2024-06-02 10:36:29 241

原创 给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为 1×1 或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下

int main()int n;cin>>n;i <= n;i ++)j <= n;j ++)//同一列的前缀和//枚举边界1,2i <= n;i ++)j <= n;j++)//枚举边界pk <= n;k ++)cout<<res;return 0;/*数据范围0 <N <=100输入样例:40 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2。

2024-06-01 09:00:54 172

原创 有 n 个小朋友坐成一圈,每人有 a[i] 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 1。求使所有人获得均等糖果的最小代价。

int n;int c[N];i <= n;i <= n;i <= n;return res;i <= n;return 0;

2024-05-30 08:03:15 142

原创 农夫约翰希望为他的奶牛们建立一个畜栏。

/前缀和 因为x跟y最多会有1000个不同的坐标,所以开大一点避免溢出。//因为包括边界,所以左上角坐标需要-1。//因为相同的数字只需要一个离散化的结果。

2024-05-28 18:45:54 283

原创 输入中包含多组测试用例。第一行输入整数 T,代表测试用例的数量。对于每个测试用例,第一行输入整数 N。接下来 N 行,每行输入两个整数 X 和 Y,代表每个核电站的位置的 X,Y

if (points[i].x >= mid_x - ans && points[i].x <= mid_x + ans) // 如果说该点距离 mid_x 的距离小于 ans,那么需要考虑该点。// 下面第二层循环中,有 tmp[i].y - tmp[j].y <= ans 这个判断,才能保证我们对于每个点最多只考虑六个点。

2024-05-27 21:00:18 555

原创 分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。

if(u==1)g[0][0]=1;return;dfs(u-1);int len=1;i<u-2;i++)len*=3;i<4;i++)j<len;j++)k<len;k++)int main()int n;=-1)dfs(n);int len=1;i<n-1;i++)len*=3;i<len;i++)j<len;j++)cout<<endl;return 0;

2024-05-26 08:37:46 222

原创 占卜DIY

int cnt[N];int main()i <= 13;i ++ )j < 4;j ++ )char a;cin >> a;= '0')elseelsecntk ++;continue;cnt[t]++;ans++;return 0;

2024-05-25 21:22:02 370

原创 给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下:从集合 S 中取出 M 对数(即 2×M 个数,不能重复使用集合中的数,如果 S 中的整数不够 M 对,则取到不能取为

/ 双指针,i 指向当前集合中剩余的最小数,k 指向当前集合中剩余的最大数。while (start < n) // start < n 说明当前数组还有值,需要继续划分。// 二分完后,r 即当前可划分的最长区间的下一个位置,将 start 制为 r。// 要先把 w 的 [l, r] 这段复制到 t 中,用 k 记录 t 的长度。// w 是输入的数组,t 是用于求校验值的数组。ll get(int l, int r) // 求原数组区间 [l, r] 的校验值。// 存返回的校验值。

2024-05-18 17:08:18 347

原创 奇数码问题

T RR=1;FF=0;for(;!for(;FF*=RR;i<=n*n;i;return ans;}T[2];i<=n*n;i<=n*n;i>=1;i--){if(a[i]!if(b[i]!return 0;

2024-05-17 18:15:32 230

原创 超快速排序

int n;else {i <= r;return ans;i <= n;return 0;

2024-05-16 13:45:06 255

原创 依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数。输入格式第一行输入一个整数 P,代表后面数据集的个数,接下来若干行输入各个数据集。每个数据集的第一

'\n':' ');//每10个数换一行。if(i&1)//奇数。

2024-05-15 10:30:18 337

原创 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子。

ll c[maxn];ll ans = 0;i <= n;ans /= n;i <= n;c[1] = 0;i <= n;ll sum = 0;i <= n;return sum;i <= k;++i) {int l, r;} else {return 0;

2024-05-14 12:25:03 314

原创 在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的

/统计和中位数之间的差。

2024-05-13 20:46:36 325

原创 电影--离散化的应用

/a[i]中保存原始的稀疏编号,用find转变成稠密编号,并用ans数组记录每种语言出现的次数。//uni的数组下标做为每种语言(原有的1-10^9的稀疏编号)新的稠密编号。//算出第i个电影音频语言的科学家数,和第i个字幕语言的科学家数。//如果所有的电影的声音和字幕的语言,科学家们都不懂,随便选一个。//3*N是因为语言的来源有3个地方,假设都不相同,则有3*N种语言。//保存科学家会的语言,并用lang记录。//保存电影音频的语言,并用lang记录。//保存电影字幕的语言,并用lang记录。

2024-05-12 22:29:21 381

原创 电影--离散化的应用

/a[i]中保存原始的稀疏编号,用find转变成稠密编号,并用ans数组记录每种语言出现的次数。//uni的数组下标做为每种语言(原有的1-10^9的稀疏编号)新的稠密编号。//算出第i个电影音频语言的科学家数,和第i个字幕语言的科学家数。//如果所有的电影的声音和字幕的语言,科学家们都不懂,随便选一个。//3*N是因为语言的来源有3个地方,假设都不相同,则有3*N种语言。//保存科学家会的语言,并用lang记录。//保存电影音频的语言,并用lang记录。//保存电影字幕的语言,并用lang记录。

2024-05-11 13:07:01 425

原创 农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于 1 头,也不会超过 2000 头。约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量

/因为我们找的极大值 所以要右端点*1000 否则可能会出错。// 不是>>1 这里是实数。while(r - l > 1e-5) { //开始二分 因为是实数所以这里还搞个精度。//将问题转变为判定问题。} //最小左区间 最大右区间。

2024-05-10 16:49:31 323

原创 最高的牛。。。

bool r;int main()i<=n;i<=m;i++)r=true;j<i;j++)r=false;break;x[b[i]]++;i<=n;i<=n;i++)x[i]+=h;return 0;

2024-05-08 15:21:48 168

原创 奇怪的汉诺塔

d[1] = 1;i <= 12;i++)f[1] = 1;i <= 12;i++)j < i;j++)i <= 12;i++)return 0;

2024-05-07 11:54:34 137

原创 奇怪的汉诺塔

d[1] = 1;i <= 12;i++)f[1] = 1;i <= 12;i++)j < i;j++)i <= 12;i++)return 0;

2024-05-05 17:09:54 134

原创 递归实现组合型枚举

/到达枚举边界,输出结果并结束。

2024-05-04 09:20:58 256

原创 递归实现指数型枚举

/ 一共tar个坑,当前枚举到第pos个坑。// 选数填坑,选择的数范围是1~n。

2024-05-03 18:29:26 130

原创 给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个

/表示所有点都走过了,且终点是n-1的最短距离。k++)//k表示走到j这个点之前,以k为终点的最短距离。j++)//j表示走到哪一个点。f[1][0]=0;//因为零是起点,所以f[1][0]=0;//位运算的优先级低于'+'-'所以有必要的情况下要打括号。

2024-05-02 23:11:21 128

原创 将一个骰子投掷 n 次,获得的总点数为 s,s 的可能范围为 n∼6n。掷出某一点数,可能有多种掷法,例如投掷 2 次,掷出 3 点,共有 [1,2],[2,1] 两种掷法。请求

public:i <= n * 6;return res;if(!n) return!sum;i <= 6;i ++)return ans;

2024-04-30 21:18:12 58

原创 给定一个数组A[0, 1, …, n-1],请构建一个数组B[0, 1, …, n-1],其中B中的元素B[i]=A[0]×A[1]×… ×A[i-1]×A[i+1]×…×A[n-1]。

public:i<A.size();i++){i>=0;i--){i<A.size();i++){return B;

2024-04-29 07:31:42 368

原创 写一个函数,求两个整数之和,要求在函数体内不得使用 +、-、×、÷ 四则运算符号。

/取得num1和num2的第i位的值。//异或得到第i位的输出值。//传递到下一位的进位输入。//将第i位的输出值S加到res中。

2024-04-27 09:27:57 207

原创 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖 一次 该股票可能获得的利润是多少?例如一只股票在某些时间节点的价格为 [9,11,8,5,7,12,16,14]。如果我们能在价格为

public:i ++) {

2024-04-26 12:20:16 360

原创 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串“abcdefg“和数字 2,该函数将返回左旋转 2 位得到的结果“

public:

2024-04-25 16:12:21 110

原创 输入一个英文句子,单词之间用一个空格隔开,且句首和句尾没有多余空格。翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串“I am a st

/如果j是字符串末尾,则单词中加入s[j]。//如果不是字符串末尾,则结果中需要加入空格。//是字符串末尾,则不需要加入空格。return res;

2024-04-24 10:42:38 384

原创 输入一个非负整数 S,打印出所有和为 S 的连续正数序列(至少含有两个数)。例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以结果打印出 3 个连续序列 1∼5、

public:i <= sum;i ++ )k <= j;s -= i;return res;

2024-04-22 11:56:48 120

空空如也

空空如也

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

TA关注的人

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