Acwing 第 89 场周赛
Powered by:NEFU AB-IN
B站直播录像!
Link
文章目录
- Acwing 第 89 场周赛
- A AcWing 4803. 满足的数
- 题意
- 思路
- 代码
- B AcWing 4804. 构造矩阵
- 题意
- 思路
- 代码
- C AcWing 4805. 加减乘
- 题意
- 思路
- 代码
Acwing 第 89 场周赛
A AcWing 4803. 满足的数
题意
略
思路
模拟即可
代码
/* * @Author: NEFU AB-IN * @Date: 2023-02-04 18:58:52 * @FilePath: \Acwing\89cp\a\a.cpp * @LastEditTime: 2023-02-04 19:02:10 */ #include <bits/stdc++.h> using namespace std; #define int long long #undef int#define SZ(X) ((int)(X).size()) #define ALL(X) (X).begin(), (X).end() #define IOS \ios::sync_with_stdio(false); \cin.tie(nullptr); \cout.tie(nullptr) #define DEBUG(X) cout << #X << ": " << X << '\n' typedef pair<int, int> PII;const int N = 1e5 + 10, INF = 0x3f3f3f3f;signed main() {IOS;int n;cin >> n;vector<int> a(n);int sum = 0;for (int i = 0; i < n; ++i)cin >> a[i], sum += a[i];int cnt = 0;for (int i = 1; i <= 5; ++i){if ((sum + i) % (n + 1) != 1)cnt++;}cout << cnt;return 0; }
B AcWing 4804. 构造矩阵
题意
略
思路
首先遍历所有的0,在0的行和列打上标记,也就是这些点必须是0了
然后再遍历1,如果这一行或列,有一个未遍历过的或者等于1的点,那么这个点就可以覆盖为1,也就是成立,反之不成立代码
/* * @Author: NEFU AB-IN * @Date: 2023-02-04 18:58:52 * @FilePath: \Acwing\89cp\b\b.cpp * @LastEditTime: 2023-02-04 19:16:48 */ #include <bits/stdc++.h> using namespace std; #define int long long #undef int#define SZ(X) ((int)(X).size()) #define ALL(X) (X).begin(), (X).end() #define IOS \ios::sync_with_stdio(false); \cin.tie(nullptr); \cout.tie(nullptr) #define DEBUG(X) cout << #X << ": " << X << '\n' typedef pair<int, int> PII;const int N = 110, INF = 0x3f3f3f3f;int b[N][N], a[N][N];signed main() {IOS;int m, n;cin >> m >> n;for (int i = 1; i <= m; ++i){for (int j = 1; j <= n; ++j){cin >> b[i][j];a[i][j] = -1;}}for (int i = 1; i <= m; ++i){for (int j = 1; j <= n; ++j){if (b[i][j] == 0){for (int x = 1; x <= m; ++x){a[x][j] = 0;}for (int y = 1; y <= n; ++y){a[i][y] = 0;}}}}for (int i = 1; i <= m; ++i){for (int j = 1; j <= n; ++j){if (b[i][j] == 1){int cnt = 0;for (int x = 1; x <= m; ++x){if (a[x][j] == -1 || a[x][j] == 1)cnt++;if (a[x][j] == -1)a[x][j] = 1;}for (int y = 1; y <= n; ++y){if (a[i][y] == -1 || a[i][y] == 1)cnt++;if (a[i][y] == -1)a[i][y] = 1;}if (cnt == 0){cout << "NO\n";return 0;}}}}cout << "YES\n";for (int i = 1; i <= m; ++i){for (int j = 1; j <= n; ++j){cout << a[i][j] << " ";}cout << '\n';}return 0; }
C AcWing 4805. 加减乘
题意
规定两种数字操作:
加减操作,将数字加 1或减 1,代价为 x。
乘法操作,将数字乘 2,代价为 y。
每种操作的使用次数不限。
请你计算,通过上述操作,将 0 变为 n,所需花费的最小代价。思路
题目稍微变一下(意义不变),即将n变为0的最小代价
若是最优解,则满足下面两个性质:
- 加减操作不能相连
- 加减抵消没有必要
- 不能出现连续加操作
附图如下
所以情况就可以全部列出了,
dp[i]
表示将i变成0的最小代价:- 若i为奇数:
- d p [ i ] = d p [ ( i + 1 ) / 2 ] + x + y dp[i] = dp[(i + 1) / 2] + x + y dp[i]=dp[(i+1)/2]+x+y
意义为:如果i后面跟加法操作,即加1,那么再后面跟的,就只能是除操作,因为两个性质的同时约束 - d p [ i ] = d p [ i − 1 ] + x dp[i] = dp[i - 1] + x dp[i]=dp[i−1]+x
意义为:如果i后面跟减法操作,那么就变成了偶数,由于减这个操作不受性质的约束,所以后面的操作可以归为偶数的情况 - i后面不能跟除操作,因为i为奇数
- d p [ i ] = d p [ ( i + 1 ) / 2 ] + x + y dp[i] = dp[(i + 1) / 2] + x + y dp[i]=dp[(i+1)/2]+x+y
- 若i为偶数
- d p [ i ] = d p [ i / 2 ] + y dp[i] = dp[i / 2] + y dp[i]=dp[i/2]+y
- d p [ i ] = d p [ i − 1 ] + x dp[i] = dp[i - 1] + x dp[i]=dp[i−1]+x
- i后面不能跟加法操作,因为i会变奇数,而若变为奇数,且前一个操作为加法,根据性质和奇数的情况,没有符合的路,故不行
四种情况取最小值即可
- 加减操作不能相连
代码
比赛时写的,思路不够清晰
/* * @Author: NEFU AB-IN * @Date: 2023-02-04 18:58:52 * @FilePath: \Acwing\89cp\c\c.cpp * @LastEditTime: 2023-02-04 19:32:40 */ #include <bits/stdc++.h> using namespace std; #define int long long#define SZ(X) ((int)(X).size()) #define ALL(X) (X).begin(), (X).end() #define IOS \ios::sync_with_stdio(false); \cin.tie(nullptr); \cout.tie(nullptr) #define DEBUG(X) cout << #X << ": " << X << '\n' typedef pair<int, int> PII;const int N = 1e7 + 10, INF = 0x3f3f3f3f;int dp[N];signed main() {IOS;int n, x, y;cin >> n >> x >> y;for (int i = 1; i <= n; ++i){// dp[i] = min(dp[i - 1] + x, dp[i + 1] + x, dp[i / 2] + y);dp[i] = dp[i - 1] + x;if (i % 2 == 0)dp[i] = min(dp[i], dp[i / 2] + y);dp[i + 1] = dp[i] + x;if ((i + 1) % 2 == 0)dp[i + 1] = min(dp[i + 1], dp[(i + 1) / 2] + y);dp[i] = min(dp[i], dp[i + 1] + x);}cout << dp[n];return 0; }
赛后重写
#include <bits/stdc++.h> using namespace std; #define int long long#define SZ(X) ((int)(X).size()) #define ALL(X) (X).begin(), (X).end() #define IOS \ios::sync_with_stdio(false); \cin.tie(nullptr); \cout.tie(nullptr) #define DEBUG(X) cout << #X << ": " << X << '\n' typedef pair<int, int> PII;const int N = 2e7 + 10, INF = 0x3f3f3f3f;int dp[N];signed main() {IOS;int n, x, y;cin >> n >> x >> y;memset(dp, 0x3f, sizeof dp);dp[0] = 0;for (int i = 1; i <= n; ++i){if (i & 1)dp[i] = min(dp[(i + 1) / 2] + x + y, dp[i - 1] + x);elsedp[i] = min(dp[i / 2] + y, dp[i - 1] + x);}cout << dp[n];return 0; }
Acwing 第 89 场周赛相关推荐
- Acwing第72场周赛+Leetcode第314场周赛
Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...
- AcWing——第55场周赛
AcWing--第55场周赛 竞赛 - AcWing 4479. 最长子序列 - AcWing题库 给定一个长度为 n 的序列 a1,a2,-,an 和一个长度为 m 的序列 b1,b2,-,bm. ...
- Acwing 第 91 场周赛
Powered by:NEFU AB-IN B站直播录像! Link 文章目录 Acwing 第 91 场周赛 A AcWing 4861. 构造数列 题意 思路 代码 B AcWing 4862. ...
- Acwing 第 95 场周赛
Powered by:NEFU AB-IN Link 文章目录 Acwing 第 95 场周赛 A AcWing 4873. 简单计算 题意 思路 代码 B AcWing 4874. 约数 题意 思路 ...
- Acwing第 29 场周赛【完结】
TLE场 目录 4194. Pow[签到] 4195. 线段覆盖[离散化+差分] 4196. 最短路径[最短路] 4194. Pow[签到] https://www.acwing.com/proble ...
- Acwing第 21 场周赛【完结】
这场比赛是有史以来,最拉的一场.开始太慌了,第一题没看数据范围直接开始写.wa了四发后,才发现可以暴力. 第二题超时的模拟,规律一直没有找出来.总之,状态及其不好掉了大分.无语. 目录 3997. 整 ...
- 【AcWing周赛】AcWing第85场周赛
目录 <一>Acwing 4791. 死或生 一.题目 1.原题链接 2.题目描述 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 <二>Acwing 4792. 最 ...
- 【AcWing周赛】AcWing第86场周赛
目录 <一>AcWing 4794. 健身 一.题目 1.原题链接 2.题目描述 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 <二>AcWing 4795. 安全 ...
- Acwing第 39 场周赛【完结】
目录 4302. 元素分类[签到] 4303. 链表[链表] 4304. 字符串归类[并查集] 4302. 元素分类[签到] https://www.acwing.com/problem/conten ...
最新文章
- 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA
- 超越卷积、自注意力机制:强大的神经网络新算子involution
- navicat for mysql 显示中文乱码解决办法
- oracle sqlcode 多条,SQL查询以连接Oracle中多个行的列值
- 计算机类会议论文2021截稿,科学网—人工智能 | 国际会议截稿信息3条 - 李昕的博文...
- Mac提示app损坏、Error,Mac电脑最常见错误的解决方案
- mysql中表的约束,主键外键唯一键
- 如何添加页签_【康复晓讲台】不同失能者如何选择适合自己的轮椅(二)
- 服务器系统怎么做高并发,QPS 高并发 如何设计一个支撑高并发大流量的系统?...
- 零信任风口来了,新一代企业安全架构革新势在必行
- [Java] 蓝桥杯 BASIC-8 基础练习 回文数
- 【标注图像】windows下使用labelImg
- 大数据Hadoop(三十):Hadoop3.x的介绍
- bcc语料库下载_CCL语料库与BCC语料库各自的特点是什么?
- 暴雪即将公布《暗黑破坏神3》新职业
- win7 计算机名IPDNS修改,怎样改ip地址_怎样更换电脑ip地址-win7之家
- 虚拟机可以做成存储服务器吗,利用win10自带虚拟机功能轻松打造家用nas
- Vue应用框架整合与实战--前端开发生态圈
- x64dbg零基础使用教程
- Mockito之使用Answer