day10 files

This commit is contained in:
Zengtudor 2024-08-12 08:27:33 +08:00
parent 2a5baea8ff
commit 9dcb142962
32 changed files with 4572 additions and 0 deletions

0
day10/U17857/U17857.cpp Normal file
View File

113
day10/U17857/U17857.md Normal file
View File

@ -0,0 +1,113 @@
# 冒泡排序
## 题目背景
对于一个排列 $a[1...n]$,进行一趟冒泡排序的代码为:
```cpp
for(int i=1;i<n;++i){
if(a[i]>a[i+1]) swap(a[i], a[i+1]);
}
```
在进行 $n-1$ 趟冒泡排序之后,数组变为有序。
## 题目描述
给一个长度为 $n$ 的排列 $a[1...n]$ 和 $q$ 次询问,每次询问形如 $(k,x)$:代表询问 $x$ 这个数在 $k$ 趟排序之后的位置下标。
## 输入格式
第一行1个整数 $n$
第二行 $n$ 个整数 $a[1...n]$,保证是一个排列
第三行1个整数 $q$
接下来 $q$ 行每行2个整数 $(k,x)$ 代表一次询问
## 输出格式
输出 $q$ 行每行1个整数代表答案
## 样例 #1
### 样例输入 #1
```
5
4 3 5 1 2
3
2 1
4 4
1 5
```
### 样例输出 #1
```
2
4
5
```
## 样例 #2
### 样例输入 #2
```
5
4 5 2 3 1
5
3 1
4 2
3 3
2 4
1 5
```
### 样例输出 #2
```
2
2
3
4
5
```
## 样例 #3
### 样例输入 #3
```
见下发样例
```
### 样例输出 #3
```
```
## 提示
【样例1解释】
第1趟排序之后数组变为 $[3,4,1,2,5]$
第2趟排序之后数组变为 $[3,1,2,4,5]$
第3趟排序之后数组变为 $[1,2,3,4,5]$
【数据范围】
对于20%的数据,$n,q\le 2000$。
对于另20%的数据,$n,q\le 10^5$,不同的 $k$ 取值不超过20种。
对于另20%的数据,$n,q\le 10^5$,不同的 $x$ 取值不超过20种。
对于另20%的数据,$n,q\le 10^5$。
对于100%的数据,$1\le n,q \le 5\times 10^5, 1\le k<n, 1\le x\le n$$a[1...n]$ 保证是一个排列
注意输入输出量较大,请使用快速的读写方式。

3
day10/U17857/bubble1.ans Normal file
View File

@ -0,0 +1,3 @@
2
4
5

6
day10/U17857/bubble1.in Normal file
View File

@ -0,0 +1,6 @@
5
4 3 5 1 2
3
2 1
4 4
1 5

5
day10/U17857/bubble2.ans Normal file
View File

@ -0,0 +1,5 @@
2
2
3
4
5

8
day10/U17857/bubble2.in Normal file
View File

@ -0,0 +1,8 @@
5
4 5 2 3 1
5
3 1
4 2
3 3
2 4
1 5

2000
day10/U17857/bubble3.ans Normal file

File diff suppressed because it is too large Load Diff

2003
day10/U17857/bubble3.in Normal file

File diff suppressed because one or more lines are too long

View File

90
day10/U208318/U208318.md Normal file
View File

@ -0,0 +1,90 @@
# 选举3
## 题目描述
你在竞选魔法学校的校长,有 $n$ 位同学每人一票,已知每人的选择 $a[i]$,代表第 $i$ 位同学支持第 $a[i]$ 位候选人。
选举方式如下:选择一个连续区间 $[l,r]$ ,对 $a[l,...,r]$ 进行计票(区间外的人不管),若有候选人获得其中严格多于一半的选票(**严格众数**),则这个人当选,否则没人当选。
现在想知道的是有多少种不同方法选择区间 $[l,r]$,使得有人当选。
## 输入格式
第一行1个整数 $n$
第二行 $n$ 个整数 $a[1...n]$
## 输出格式
输出1个整数代表答案
## 样例 #1
### 样例输入 #1
```
2
1 1
```
### 样例输出 #1
```
3
```
## 样例 #2
### 样例输入 #2
```
3
2 1 2
```
### 样例输出 #2
```
4
```
## 样例 #3
### 样例输入 #3
```
5
2 2 1 2 3
```
### 样例输出 #3
```
10
```
## 样例 #4
### 样例输入 #4
```
见下发样例
```
### 样例输出 #4
```
```
## 提示
对于所有数据,满足 $1\le n \le 2\times 10^5, 1\le a[i] \le 10^9$
子任务110分$n\le 300$
子任务215分$n\le 2000$
子任务320分$a[i]\le 2$
子任务455分无特殊限制

