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
积分:28
提交:21 / 71
格式问题
题目描述第10行,“我们按上述算法得到的排列顺序将它们从 0∼2(上标n-1)编号”中,“2(上标n-1)”应该为“$2^n-1$”。

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

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

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

题目 4053 [CSP 2024 S]决斗
2025-09-24 22:05:13
Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
#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
Gravatar
hsl_beat
积分:217
提交:34 / 52
不懂就问 结论猜到了不会证明该怎么办

Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459

#include <bits/stdc++.h>
using namespace std;
int main(){
freopen("2019code.in","r",stdin);
freopen("2019code.out","w",stdout);
unsigned long long n,k;
cin>>n>>k;
char da[65];
for(int i=n;i>=1;i--){
unsigned long long zj=(1ULL<<(i-1));
if(k<zj){
da[n-i]='0';
}else{
da[n-i]='1';
k=(1ULL<<i)-1-k;
}
}
da[n]='\0';
cout<<da;
return 0;
}

题目 3289 [CSP 2019S]格雷码
2025-09-23 20:11:21
Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
#转自ChatGPT 5-high
对于方格取数问题,定义状态 $dp[j][i]$ 表示走到第 $j$ 列第 $i$ 行时能获得的最大和。
## 初始条件
$$dp[0][0] = a[0][0]$$
$$dp[0][i] = dp[0][i-1] + a[i][0], \quad 1 \leq i < n$$
## 状态转移方程
$$dp[j][i] = \max_{0 \leq k < n} \left(dp[j-1][k] + \sum_{l=\min(i,k)}^{\max(i,k)} a[l][j]\right), \quad 1 \leq j < m, 0 \leq i < n$$
## 最终答案
$$answer = dp[m-1][n-1]$$
其中:
- $n$ 为行数,$m$ 为列数
- $a[i][j]$ 表示第 $i$ 行第 $j$ 列的值
- $\min(i,k)$ 和 $\max(i,k)$ 分别表示 $i$ 和 $k$ 中的较小值和较大值
- 求和项表示在第 $j$ 列中从第 $k$ 行走到第 $i$ 行所经过的所有格子的值之和

Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
#include <iostream>
using namespace std;
int main() {
freopen("csp2020pj_power.in", "r", stdin);
freopen("csp2020pj_power.out", "w", stdout);
int n;
cin >> n;
if (n % 2 != 0) {
cout << -1;
} else {
for (int i = 23; i >= 1; i--) {
if (n & (1 << i)) {
cout << (1 << i) << " ";
}
}
}
}
转成2进制就可以了,但是手动转太麻烦了,由于我是懒狗,所以直接位运算判断一位是啥就可以了,挺好写的

Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
去网上找点位运算之类的东西会好做点,从最高位开始,逐位确定格雷码的每一位是0还是1,然后每次判断k是否小于中间值,如果k小于中间值,这一位就是0;否则这一位就是1,并且需要把k翻转一下,(1ULL << (i-1)) - 计算中间值,(1ULL << i) - 1 - k - 翻转k值

题目 3289 [CSP 2019S]格雷码
2025-09-23 12:58:20
Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
666,我还以为是个搜索,要不然记忆化要不然剪枝,结果你告诉我是dp?改了半天搜索就30分结果回家一问chatgpt是动规?

Gravatar
陆晨洗
积分:553
提交:132 / 275
注意!N最大为63,不是60!

题目 1196 [POJ 1011] 小木棍
2025-09-02 20:00:41
Gravatar
bowen
积分:55
提交:32 / 112
回复 @yrtiop : 我感觉作者就是那个考零分的

题目 4124 最后一课
2025-08-29 11:47:20
Gravatar
flyfree
积分:1273
提交:108 / 387
回复 @DESTRUCT :
哇ssy还有月计人(

Gravatar
梦那边的美好TE
积分:1233
提交:123 / 214
不保证 b<=n

题目 3066 [POJ 1201]区间
2025-08-12 09:32:59
Gravatar
陆晨洗
积分:553
提交:132 / 275
好题,没有想象的那么简单

题目 3793 [POI 2012]Salaries
2025-08-11 09:51:09
Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
状压DP?不像学生出的,背后必有高人指点

Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
题目ID破案里

题目 4156 因你而在的故事
2025-08-01 21:15:51
Gravatar
金牌教师王艳芳
积分:217
提交:83 / 459
这真的是能做出来的吗