Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
**状态定义:**
设 \( dp[i] \) 表示到达站点 \( i \) 时的最小总加油花费。
**转移方程:**
\[
dp[i] = dp[i-1] + \max\left(0,\ \left\lceil \frac{v_{i-1} - r_{i-1}}{d} \right\rceil \right) \cdot \min_{1 \leq j < i} a_j
\]
其中 \( r_{i-1} \) 为到达站点 \( i-1 \) 后剩余的可行驶公里数,且 \( r_i = r_{i-1} + \left\lceil \frac{v_{i-1} - r_{i-1}}{d} \right\rceil \cdot d - v_{i-1} \)。

题目 3928 [CSP 2023J]公路
2025-10-09 23:53:49
Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
每天剩余苹果数更新公式:
\[
r \gets r - \left\lceil \frac{r}{3} \right\rceil = \left\lfloor \frac{2r}{3} \right\rfloor
\]
编号为 \(n\) 的苹果在当天未被拿走时,其下一天的位置更新公式:
\[
p \gets p - \left\lceil \frac{p}{3} \right\rceil
\]
它在某一天被拿走的充要条件是:
\[
p \equiv 1 \pmod{3}
\] Latex不会敲,AI转的

题目 3927 [CSP 2023J]小苹果
2025-10-09 23:49:59
Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
**等待时间的计算:**
当我们需要在一条道路前等待时,计算公式为:
\[
\text{等待周期数} = \left\lceil \frac{\text{开放时间} - \text{当前时间}}{k} \right\rceil
\]
在代码中,我们使用整数除法来实现向上取整:
\[
x = \frac{\text{na} - \text{nt} + k - 1}{k}
\]
**余数的计算:**
走过一条道路需要1分钟,所以新的余数为:
\[
\text{新余数} = (\text{当前余数} + 1) \mod k
\] AI转的一个latex版本的

Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
意思大概是:
有n个旅游景点,m条道路巴士每k分钟发一班车,每条道路有开放时间,必须等到开放时间才能通过,要找从入口(1号)到出口(n号)的最早到达时间
思路(个人):
我们用d[i][j]记录到达第i个景点时,时间除以k的余数是j的最早时间从起点(1号景点)开始,时间为0,余数为0,对于每个景点,检查所有能去的道路如果当前时间小于道路开放时间,需要等待到开放时间,走过道路需要1分钟时间,更新到达新景点的时间和余数
主要就是俩计算方法:
等待时间的计算:(开放时间-当前时间+k-1)/k,这样能算出需要等几个完整的k分钟
余数的计算:(当前余数+1)%k,因为走过道路需要1分钟

Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
粘不完
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("bus.in","r",stdin);
freopen("bus.out","w",stdout);
int n,m,k;
cin>>n>>m>>k;
int u[20005],v[20005],a[20005];
vector<int> g[10005];
for(int i=0;i<m;i++){
cin>>u[i]>>v[i]>>a[i];
g[u[i]].push_back(i);
}
int d[10005][105];
for(int i=1;i<=n;i++)for(int j=0;j<k;j++)d[i][j]=1000000000;
d[1][0]=0;
queue<pair<int,int>> q;
q.push(make_pair(1,0));
while(!q.empty

Gravatar
梦那边的美好TE
积分:709
提交:77 / 137
注意:本题文件名为 chessboardd 而并非 chessboard

Gravatar
wdsjl
积分:1248
提交:114 / 263
回复 @┭┮﹏┭┮ :
失踪人口回归

题目 4180 毛二琛
2025-10-05 15:17:51
Gravatar
梦那边的美好CE
积分:592
提交:134 / 356
回复 @金牌教师王艳 : 可以记搜

Gravatar
┭┮﹏┭┮
积分:4451
提交:907 / 1937

题目 4180 毛二琛
2025-10-04 21:15:50
Gravatar
梦那边的美好TE
积分:709
提交:77 / 137
原题地址:https://www.hackerrank.com/contests/w34/challenges/magic-cards

题目 4084 魔法卡片
2025-10-04 16:01:44
Gravatar
梦那边的美好ET
积分:7002
提交:1286 / 2721
先来考虑一个排列可到达的条件是什么。
如果不是 n 排列,而是 01 序列的话,那么条件是显然的:只要对于任意 i,序列 b 的 第 i 个 1 都位于序列 a 的第 i 个 1 的右边(不一定严格),那么 a 就可以到达 b。
对于一个 n 排列 a,以及一个数 k,把 a 中大于 k 的数标为 1,剩下的数标为 0,
就能得 到一个 01 序列。如果对于任意的 k,排列 a 对应的 01 序列都能够到达排列 b 对
应的序列,那么排列 a 就可以到达排列 b。
它的必要性是显然的。至于充分性,可以观察下面这个移动策略: i 从 n 到 1 的顺
序,每次将数字 i 移到它的目标位置,令当前位置为 l,目标位置为 r,当前 (l, r] 区间的
最大数字为 a[j],那么把 a[l] 和 a[j] 交换一下即可。
容易看出这样移动一定是可行的。
那么只要做一个 01 串 DP: F[i][j]表示到第 i 位,已经用了的集合为 j 的方案数,从一个全 0 的串开始,每次转移
是枚举第 i 位放几,即将串中的某个 0 改为 1,最后到达一个全 1 的串,且保证经过的都
是合法 01 串。

题目 4178 排列
2025-10-04 15:11:28
Gravatar
梦那边的美好ET
积分:7002
提交:1286 / 2721
暴力是O(3^N)。
考虑meet-in-the-middle,左边的那些3^(N/2)枚举分别是不放还是放到第一组还是放到第二组,并记录下来。
右边的3^(N/2)枚举后,再2^(N/2)看看左边符合这个值的那些,就行了。
总复杂度O(6^(N/2))。
其实调整左右大小可以使得复杂度更优。
来源:USACO 2012 OPEN GOLD subsets

题目 4179 毛一琛
2025-10-04 14:52:10
Gravatar
hsl_beat
积分:186
提交:22 / 31
这题题意真的清楚么

题目 3719 有n种物品
2025-10-01 12:11:13
Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
\frac{3}{2}\sum_{\alpha=0}^3\sum_{\beta=0}^3 g^{\alpha\beta}\partial_\mu\partial_\nu g_{\alpha\beta} = \frac{3}{2}\left(g^{00}\partial_\mu\partial_\nu g_{00} + g^{01}\partial_\mu\partial_\nu g_{01} + g^{02}\partial_\mu\partial_\nu g_{02} + g^{03}\partial_\mu\partial_\nu g_{03} + g^{10}\partial_\mu\partial_\nu g_{10} + \cdots + g^{33}\partial_\mu\partial_\nu g_{33}\right)

页面 19 MathJax基础语法
2025-09-29 23:55:58
Gravatar
baory
积分:13
提交:6 / 7
简单描述
公式使用两个美元符号扩起来,对于独占单行的公式,则需要两边各有两个美元符号包裹起来。
下标使用下划线表示,如:
$a_i+b_j=c_k$
显示为:
ai+bj=ck
上标使用向上的箭头(C 语言中的异或符号)表示,如:
$y=ax^2+bx+c$
显示为:
y=ax2+bx+c
除此之外,还有一些常见的使用方法,如:
$\frac{-b\pm\sqrt{b^2-4ac}}{2a}$
显示为:
−b±b2−4ac√2a

页面 19 MathJax基础语法
2025-09-25 20:27:40
Gravatar
PigFlies
积分:5
提交:6 / 15
格式问题
题目描述第10行,“我们按上述算法得到的排列顺序将它们从 0∼2(上标n-1)编号”中,“2(上标n-1)”应该为“$2^n-1$”。

题目 3289 [CSP 2019S]格雷码
2025-09-25 19:47:15
Gravatar
hsl_beat
积分:186
提交:22 / 31
人品-=114514

页面 99 2025开训指南
2025-09-25 19:17:19
Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
回复 @dustsans :
膜拜大佬,能写出来全靠您这讲解了 一开始就没敢写五重循环

Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
S组最温柔的一道第一题,也是唯一一个我认为 不用去网上搜相关内容就能写的了

题目 4053 [CSP 2024 S]决斗
2025-09-24 22:05:13
Gravatar
金牌教师王艳芳
积分:137
提交:55 / 336
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("duel.in", "r", stdin);
freopen("duel.out", "w", stdout);
int n;
cin >> n;
int a[100005];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n);
int ans = n;
int j = 0;
for (int i =0;i<n;i++) {
while (j<n&&a[j]<=a[i]) {
j++;
}
if (j < n) {
ans--;
j++;
}
}
cout << ans << endl;
return 0;

题目 4053 [CSP 2024 S]决斗
2025-09-24 22:03:40