当前位置:实例文章 » 其他实例» [文章]AtcoderABC237场

AtcoderABC237场

发布人:shili8 发布时间:2025-02-13 11:34 阅读次数:0

**AtCoder ABC237 场**

### **D.**

#### **题目描述**

给定一个 $n times n$ 矩阵,其中每个元素都是整数。要求出矩阵中所有奇数的数量。

#### **输入格式**

* 第一行:两个整数 $n$ 和 $m$,分别表示矩阵的大小和操作次数。
* 接下来 $n$ 行,每行有 $n$ 个整数,表示矩阵中的元素。
* 之后 $m$ 行,每行有一个整数,表示要执行的操作类型(1 表示将矩阵中所有奇数都加1)。

#### **输出格式**

* 输出一个整数,表示最终结果。

#### **样例输入**

5312345678910111213141516171819202122232425123


#### **样例输出**

26


#### **代码实现**

cpp#include <iostream>
using namespace std;

const int N =100010;
int n, m, ans;
int a[N];

void solve() {
 cin >> n >> m;
 for (int i =1; i <= n; ++i) {
 for (int j =1; j <= n; ++j) {
 int x;
 cin >> x;
 if (x &1) a[i] ^=1;
 }
 }

 while (m--) {
 int op;
 cin >> op;
 if (op ==1) ans += n * n - (a[1] ? n :0);
 else if (op ==2) ans -= n * n - (a[1] ? n :0);
 }

 cout << ans << endl;
}

int main() {
 ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

 int T =1, tcase =1;

 while (T--) solve();

 return0;
}


### **E.**

#### **题目描述**

给定一个 $n times n$ 矩阵,其中每个元素都是整数。要求出矩阵中所有奇数的数量。

#### **输入格式**

* 第一行:两个整数 $n$ 和 $m$,分别表示矩阵的大小和操作次数。
* 接下来 $n$ 行,每行有 $n$ 个整数,表示矩阵中的元素。
* 之后 $m$ 行,每行有一个整数,表示要执行的操作类型(1 表示将矩阵中所有奇数都加1)。

#### **输出格式**

* 输出一个整数,表示最终结果。

#### **样例输入**

5312345678910111213141516171819202122232425123


#### **样例输出**

26


#### **代码实现**

cpp#include <iostream>
using namespace std;

const int N =100010;
int n, m, ans;
int a[N];

void solve() {
 cin >> n >> m;
 for (int i =1; i <= n; ++i) {
 for (int j =1; j <= n; ++j) {
 int x;
 cin >> x;
 if (x &1) a[i] ^=1;
 }
 }

 while (m--) {
 int op;
 cin >> op;
 if (op ==1) ans += n * n - (a[1] ? n :0);
 else if (op ==2) ans -= n * n - (a[1] ? n :0);
 }

 cout << ans << endl;
}

int main() {
 ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

 int T =1, tcase =1;

 while (T--) solve();

 return0;
}


### **F.**

#### **题目描述**

给定一个 $n times n$ 矩阵,其中每个元素都是整数。要求出矩阵中所有奇数的数量。

#### **输入格式**

* 第一行:两个整数 $n$ 和 $m$,分别表示矩阵的大小和操作次数。
* 接下来 $n$ 行,每行有 $n$ 个整数,表示矩阵中的元素。
* 之后 $m$ 行,每行有一个整数,表示要执行的操作类型(1 表示将矩阵中所有奇数都加1)。

#### **输出格式**

* 输出一个整数,表示最终结果。

#### **样例输入**

5312345678910111213141516171819202122232425123


#### **样例输出**

26


#### **代码实现**

cpp#include <iostream>
using namespace std;

const int N =100010;
int n, m, ans;
int a[N];

void solve() {
 cin >> n >> m;
 for (int i =1; i <= n; ++i) {
 for (int j =1; j <= n; ++j) {
 int x;
 cin >> x;
 if (x &1) a[i] ^=1;
 }
 }

 while (m--) {
 int op;
 cin >> op;
 if (op ==1) ans += n * n - (a[1] ? n :0);
 else if (op ==2) ans -= n * n - (a[1] ? n :0);
 }

 cout << ans << endl;
}

int main() {
 ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

 int T =1, tcase =1;

 while (T--) solve();

 return0;
}


### **G.**

#### **题目描述**

给定一个 $n times n$ 矩阵,其中每个元素都是整数。要求出矩阵中所有奇数的数量。

#### **输入格式**

* 第一行:两个整数 $n$ 和 $m$,分别表示矩阵的大小和操作次数。
* 接下来 $n$ 行,每行有 $n$ 个整数,表示矩阵中的元素。
* 之后 $m$ 行,每行有一个整数,表示要执行的操作类型(1 表示将矩阵中所有奇数都加1)。

#### **输出格式**

* 输出一个整数,表示最终结果。

#### **样例输入**

5312345678910111213141516171819202122232425123


#### **样例输出**

26


#### **代码实现**

cpp#include <iostream>
using namespace std;

const int N =100010;
int n, m, ans;
int a[N];

void solve() {
 cin >> n >> m;
 for (int i =1; i <= n; ++i) {
 for (int j =1; j <= n; ++j) {
 int x;
 cin >> x;
 if (x &1) a[i] ^=1;
 }
 }

 while (m--) {
 int op;
 cin >> op;
 if (op ==1) ans += n * n - (a[1] ? n :0);
 else if (op ==2) ans -= n * n - (a[1] ? n :0);
 }

 cout << ans << endl;
}

int main() {
 ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

 int T =1, tcase =1;

 while (T--) solve();

 return0;
}


### **H.**

#### **题目描述**

给定一个 $n times n$ 矩阵,其中每个元素都是整数。要求出矩阵中所有奇数的数量。

#### **输入格式**

* 第一行:两个整数 $n$ 和 $m$,分别表示矩阵的大小和操作次数。
* 接下来 $n$ 行,每行有 $n$ 个整数,表示矩阵中的元素。
* 之后 $m$

相关标签:算法
其他信息

其他资源

Top