摘要: C - Comfortable Distance 原题指引 运行时间限制: 2 秒 / 内存限制: 1024 MiB 分数 : 300 分 问题描述 给定由英文字母小写组成的长度为 N 的字符串 S。 请求满足以下所有条件的整数对 (i, j) 的个数。 1≤i≤j≤N S_i = S_j L≤j− 阅读全文
posted @ 2026-03-22 09:35 msjing 阅读(3) 评论(0) 推荐(0)
摘要: 前排提示: 本题解也包含简单版的东西且此题只在hzoj上找到 solve 非常阴的题 由于馅饼下落的时间和速度都不同,⼈只能向左右移动,馅饼只能向下移动。⼈和馅饼都同时移动,思考起来⽐较复杂,因此我们需要转变思路: 算出每个时刻落到最底层的每个格⼦有多少分值的馅饼 如果将馅饼当成参照物,则馅饼向下落 阅读全文
posted @ 2026-03-22 09:34 msjing 阅读(3) 评论(0) 推荐(0)
摘要: solve 要跑两遍dp 要不然从左右端点转移不过来 注意左下的转移是从j而不是从j+1(可以理解为金字塔但不是金字塔,而是样例给的样子) Code #include<bits/stdc++.h> using namespace std; const int maxn=1010; int dp[ma 阅读全文
posted @ 2026-03-22 09:34 msjing 阅读(1) 评论(0) 推荐(0)
摘要: solve 我是没看出来和传纸条有什么区别的 n<=9,直接四层循环 转移方程:(白嫖毛竹老师的) 那和传纸条有什么区别呢 输入有区别还用你说 当i1 == i2 && j1 == j2时,不是continue了,而是只加g[i1][j1](g[i1][j1]和g[i2][j2]一样而取过数后要改为 阅读全文
posted @ 2026-03-22 09:32 msjing 阅读(1) 评论(0) 推荐(0)
摘要: solve 首先,们可以将题目转化为类似此题:Fire(有区别但是差不多但是不能这么解),考虑dp 转移方程:dp[i]=max(dp[i],dp[j]+v[i]); 此时应满足:2×(t[i]−t[j]) ≥ | p[i]−p[j] |; 容易发现需要两层循环,时间复杂度为O($n2$),而**n 阅读全文
posted @ 2026-03-22 09:31 msjing 阅读(1) 评论(0) 推荐(0)
摘要: solve(?) 可以把所有出现的语言都统计一遍之后处理 我们看到数据范围高达$10^9$,因此必须采用离散化来搞一下要不然吃不消 搞完之后就统计暴力搜然后比较就行了 然后就没有然后了 Code #include<bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2026-03-22 09:25 msjing 阅读(2) 评论(0) 推荐(0)
摘要: 分析 显然我们要处理最多的马内的路径,就要跑最长路,那么就可以用spfa跑 但是有环,spfa不能用spfa会似掉 好办,跑一遍tarjan干掉环,spfa就又活了 停下的酒馆也好处理,直接遍历找求max 数组功能介绍 const int maxn=1000010; int n,m,s,p; int 阅读全文
posted @ 2026-03-22 09:23 msjing 阅读(2) 评论(0) 推荐(0)