Compare commits
No commits in common. "1f0738cd588ba6e1f301983fa21743ee13c99eca" and "39ecc81abfaa4792625b7e9c304a6f6bb52ca199" have entirely different histories.
1f0738cd58
...
39ecc81abf
BIN
day1/P5686/P5686
BIN
day1/P5686/P5686
Binary file not shown.
@ -1,73 +0,0 @@
|
|||||||
#include <bits/stdc++.h>
|
|
||||||
#define int long long
|
|
||||||
|
|
||||||
const int MAX_N = 5*100'000;
|
|
||||||
const int MOD = 1'000'000'000 + 7;
|
|
||||||
|
|
||||||
int a[MAX_N],b[MAX_N];
|
|
||||||
int prefix_a[MAX_N],prefix_b[MAX_N];
|
|
||||||
int n;
|
|
||||||
int cnt=0;
|
|
||||||
|
|
||||||
signed main(){
|
|
||||||
std::cin.sync_with_stdio(false);
|
|
||||||
std::cin.tie(0);
|
|
||||||
|
|
||||||
prefix_a[0]=0;
|
|
||||||
prefix_b[0]=0;
|
|
||||||
std::cin>>n;
|
|
||||||
for (int i=1;i<=n;i++) {
|
|
||||||
std::cin>>a[i];
|
|
||||||
prefix_a[i] = (a[i] + prefix_a[i-1])%MOD;
|
|
||||||
}
|
|
||||||
for(int i=1;i<=n;i++){
|
|
||||||
std::cin>>b[i];
|
|
||||||
prefix_b[i] = (b[i] + prefix_b[i-1])%MOD;
|
|
||||||
}
|
|
||||||
for (int l=1; l<=n; l++) {
|
|
||||||
for (int r=l;r<=n;r++) {
|
|
||||||
// int sum_a = ;
|
|
||||||
// int sum_b = ;
|
|
||||||
cnt = (cnt + (((prefix_a[r]-prefix_a[l-1]+MOD)%MOD)*((prefix_b[r]-prefix_b[l-1]+MOD)%MOD)))%MOD;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
std::cout<<cnt<<"\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// #include <iostream>
|
|
||||||
// #include <vector>
|
|
||||||
// using namespace std;
|
|
||||||
|
|
||||||
// const int MOD = 1e9 + 7;
|
|
||||||
|
|
||||||
// int main() {
|
|
||||||
// int n;
|
|
||||||
// cin >> n;
|
|
||||||
// vector<int> a(n), b(n);
|
|
||||||
|
|
||||||
// for (int i = 0; i < n; ++i) {
|
|
||||||
// cin >> a[i];
|
|
||||||
// }
|
|
||||||
// for (int i = 0; i < n; ++i) {
|
|
||||||
// cin >> b[i];
|
|
||||||
// }
|
|
||||||
|
|
||||||
// vector<long long> prefix_a(n + 1, 0), prefix_b(n + 1, 0);
|
|
||||||
// for (int i = 1; i <= n; ++i) {
|
|
||||||
// prefix_a[i] = (prefix_a[i - 1] + a[i - 1]) % MOD;
|
|
||||||
// prefix_b[i] = (prefix_b[i - 1] + b[i - 1]) % MOD;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// long long result = 0;
|
|
||||||
|
|
||||||
// for (int l = 1; l <= n; ++l) {
|
|
||||||
// for (int r = l; r <= n; ++ r) {
|
|
||||||
// long long sum_a = (prefix_a[r] - prefix_a[l - 1] + MOD) % MOD;
|
|
||||||
// long long sum_b = (prefix_b[r] - prefix_b[l - 1] + MOD) % MOD;
|
|
||||||
// result = (result + sum_a * sum_b) % MOD;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// cout << result << endl;
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
@ -1,67 +0,0 @@
|
|||||||
# [CSP-S2019 江西] 和积和
|
|
||||||
|
|
||||||
## 题目背景
|
|
||||||
|
|
||||||
JXCSP-S T2
|
|
||||||
|
|
||||||
## 题目描述
|
|
||||||
|
|
||||||
给定两个下标从 $1$ 到 $n$ 编号的序列 $a_i,b_i$,定义函数 $S(l,r)(1\le l\le r\le n)$ 为:
|
|
||||||
|
|
||||||
$$\sum_{i=l}^r a_i\times \sum_{i=l}^r b_i$$
|
|
||||||
|
|
||||||
请你求出下列式子的值:
|
|
||||||
|
|
||||||
$$\sum_{l=1}^n \sum_{r=l}^n S(l,r)$$
|
|
||||||
|
|
||||||
由于答案可能很大,你只需要给出答案模 $10^9+7$ 后的结果。
|
|
||||||
|
|
||||||
## 输入格式
|
|
||||||
|
|
||||||
第一行一个正整数 $n$ 表示序列长度。
|
|
||||||
第二行 $n$ 个正整数表示 $a_i$。
|
|
||||||
第三行 $n$ 个正整数表示 $b_i$。
|
|
||||||
|
|
||||||
## 输出格式
|
|
||||||
|
|
||||||
仅一行一个整数表示答案模 $10^9+7$ 后的结果。
|
|
||||||
|
|
||||||
## 样例 #1
|
|
||||||
|
|
||||||
### 样例输入 #1
|
|
||||||
|
|
||||||
```
|
|
||||||
3
|
|
||||||
2 3 4
|
|
||||||
3 4 5
|
|
||||||
```
|
|
||||||
|
|
||||||
### 样例输出 #1
|
|
||||||
|
|
||||||
```
|
|
||||||
244
|
|
||||||
```
|
|
||||||
|
|
||||||
## 样例 #2
|
|
||||||
|
|
||||||
### 样例输入 #2
|
|
||||||
|
|
||||||
```
|
|
||||||
5
|
|
||||||
11 22 33 44 55
|
|
||||||
12 34 56 78 90
|
|
||||||
```
|
|
||||||
|
|
||||||
### 样例输出 #2
|
|
||||||
|
|
||||||
```
|
|
||||||
201542
|
|
||||||
```
|
|
||||||
|
|
||||||
## 提示
|
|
||||||
|
|
||||||
【数据范围】
|
|
||||||
对于 $20\%$ 的数据:$n\le 10$ , $a_i,b_i\le 10$;
|
|
||||||
对于 $40\%$ 的数据:$n\le 200$ , $a_i,b_i\le 100$;
|
|
||||||
对于 $70\%$ 的数据:$n\le 3000$ , $a_i,b_i\le 10^5$;
|
|
||||||
对于 $100\%$ 的数据:$3\le n\le 5\times 10^5$ , $1\le a_i,b_i\le 10^9$。
|
|
Binary file not shown.
BIN
day1/PreSim/main
BIN
day1/PreSim/main
Binary file not shown.
@ -1,18 +0,0 @@
|
|||||||
#include<bits/stdc++.h>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
string s1,s2,s3,s4,s5,s6;
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
s1 = "BDBBACBCABCACAA";
|
|
||||||
s2 = "TTDAA";
|
|
||||||
s3 = "FFAAA";
|
|
||||||
s4 = "TTTAAA";
|
|
||||||
s5 = "DCCC";
|
|
||||||
s6 = "ABCBAA";
|
|
||||||
|
|
||||||
string ans = s1 + s2 + s3 + s4 + s5 + s6;
|
|
||||||
assert(ans.length() == 41);
|
|
||||||
cout<<ans;
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -1,72 +0,0 @@
|
|||||||
# 区间最值求和
|
|
||||||
|
|
||||||
## 题目描述
|
|
||||||
|
|
||||||
给一个长度 $n$ 的序列 $a$,求:
|
|
||||||
$$
|
|
||||||
\sum_{l=1}^n\sum_{r=l}^n max(a[l...r])
|
|
||||||
$$
|
|
||||||
|
|
||||||
## 输入格式
|
|
||||||
|
|
||||||
第一行1个整数 $n$
|
|
||||||
|
|
||||||
第二行 $n$ 个整数 $a[1,2,...,n]$
|
|
||||||
|
|
||||||
## 输出格式
|
|
||||||
|
|
||||||
输出1个整数代表答案
|
|
||||||
|
|
||||||
## 样例 #1
|
|
||||||
|
|
||||||
### 样例输入 #1
|
|
||||||
|
|
||||||
```
|
|
||||||
4
|
|
||||||
2 1 3 4
|
|
||||||
```
|
|
||||||
|
|
||||||
### 样例输出 #1
|
|
||||||
|
|
||||||
```
|
|
||||||
30
|
|
||||||
```
|
|
||||||
|
|
||||||
## 样例 #2
|
|
||||||
|
|
||||||
### 样例输入 #2
|
|
||||||
|
|
||||||
```
|
|
||||||
5
|
|
||||||
4 5 7 2 4
|
|
||||||
```
|
|
||||||
|
|
||||||
### 样例输出 #2
|
|
||||||
|
|
||||||
```
|
|
||||||
87
|
|
||||||
```
|
|
||||||
|
|
||||||
## 样例 #3
|
|
||||||
|
|
||||||
### 样例输入 #3
|
|
||||||
|
|
||||||
```
|
|
||||||
见下发样例
|
|
||||||
```
|
|
||||||
|
|
||||||
### 样例输出 #3
|
|
||||||
|
|
||||||
```
|
|
||||||
见下发样例
|
|
||||||
```
|
|
||||||
|
|
||||||
## 提示
|
|
||||||
|
|
||||||
对于所有数据,$1\le n,a[i]\le 10^6$
|
|
||||||
|
|
||||||
subtask1(20pts):$n \le 5000$
|
|
||||||
|
|
||||||
subtask2(20pts):$a[i]\le 50$
|
|
||||||
|
|
||||||
subtask4(60pts):无特殊限制
|
|
Binary file not shown.
@ -1,27 +0,0 @@
|
|||||||
#include <algorithm>
|
|
||||||
#include<bits/stdc++.h>
|
|
||||||
#include <iostream>
|
|
||||||
#include <ostream>
|
|
||||||
|
|
||||||
const int MAX_N{1000'000};
|
|
||||||
int n;
|
|
||||||
int a[MAX_N];
|
|
||||||
int cnt{0};
|
|
||||||
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
std::cin.sync_with_stdio(false);
|
|
||||||
std::cin.tie(0);
|
|
||||||
std::cin>>n;
|
|
||||||
for(unsigned i=0;i<n;i++){
|
|
||||||
std::cin>>a[i];
|
|
||||||
}
|
|
||||||
for(unsigned l{0};l<n;l++){
|
|
||||||
int max_num = INT_MIN;
|
|
||||||
for (unsigned r{l};r<n;r++) {
|
|
||||||
max_num = std::max(a[r],max_num);
|
|
||||||
cnt+=max_num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
std::cout<<cnt<<"\n";
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
当然,我可以帮你解释这一段 LaTeX 代码:
|
|
||||||
|
|
||||||
\[
|
|
||||||
\sum_{l=1}^n\sum_{r=l}^n \max(a[l...r])
|
|
||||||
\]
|
|
||||||
|
|
||||||
这是一个嵌套求和表达式,分为以下几部分:
|
|
||||||
|
|
||||||
1. **外层求和** \(\sum_{l=1}^n\):表示对 \(l\) 从 1 到 \(n\) 进行求和。
|
|
||||||
2. **内层求和** \(\sum_{r=l}^n\):在每个固定的 \(l\) 值下,表示对 \(r\) 从 \(l\) 到 \(n\) 进行求和。
|
|
||||||
3. **最大值函数** \(\max(a[l...r])\):表示在数组 \(a\) 的子数组 \(a[l] \) 到 \(a[r]\) 之间取最大值。
|
|
||||||
|
|
||||||
组合在一起,这个表达式的意思是:
|
|
||||||
|
|
||||||
对于数组 \(a\) 中的所有可能的子数组 \(a[l...r]\)(其中 \(1 \leq l \leq r \leq n\)),求这些子数组的最大值的和。
|
|
||||||
|
|
||||||
逐步解释如下:
|
|
||||||
|
|
||||||
1. 选定左端点 \(l\) 从 1 到 \(n\)。
|
|
||||||
2. 对于每个 \(l\),选定右端点 \(r\) 从 \(l\) 到 \(n\)。
|
|
||||||
3. 计算子数组 \(a[l] \) 到 \(a[r]\) 的最大值。
|
|
||||||
4. 将所有这些最大值相加。
|
|
||||||
|
|
||||||
总的来说,这个表达式代表的是将所有可能的子数组的最大值进行累加的结果。
|
|
Binary file not shown.
@ -1,27 +0,0 @@
|
|||||||
#include <algorithm>
|
|
||||||
#include<bits/stdc++.h>
|
|
||||||
#include <iostream>
|
|
||||||
#include <ostream>
|
|
||||||
|
|
||||||
const int MAX_N{1000'000};
|
|
||||||
int n;
|
|
||||||
int a[MAX_N];
|
|
||||||
unsigned cnt{0};
|
|
||||||
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
std::cin.sync_with_stdio(false);
|
|
||||||
std::cin.tie(0);
|
|
||||||
std::cin>>n;
|
|
||||||
for(unsigned i=0;i<n;i++){
|
|
||||||
std::cin>>a[i];
|
|
||||||
}
|
|
||||||
for(unsigned l{0};l<n;l++){
|
|
||||||
int max_num = INT_MIN;
|
|
||||||
for (unsigned r{l};r<n;r++) {
|
|
||||||
max_num = std::max(a[r],max_num);
|
|
||||||
cnt+=max_num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
std::cout<<cnt<<"\n";
|
|
||||||
}
|
|
Binary file not shown.
@ -1,6 +0,0 @@
|
|||||||
#include <bits/stdc++.h>
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
std::cin.sync_with_stdio(false);
|
|
||||||
std::cin.tie(0);
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
#include <bits/stdc++.h>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
int times;
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
cin>>times;
|
|
||||||
for (int i=1; i<=times; i++) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user