1
day10/U208318/med1.ans Normal file
View File

@ -0,0 +1 @@
3

2
day10/U208318/med1.in Normal file
View File

@ -0,0 +1,2 @@
2
1 1

1
day10/U208318/med2.ans Normal file
View File

@ -0,0 +1 @@
4

2
day10/U208318/med2.in Normal file
View File

@ -0,0 +1,2 @@
3
2 1 2

1
day10/U208318/med3.ans Normal file
View File

@ -0,0 +1 @@
10

2
day10/U208318/med3.in Normal file
View File

@ -0,0 +1,2 @@
5
2 2 1 2 3

1
day10/U208318/med4.ans Normal file
View File

@ -0,0 +1 @@
746

2
day10/U208318/med4.in Normal file
View File

@ -0,0 +1,2 @@
300
4 3 3 2 4 1 1 5 1 1 4 4 4 4 5 2 5 4 5 2 5 3 5 2 2 4 3 2 2 4 3 4 4 2 2 2 3 4 5 1 3 3 2 4 2 4 2 4 3 5 3 2 4 3 4 1 3 3 2 3 4 3 3 2 5 4 3 1 2 3 4 3 2 5 2 5 4 1 2 5 3 4 3 3 5 2 4 5 2 4 4 2 1 2 2 4 1 5 1 1 1 5 2 3 3 3 4 3 3 4 1 3 4 3 5 3 2 4 5 1 1 4 5 2 4 2 2 2 1 1 4 2 4 5 2 4 5 4 4 3 2 5 1 4 2 2 3 2 4 4 5 3 3 4 1 4 4 1 4 1 5 2 1 4 3 3 4 5 1 2 5 4 5 2 2 3 4 1 4 5 5 5 2 5 1 1 1 2 3 4 1 2 5 5 2 4 5 1 1 4 3 5 1 4 3 1 4 4 1 4 4 3 2 2 5 1 3 5 2 3 1 1 5 2 4 3 4 5 1 1 3 3 3 3 1 2 5 4 3 2 1 5 2 1 5 3 3 1 2 3 1 3 4 5 4 2 5 1 4 4 1 5 1 5 1 5 1 4 1 3 1 4 4 3 1 5 2 3 3 5 3 4 4 2 5 3 1 3 5 1 4 2 4 1 4 5 3 3 4 2

View File

84
day10/U252456/U252456.md Normal file
View File

@ -0,0 +1,84 @@
# 过河2
## 题目描述
在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:$0,1,\cdots,L$(其中 $L$ 是桥的长度)。坐标为 $0$ 的点表示桥的起点,坐标为 $L$ 的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。
给定一个正整数集合 $S$,一次跳跃的距离可在集合中任选 $x\in S$。
当青蛙跳到或跳过坐标为 $L$ 的点时,就算青蛙已经跳出了独木桥。
给出独木桥的长度 $L$,青蛙跳跃距离的集合 $S$,桥上石子的位置。你的任务是确定青蛙要想过河,最少需要踩到的石子数。
## 输入格式
第一行有 1 个正整数 $L$,表示独木桥的长度。
第二行有 2 个正整数 $k,m$,分别代表跳跃距离的集合大小和石子个数。
第三行 $k$ 个整数 $x[1\sim k]$ 代表 $S$ 中的数(不保证有序)。
第四行有 $m$ 个不同的正整数分别表示这 $m$ 个石子在数轴上的位置(数据保证桥的起点和终点处没有石子)。所有相邻的整数之间用一个空格隔开。
## 输出格式
一个整数,表示青蛙过河最少需要踩到的石子数。
## 样例 #1
### 样例输入 #1
```
10
2 5
2 3
2 3 5 6 7
```
### 样例输出 #1
```
2
```
## 样例 #2
### 样例输入 #2
```
见下发样例
```
### 样例输出 #2
```
```
## 样例 #3
### 样例输入 #3
```
见下发样例
```
### 样例输出 #3
```
```
## 提示
对于100%的数据,$1\le L\le 10^9, 0<k\le 50, 1<x[i]\le 100, 0\le m\le 500$
子任务120分$L\le 10^4$
子任务220分$k=2$,保证 $gcd(x[1],x[2])=1$
子任务320分$k=2$
子任务440分无特殊限制
2s512MB

1
day10/U252456/river1.ans Normal file
View File

@ -0,0 +1 @@
2

4
day10/U252456/river1.in Normal file
View File

@ -0,0 +1,4 @@
10
2 5
2 3
2 3 5 6 7

1
day10/U252456/river2.ans Normal file
View File

@ -0,0 +1 @@
18

