0%

A DFS 搜索

所谓 DFS 搜索,就是给定一个字符串s,问能否找到s 的一个子序列,使得该子序列的值为 DFS 或 dfs。

请你分别判断字符串s 中是否含有 DFS 子序列与 dfs 子序列。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void solve() {
int n;
std::cin >> n;

std::string s;
std::cin >> s;

for (auto t : {"DFS", "dfs"}) {
int k = 0;
for (int i = 0; i < n; i++) {
if (k < 3 && s[i] == t[k]) {
k++;
}
}
std::cout << (k == 3) << " ";
}
std::cout << "\n";
}

B 关鸡

阅读全文 »

A. Brick Wall

1
2
3
4
5
6
7
void solve()
{
int n, m;
cin >> n >> m;
m /= 2;
cout << n * m << '\n';
}

B. Minimize Inversions

给出 \(a,b\) 两个排列

  • 同时交换排列 \(a,b\) \((i,j)\) 位置,即 swap(a[i],a[j]),swap(b[i],b[j];
阅读全文 »

[NOIP 2004 提高组] 合唱队形

题目描述

\(n\) 位同学站成一排,音乐老师要请其中的 \(n-k\) 位同学出列,使得剩下的 \(k\) 位同学排成合唱队形。

合唱队形是指这样的一种队形:设 \(k\) 位同学从左到右依次编号为 \(1,2,\)\(,k\),他们的身高分别为 \(t_1,t_2,\)\(,t_k\),则他们的身高满足 \(t_1< \cdots <t_i>t_{i+1}>\)\(>t_k(1\le i\le k)\)

你的任务是,已知所有 \(n\) 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

阅读全文 »

第一个数字表示这套系统最多能拦截多少导弹,第二个数字表示如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

  1. 最长不上升序列
  2. 最长上升序列

\(dp_{i}=\max(1,\max\limits_{j<i,h(j)>h(i)}\{dp_{j}+1\})\)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <bits/stdc++.h>
using namespace std;
int a[100010], d[100010];
int main()
{
int x;
int size = 0;
while (cin >> x)
a[++size] = x;
//----------------最长不上升序列
d[1] = a[1];
int len = 1;
for (int i = 2; i <= size; i++)
{
if (a[i] <= d[len])
d[++len] = a[i];
else
{
int pos = upper_bound(d + 1, d + 1 + len, a[i], greater<int>()) - d;
d[pos] = a[i];
}
}
cout << len << '\n';
//----------------最长上升序列
d[1] = a[1];
len = 1;
for (int i = 2; i <= size; i++)
{
if (a[i] > d[len])
d[++len] = a[i];
else
{
int pos = lower_bound(d + 1, d + 1 + len, a[i]) - d;
d[pos] = a[i];
}
}
cout << len << endl;
}

DP 入门题.

f[i][j] 代表从 \((1,1)\to(i,j)\) 的所有路径中和最大的路径

转移方程:f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <bits/stdc++.h>
using namespace std;
int r;
int g[1010][1010];
int m[1010][1010];
int main()
{
cin >> r;
for (int i = 1; i <= r; i++)
for (int j = 1; j <= i; j++)
cin >> g[i][j];
for (int i = 1; i <= r; i++)
for (int j = 1; j <= i; j++)
m[i][j] = max(m[i - 1][j], m[i - 1][j - 1]) + g[i][j];//正推
// for (int i = r; i >=1; i--)
// for (int j = 1; j <= i; j++)
// m[i][j] = max(m[i + 1][j], m[i + 1][j + 1]) + g[i][j]; //反推
int ans = 0;
for (int i = 1; i <= r;i++)
{
if(m[r][i]>ans)
ans = m[r][i];
}
cout <<ans << endl;
}

A 小红的删字符

小红拿到了一个长度为 3 的字符串,请你删除中间的字符后,输出该字符串。

1
2
3
4
void solve(){
string a; cin>>a;
cout<<a[0]<<a[2]<<'\n';
}

B 小红的正整数

阅读全文 »

C 勉强写出来😒在 ABC 我希望在寒假能达到只有最后一道做不出来(A-F,至少写出 A-E)。

A - Capitalized?

给你一个由大写和小写英文字母组成的非空字符串 \(S\)。请判断是否满足以下条件:

  • \(S\) 的第一个字符是大写字母,其他所有字符都是小写字母。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void solve()
{
string a;
cin >> a;
for (int i = 1; i < a.size(); i++)
{
if (isupper(a[i]))
{
cout << "No\n";
return;
}
}
if (isupper(a[0]))
cout << "Yes\n";
else
cout << "No\n";
}
阅读全文 »

下海?

等会知乎看

3小时前端入门教程(HTML+CSS+JS)_哔哩哔哩_bilibili

此部分只作为了解学习。不必深究。

HTML

文本标签
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文本标签</title>
</head>
<body>
<h1>Test1</h1>
<h2>Test2</h2>
<h3>Test2</h3>
<h4>Test2</h4>
<h5>Test2</h5>
<h6>Test2</h6>
<p>This is a Test</p>
<p>
字体加粗:<b>加粗1</b><strong>加粗2</strong><i>斜体</i><u>下划线</u><s>删除键</s>
</p>
<ul>
<li>无序列表1</li>
<li>无序列表2</li>
<li>无序列表3</li>
</ul>
<ol>
<li>有序列表1</li>
<li>有序列表2</li>
<li>有序列表3</li>
</ol>

<table border="1">
<tr>
<th>列标题1</th>
<th>列标题2</th>
<th>列标题3</th>
<!-- th:table header -->
</tr>
<tr>
<td>One data</td>
<td>Two data</td>
<td>Three data</td>
<!-- td:table data -->
</tr>
<tr>
<td>One data</td>
<td>Two data</td>
<td>Three data</td>
</tr>
<tr>
<td>One data</td>
<td>Two data</td>
<td>Three data</td>
</tr>
<!-- tr:table row -->
</table>
</body>
</html>

阅读全文 »

具体可以看菜鸟教程

1
2
3
4
5
6
7
8
9
10
11
12
13
# 输入输出
# 字符串的格式化
def __init__(self,...): # 类

# 字符串 string
# 数字函数 Math...
# 列表 list
# 元组 tuple
# 字典 dict
# 集合 set
# lambda函数 lambda arguments(参数列表,可为空): expression
# 推导式 list, dict, set, tuple [表达式 for 变量 in 列表 (if 条件)]

(还拿 py 打蓝桥杯 \(\dots\) 我真的是服了,如果没国奖我下次肯定要么 java 要么 c++,非常不熟悉 \(\dots\))