AcWing 5283. 牛棚入住
题目数据范围不大,直接暴力模拟即可
按照题目所说的意思即可。
#include <math.h>
#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <iostream>
using namespace std;
const int N = 1e5 + 10;
#define de(x) cout << x << " ";
#define sf(x) scanf("%d", &x);
#define Pu puts("");
#define ll long long
int n, m, ans;
int a, b, c; // 空的小栏,空的大栏,半空的大栏
int main() {cin >> n >> a >> b;c = 0;ans = 0;int x;while (n--) {cin >> x;// 按照题意进行简单模拟if (x == 1) {if (a > 0) {a--;} else if (b > 0) {b--;c++;} else if (c > 0) {c--;} else {ans++;}} else {if (b > 0) {b--;} else {ans += 2;}}}cout << ans << endl;return 0;
}
AcWing 5284. 构造矩阵
题解参考思路
上面的题解讲的很好
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sf(x) scanf("%d", &x);
#define de(x) cout << x << " ";
#define Pu puts("");
const int N = 1e5 + 9, mod = 1e9 + 7;
ll n, m, ans; // 注意n和m数据范围是long long
int k;
ll qmi(ll x, ll y) { // 快速幂ll res = 1;while (y) {if (y & 1)res = (ll)(res * x) % mod;x = (ll)(x * x) % mod;y >>= 1;}return res;
}
int main() {cin >> n >> m >> k;if ((n + m & 1) && k == -1)cout << 0 << endl;elsecout << qmi(qmi(2, n - 1), m - 1) << endl;return 0;
}