4
day10/U252456/river2.in Normal file
View File

@ -0,0 +1,4 @@
500
2 100
1 2
7 14 19 34 37 53 74 81 82 86 90 93 99 101 112 113 115 136 142 147 151 156 163 168 171 172 174 179 183 184 188 197 200 201 207 224 227 230 233 237 238 241 249 252 254 258 265 273 277 287 292 303 316 317 323 324 328 334 335 336 349 351 354 355 357 358 360 361 366 367 370 387 396 398 400 401 408 410 412 414 424 425 426 427 436 437 441 448 450 456 457 461 467 472 474 476 478 483 488 498

1
day10/U252456/river3.ans Normal file
View File

@ -0,0 +1 @@
5

4
day10/U252456/river3.in Normal file
View File

@ -0,0 +1,4 @@
1000000000
5 500
3 6 13 34 14
24444375 24444376 24444378 24444379 24444381 24444383 24444384 24444385 24444386 24444387 24444388 24444389 24444390 24444391 24444392 24444394 24444395 24444396 24444397 24444398 24444399 24444400 24444401 24444402 24444403 24444405 24444406 24444407 24444408 24444409 24444410 24444411 24444413 24444414 24444415 24444416 24444417 24444419 24444420 24444421 24444422 24444423 24444424 24444425 24444426 24444427 24444428 24444430 24444431 24444432 24444433 24444435 24444436 24444437 24444438 24444439 24444440 24444441 24444443 24444444 24444445 24444447 24444448 24444449 24444450 24444451 24444453 24444454 24444455 24444456 24444457 24444459 24444461 24444462 24444463 24444465 24444466 24444467 24444469 24444470 24444471 24444472 24444473 24444474 24444475 24444476 24444477 24444478 24444479 24444480 24444481 24444482 24444483 24444484 24444486 24444487 24444488 24444489 24444490 24444491 24444492 24444493 24444494 24444495 24444497 24444498 24444499 24444500 24444501 24444503 24444504 24444505 24444507 24444508 24444509 24444510 24444511 24444512 24444513 24444514 24444515 24444516 24444517 24444518 24444519 24444521 24444522 24444523 24444525 24444526 24444527 24444528 24444529 24444530 24444531 24444533 24444534 24444535 24444536 24444537 24444538 24444539 24444540 24444543 24444545 24444547 24444549 24444550 24444551 24444552 24444553 24444555 24444556 24444557 24444559 24444560 24444561 24444562 24444563 24444564 24444565 24444567 24444568 24444569 24444570 24444571 24444572 24444574 24444575 24444576 24444579 24444580 24444581 24444582 24444583 24444584 24444585 24444586 24444587 24444588 24444589 24444591 24444592 24444593 24444594 24444595 24444596 24444597 24444599 24444600 24444601 24444602 24444603 24444605 24444607 24444608 24444609 24444611 24444612 24444613 24444614 24444615 24444616 24444617 24444618 24444619 24444620 24444621 24444622 24444623 24444624 24444625 24444626 24444627 24444628 24444629 24444630 24444631 24444633 24444635 24444636 24444639 24444640 24444641 24444642 24444643 24444645 24444646 24444647 24444648 24444649 24444650 24444651 24444652 24444653 24444654 24444655 24444657 24444658 24444659 24444660 24444661 24444662 24444663 24444664 24444665 24444666 24444667 24444668 24444669 24444670 24444671 24444675 24444676 24444677 24444678 24444679 24444680 24444681 24444683 24444684 24444685 24444686 24444687 24444688 24444689 24444690 24444691 24444693 24444695 24444696 24444697 24444698 24444699 24444700 24444701 24444702 24444703 24444705 24444706 24444707 24444708 24444709 24444710 24444711 24444713 24444715 24444717 24444719 24444720 24444721 24444723 24444725 24444726 24444727 24444728 24444729 24444732 24444733 24444735 24444736 24444738 24444739 24444740 24444741 24444743 24444744 24444745 24444746 24444747 24444748 24444749 24444750 24444751 24444753 24444755 24444756 24444757 24444758 24444759 24444761 24444762 24444763 24444765 24444766 24444767 24444768 24444769 24444771 24444773 24444775 24444776 24444777 24444778 24444779 24444780 24444781 24444783 24444785 24444786 24444787 24444788 24444789 24444790 24444791 24444792 24444793 24444795 24444796 24444797 24444798 24444799 24444800 24444801 24444802 24444804 24444805 24444806 24444807 24444808 24444809 24444810 24444811 24444812 24444813 24444814 24444815 24444816 24444817 24444819 24444820 24444821 24444822 24444823 24444824 24444825 24444826 24444827 24444828 24444829 24444831 24444832 24444834 24444835 24444837 24444838 24444839 24444840 24444841 24444843 24444844 24444845 24444846 24444847 24444848 24444849 24444850 24444851 24444852 24444853 24444854 24444855 24444856 24444857 24444858 24444859 24444860 24444861 24444862 24444863 24444864 24444865 24444867 24444869 24444870 24444871 24444873 24444874 24444875 24444876 24444877 24444878 24444879 24444881 24444882 24444883 24444884 24444885 24444887 24444889 24444890 24444891 24444893 24444894 24444895 24444897 24444899 24444900 24444901 24444903 24444905 24444906 24444907 24444908 24444909 24444910 24444911 24444912 24444913 24444915 24444916 24444917 24444918 24444919 24444921 24444922 24444923 24444924 24444925 24444927 24444928 24444929 24444930 24444931 24444932 24444933 24444934 24444935 24444936 24444939 24444940 24444941 24444942 24444943 24444944 24444945 24444947 24444948 24444949 24444950 24444951 24444952 24444953 24444954 24444955 24444957 24444959 24444960 24444963 24444964 24444965 24444966 24444967 24444968 24444969 24444970 24444971 24444972 24444973 24444974

