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

每日两题day35

但凡用钱能解决的事情,我都解决不了。

每日两题


一、基础题

题目:P1031 [NOIP 2002 提高组] 均分纸牌

思路:

本题要求将若干堆纸牌通过相邻两堆之间的移动,使每堆纸牌数量相等。每次操作可以将一堆纸牌的一部分移动到相邻的下一堆。我们可以先计算出每堆应有的平均纸牌数,然后从左到右遍历每一堆,如果当前堆纸牌数不等于平均数,则将多余或不足的纸牌移动到下一堆,并计数操作次数。最终操作次数即为答案。

代码(c++):

时间复杂度 O(n)

#include <bits/stdc++.h>
#define int long long
using namespace std;void go() {int n;cin >> n;vector<int> a(n + 1);int sum = 0;for (int i = 1; i <= n; i++) {cin >> a[i];sum += a[i];}int ave = sum / n;int ans = 0;for (int i = 1; i < n; ++i) {if (a[i] != ave) {int diff = a[i] - ave;a[i + 1] += diff;ans++;}}cout << ans << endl;
}signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;while (t--) {go();}return 0;
}

题目:好数组

思路:

从任意位置切割一个含有01的环形数组并将数组中连续相同的元素合并后,可以得出 0,1,0, 1,0,1, 0,1, 1,0 4种结果。
因此,我们可以将数组a中连续相同的元素合并后,如果数组长度不超过3,则为好数组。

代码(c++):

时间复杂度 O(n)

#include <bits/stdc++.h>
using namespace std;void solve() {int n;cin >> n;vector<int> arr;for (int i = 0; i < n; ++i) {int x;cin >> x;if (arr.empty() || arr.back() != x) {arr.push_back(x);}}cout << (arr.size() <= 3 ? "YES" : "NO") << endl;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int t;cin >> t;while (t--) {solve();}return 0;
}
http://www.dtcms.com/a/578270.html

相关文章:

  • 基于 C++ 的高性能批量媒体文件压缩程序
  • Rocky9操作系统基于MySQL安装Zabbix7详解
  • 苏州知名网站制作公司wordpress博客中文插件
  • Redis学习(十五)Mac 安装 Redis
  • 怎样免费做书画网站谷歌关键词搜索
  • 网站二级域名怎么设置网站点击软件排名
  • KTH7814 ——16bit 高精度低延时霍尔角度编码器
  • 新电途充电桩爬虫-设备注册过风控
  • 国外简约网站西安最新公告
  • 八股速记(自用)
  • 网站可以跟博客做互链吗做服装辅料一般什么网站找客户
  • 体育馆客流系统让人流量数据可视化
  • 政协网站建设申请函wordpress表格折叠插件
  • 软件常用运行库:一篇解决缺少运行库问题
  • LeetCode 417 - 太平洋大西洋水流问题
  • kamailio+rtpengine对sdp的处理
  • 深圳市制作网站上海跨境电商网站制作
  • 今日行情明日机会——20251106
  • 短视频制作app网站内部优化怎么做
  • qq钓鱼网站制作建设展示类网站的意义
  • Windows通过WSL2安装Docker
  • ART虚拟机 | 类加载详解
  • 做面包网站wordpress外贸发布接口
  • 【AI应用探索】-7- LLaMA-Factory微调模型
  • AWS Elastic Beanstalk 实现 Java 应用高可用部署指南
  • 监理网站河南网站seo营销多少费用
  • 网站的注册做网站需要提供什么条件
  • 密码学系统的核心防护:FUZZ测试(模糊测试)技术原理与行业实践
  • ubuntu20.0.4源码安装Colmap流程
  • 做网站卖东西送上门网站title的写法