当前位置: 首页 > wzjs >正文

免费书画网站怎么做的建网络商城网站吗

免费书画网站怎么做的,建网络商城网站吗,seo博客推广,建筑工程行业网站建设方案牛客练习赛138-题解 https://ac.nowcoder.com/acm/contest/109081#question A-小s的签到题 题目描述 给定一个比赛榜单: 第一行是 n 个不同的大写字母,代表题号第二行是 n 个形如a/b的字符串,表示每道题的通过人数和提交人数 找到通过人…

牛客练习赛138-题解

https://ac.nowcoder.com/acm/contest/109081#question

A-小s的签到题

题目描述

给定一个比赛榜单:

  • 第一行是 n 个不同的大写字母,代表题号
  • 第二行是 n 个形如a/b的字符串,表示每道题的通过人数和提交人数

找到通过人数最多的题目作为签到题。如果有多个,输出字母顺序最小的那个。

输入示例

11
A B C D E F G H I J K
116/212 3/12 117/282 15/35 90/419 7/44 83/446 48/150 35/229 25/116 5/10

输出示例

C

解题思路

  1. 读取题目编号和通过数据
  2. 解析每个题目的通过人数
  3. 找出通过人数最多的题目
  4. 如果有多个最大值,选择字母顺序最小的

算法讲解

使用模拟法直接处理:

  1. 遍历所有题目,提取a/b中的a
  2. 维护当前最大通过人数和对应题目索引
  3. 遇到更大值更新,相同值则比较字母顺序

代码实现

#include <bits/stdc++.h>
using namespace std;
int n;
char ch[30];
void solve()
{cin >> n;int mmax = 0, idx = -1;for (int i = 0; i < n; i ++ ) cin >> ch[i]; // 读取题号for (int i = 0; i < n; i ++ ){string s;cin >> s;string s1;for (int i = 0 ; i < s.size(); i ++) // 提取通过人数{if (s[i] == '/') break;s1 += s[i];}int x = stoi(s1); // 转换为整数if (mmax < x) {    // 更新最大值mmax = x;idx = i;}}cout << ch[idx]; // 输出结果
}
signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);solve();return 0;
}

B-行列改写

题目描述

给定两个数组:

  • 长度为n的数组r
  • 长度为m的数组c

初始一个全0的n×m矩阵,通过n+m次操作(每次选择一行或一列覆盖)使得最终矩阵元素和最大。每次操作:

  • 行覆盖:选择未被选过的行i,将该行所有元素设为rᵢ
  • 列覆盖:选择未被选过的列j,将该列所有元素设为cⱼ

输入示例

3 3
1 2 3
1 2 3

输出

22

题目分析

我们需要确定行覆盖和列覆盖的最优顺序,使得最终矩阵和最大。关键在于理解后覆盖的操作会覆盖之前操作的值。

解题思路

  1. 贪心策略:对于每个位置(i,j),它的最终值由最后一次覆盖决定(行或列)
  2. 最优选择:对于行i,如果rᵢ > cⱼ,则应该最后执行行覆盖;否则最后执行列覆盖
  3. 数学推导:对每行i,计算有多少列cⱼ < rᵢ,这些列应该被行覆盖覆盖

算法讲解

  1. 排序:将列数组c排序,便于二分查找
  2. 前缀和:预处理列数组的前缀和,用于快速计算区间和
  3. 贪心计算
    • 对每行rᵢ,使用二分查找确定有多少列cⱼ < rᵢ
    • 这些列贡献k×rᵢ(行覆盖)
    • 剩余列贡献它们自身的和(列覆盖)

代码实现

#include <bits/stdc++.h>
using namespace std;
using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, m;cin >> n >> m;vector<i64> r(n), c(m);for (int i = 0; i < n; i++)cin >> r[i];for (int j = 0; j < m; j++)cin >> c[j];// 对列数组排序以便二分查找sort(c.begin(), c.end());// 计算列数组前缀和vector<i64> S(m + 1, 0);for (int j = 1; j <= m; j++) {S[j] = S[j - 1] + c[j - 1];}i64 totC = S[m]; // 所有列的和i64 ans = 0;for (int i = 0; i < n; i++) {i64 x = r[i];// 找到第一个大于x的列的位置int k = upper_bound(c.begin(), c.end(), x) - c.begin();// 前k列用行覆盖贡献k*x,剩余列用列覆盖贡献它们的和ans += (i64)k * x;ans += totC - S[k];}cout << ans;return 0;
}

