update
This commit is contained in:
parent
5712b907f5
commit
ca34cd3498
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,7 +1,9 @@
|
||||
*.
|
||||
# ---> C++
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
|
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,81 +0,0 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
const int MAX_N = 5'0000+5;
|
||||
int times;
|
||||
int n,k,m;
|
||||
int x[MAX_N];
|
||||
int l[MAX_N];
|
||||
int prefix_r[MAX_N];
|
||||
int r[MAX_N];
|
||||
int max_house = INT_MIN;
|
||||
|
||||
|
||||
int main(){
|
||||
cin.sync_with_stdio(false);
|
||||
cin.tie(0);
|
||||
|
||||
cin>>times;
|
||||
for(int t=1;t<=times;t++){
|
||||
max_house = INT_MIN;
|
||||
prefix_r[0]=0;
|
||||
cin>>n>>k>>m;
|
||||
for (int i=1; i<=n; i++) {
|
||||
cin>>x[i];
|
||||
if (max_house<=x[i])max_house=x[i];
|
||||
}
|
||||
string s;
|
||||
cin>>s;
|
||||
assert(s.size()==n-1);
|
||||
for(int i=1;i<=s.size();i++){
|
||||
if (s[i-1]=='1') {
|
||||
l[i]=1;
|
||||
for (int j=x[i]+1; j<=x[i+1]; j++) {
|
||||
r[j]=l[i];
|
||||
}
|
||||
}else {
|
||||
l[i]=0;
|
||||
}
|
||||
}
|
||||
for (int j=1; j<=k; j++) {
|
||||
for(int i=1;i<=max_house;i++){
|
||||
prefix_r[i]=prefix_r[i-1]+r[i];
|
||||
}
|
||||
int max_dir=INT_MIN;
|
||||
int max_num=INT_MIN;
|
||||
for (int i=1; i<=max_house-m; i++) {
|
||||
if (prefix_r[i+m]-prefix_r[i]>max_num) {
|
||||
max_dir=i;
|
||||
max_num=prefix_r[i+m]-prefix_r[i];
|
||||
}
|
||||
}
|
||||
//RM
|
||||
// cout<<"\nMAX_DIR:"<<max_dir<<"\n";
|
||||
for (int i=max_dir+1; i<=max_dir+m; i++) {
|
||||
r[i]=0;
|
||||
}
|
||||
|
||||
int cnt=0;
|
||||
for (int i=1; i<=max_house; i++) {
|
||||
cnt+=r[i];
|
||||
}
|
||||
//RM
|
||||
// cout<<"\ncnt:"<<cnt<<"\n";
|
||||
|
||||
cout<<cnt<<"\n";
|
||||
}
|
||||
//RM
|
||||
// cout<<"\nNEXT------------\n"<<endl;
|
||||
|
||||
/*
|
||||
cout<<"\nl:\n";
|
||||
for(int i=1;i<=n;i++){
|
||||
cout<<l[i]<<",";
|
||||
}
|
||||
cout<<"\n";
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
110
day2/U232520/U232520.md
Normal file
110
day2/U232520/U232520.md
Normal file
@ -0,0 +1,110 @@
|
||||
# 黑色矩形
|
||||
|
||||
## 题目描述
|
||||
|
||||
一个 $n\times n$ 的黑白网格。定义黑色矩形为:
|
||||
- 矩形由至少2个格子构成,且构成矩形的格子都为黑色
|
||||
|
||||
现在你要选择2个不重叠(没有公共格子)的黑色矩形,问有多少种方案,对 `1e4+7` 取模。2种方案不同,当且仅当选择的黑色矩形集合不同。
|
||||
|
||||
![](https://cdn.luogu.com.cn/upload/image_hosting/h7lgmovq.png)
|
||||
|
||||
左图是2个不是黑色举行的例子;右图是3个是黑色矩形的例子。
|
||||
|
||||
参见样例1解释。
|
||||
|
||||
## 输入格式
|
||||
|
||||
第一行1个整数 $n$
|
||||
|
||||
接下来 $n$ 行,每行1个长度为 $n$ 的01串,$1$ 代表黑色,$0$ 代表白色。
|
||||
|
||||
## 输出格式
|
||||
|
||||
输出1个整数代表答案,对 `1e4+7` 取模。
|
||||
|
||||
## 样例 #1
|
||||
|
||||
### 样例输入 #1
|
||||
|
||||
```
|
||||
2
|
||||
11
|
||||
11
|
||||
```
|
||||
|
||||
### 样例输出 #1
|
||||
|
||||
```
|
||||
2
|
||||
```
|
||||
|
||||
## 样例 #2
|
||||
|
||||
### 样例输入 #2
|
||||
|
||||
```
|
||||
3
|
||||
110
|
||||
110
|
||||
100
|
||||
```
|
||||
|
||||
### 样例输出 #2
|
||||
|
||||
```
|
||||
5
|
||||
```
|
||||
|
||||
## 样例 #3
|
||||
|
||||
### 样例输入 #3
|
||||
|
||||
```
|
||||
5
|
||||
01100
|
||||
00100
|
||||
01100
|
||||
00000
|
||||
11000
|
||||
```
|
||||
|
||||
### 样例输出 #3
|
||||
|
||||
```
|
||||
8
|
||||
```
|
||||
|
||||
## 样例 #4
|
||||
|
||||
### 样例输入 #4
|
||||
|
||||
```
|
||||
见下发文件
|
||||
```
|
||||
|
||||
### 样例输出 #4
|
||||
|
||||
```
|
||||
见下发文件
|
||||
```
|
||||
|
||||
## 提示
|
||||
|
||||
#### 样例1解释
|
||||
|
||||
共两种方案:选择第1行和第2行,或者选择第1列和第2列
|
||||
|
||||
#### 数据范围
|
||||
|
||||
对于所有数据,$1\le n \le 1500$
|
||||
|
||||
subtask1(20pts):$n\le 10$
|
||||
|
||||
subtask2(20pts):$n\le 50$
|
||||
|
||||
subtask3(20pts):$n\le 500$
|
||||
|
||||
subtask4(10pts):网格中全部为黑色
|
||||
|
||||
subtask5(30pts):无特殊限制
|
Binary file not shown.
@ -1,6 +1,20 @@
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
#define int long long
|
||||
|
||||
int main(){
|
||||
|
||||
const int MAX_HW=1e9+5;
|
||||
int h,w,q1,q2;
|
||||
|
||||
signed main(){
|
||||
cin>>h>>w>>q1>>q2;
|
||||
int grid[h][w];
|
||||
for(int i=1;i<=q1;i++){
|
||||
int r1,r2,c1,c2,x;
|
||||
cin>>r1>>r2>>c1>>c2;
|
||||
|
||||
}
|
||||
for (int i=1 ;i<=q2;i++) {
|
||||
int r1,r2,c1,c2;
|
||||
cin>>r1>>r2>>c1>>c2;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user