6
day10/U88589/1.ans Normal file
View File

@ -0,0 +1,6 @@
3
1
2
1
1
-1

10
day10/U88589/1.in Normal file
View File

@ -0,0 +1,10 @@
9
1 1
1 2
3 1 3
4 1
5 2
2 2
3 1 2
4 1
5 2

35
day10/U88589/2.ans Normal file
View File

@ -0,0 +1,35 @@
-1
15
33
77
160
51
-1
714
51
333
-1
557
89
241
25
25
299
17
17
66
-1
136
21
578
49
66
575
66
25
98
66
458
940
28
89

102
day10/U88589/2.in Normal file
View File

@ -0,0 +1,102 @@
100
1 34
1 15
5 41
1 64
3 1 18
1 45
1 51
1 77
1 33
5 21
1 11
1 87
5 76
1 25
2 34
1 75
1 80
1 71
1 24
3 43 69
1 99
1 98
1 71
1 51
4 61
1 49
1 89
4 3
1 45
1 66
2 99
2 64
3 29 84
4 59
3 77 89
4 1
3 1 71
4 97
3 36 55
5 25
1 76
4 28
1 17
2 71
3 71 78
4 17
2 71
1 61
4 21
5 65
1 46
1 43
1 4
2 51
1 21
4 1
2 77
1 19
1 33
3 3 26
1 36
1 76
4 21
3 1 64
1 31
1 21
1 61
5 49
1 88
1 21
4 73
3 12 57
1 25
3 1 19
1 45
1 75
1 5
1 58
4 30
1 92
1 1
1 51
1 28
2 88
1 25
4 99
1 61
1 75
4 71
2 45
3 49 67
1 27
3 53 91
2 76
1 95
4 29
5 89
2 61
1 51
2 61

0
day10/U88589/U88589.cpp Normal file
View File

80
day10/U88589/U88589.md Normal file
View File

@ -0,0 +1,80 @@
# 值域查询II
## 题目描述
你需要维护一个数的集合(初始集合为空集),支持:
- `1 x`: 插入一个值为 $x$ 的数;
- `2 x`: 删除一个值为 $x$ 的数,保证存在,若有多个只删除 $1$ 个;
- `3 l r`: 询问所有满足 $l\le x\le r$ 的 $x$ 的和;
- `4 x`: 询问集合中 $\le x$ 的最大数,若没有输出 `-1`
- `5 x`: 询问集合中 $\ge x$ 的最小数,若没有输出 `-1`
## 输入格式
第一行1个整数 $q$,代表操作数
接下来 $q$ 行每行1个操作
## 输出格式
对于每个3、4、5操作输出结果
## 样例 #1
### 样例输入 #1
```
9
1 1
1 2
3 1 3
4 1
5 2
2 2
3 1 2
4 1
5 2
```
### 样例输出 #1
```
3
1
2
1
1
-1
```
## 样例 #2
### 样例输入 #2
```
见下发样例
```
### 样例输出 #2
```
```
## 提示
对于20%的数据,$1\le q,x,l,r\le 100$
对于另10%的数据,$1\le q\le 10^5, 0\le x,l,r\le 100$
对于另20%的数据,$1\le q\le 10^5, 0\le x,l,r\le 10^5$, 没有4、5操作
对于另30%的数据,$1\le q\le 10^5, 0\le x,l,r\le 10^5$
对于100%的数据,$1\le q\le 10^5, 0\le x,l,r\le 10^9$