C-树上替身追赶游戏

题目描述

给定一棵由 n 个节点和 n-1 条边组成的树,节点编号为 1∼n。Saki 和 Miku 初始都在节点 k。游戏分回合进行:

  1. Saki 从当前节点 a 移动到相邻节点 b
  2. Saki 在 b 的相邻节点中选择一个 c 放置替身
  3. Miku 根据替身位置 c 移动

游戏在两者重合时结束。求 Saki 最多能进行多少回合。

输入示例

5 1
1 2
1 3
1 4
1 5

输出示例

2

题目分析

题目本质是求在树上,从起点 k 出发的最长路径长度。因为每回合Saki必须移动,且Miku会向替身位置移动,最优策略是Saki沿着最长路径移动。

解题思路

  1. 将树结构存储为邻接表
  2. 从起点 k 出发进行DFS/BFS遍历
  3. 记录从 k 出发的最长路径长度

算法讲解

DFS算法

  1. 从起点开始递归遍历每个子节点
  2. 维护当前路径长度
  3. 遇到访问过的节点则回溯
  4. 最终得到最长路径长度

本题应用

  • 树的最长路径即树的直径
  • 本题中最大回合数等于从起点出发的最长路径长度

代码实现

#include <bits/stdc++.h>
using namespace std;
// #define int long long
const int N = 1e5 + 10, M = N << 1;
int e[M], ne[M], idx, h[N];
int n, k, ans;
bool st[N];
void add(int a, int b)
{e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}// 从顶点k出发,最远能够到达的距离
void dfs(int u, int fa, int stp)
{for (int i = h[u]; i != -1; i = ne[i]){int j = e[i];if (j == fa) continue;if (!st[j]) {st[j ] = 1;dfs(j, u, stp + 1);st[j ] = 0;}}ans = max(ans, stp);
}void solve()
{memset(h, -1, sizeof h);cin >> n >> k;for (int i = 0; i < n - 1; i ++){int a, b;cin >> a >> b;add(a, b);add(b, a);}dfs(k, -1, 1);cout << ans;
}
signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);solve();return 0;
}
http://www.dtcms.com/wzjs/589411.html

相关文章:

  • 门户网站优化怎么做wordpress 改为中文字体
  • wordpress本站只对会员开放wordpress提高浏览量
  • 网站怎么做筛选网站建设北京海淀
  • 网站被挂黑链了微盟商户助手
  • 海外网站加速器下载站长工具亚洲高清
  • 建设网站怎么克隆建设银行个人客户
  • 深圳做网站多少网站建设定义
  • 建设银行信用卡积分兑换话费网站如何做公众号影视网站
  • 怎么帮公司做网站建设如何做企业黄页网站
  • 搬瓦工 做网站wordpress被挂黑链
  • 如何找专业的网站建设公司手机制作简历模板免费
  • 站内关键词排名软件德州公司做网站
  • 枣阳网站开发杭州建设主管部门的网站
  • 微网站开发微网站建设建设工程专业承包交易中心网站
  • 深圳做网站收费wordpress侧边栏文章目录
  • 网站平台建设公司经营范围广州市医院网站建设
  • 手机网站设计与实现毕业设计百度商家平台
  • 访问网站详细过程做婚纱网站的意义
  • 手机网站 微信链接免费制作永久个人网站
  • php做商城网站步骤苏州网站建设公司书生商友
  • 网站中查看熊掌号怎么做的做网站商城必须要买空间吗
  • 郑州网站推广公司谷歌优化教程
  • 江津网站建设公司安顺网站建设兼职
  • 网站设计网站制作网站建设设计工具
  • 设计公司网站 唐山境外电商网站建设
  • 网站建设 数据归属汽车精品设计网站建设
  • 怎么做非法彩票网站安卓app在线开发
  • 企业网站建设的基本原则有哪些?郑州航空港建设局网站
  • 有哪些可以做问卷的网站北京海淀区有哪些企业
  • 果洛wap网站建设比较好有趣的网站有哪些推荐