Codeforces Round 957 (Div. 3)(A~D题)

A. Only Pluses

 

 思路:

优先增加最小的数,它们的乘积会是最优,假如只有两个数a和b,b>a,那么a + 1,就增加一份b。如果b + 1,只能增加1份a。因为 b > a,所以增加小的数是最优的。

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
typedef long long ll;
typedef unsigned long long ull;
ll n, m, t, h, k;
ll a, b, c;
ll ans, num, sum1,sum,sum2, cnt;
ll dp[N], f1[N], f2[N];
ll mp[105][105];
bool flag, vis[N];
string s, ss;
void solve()
{ll x;vector<ll>q;for (int i = 1; i <= 3; i++){cin >> x;q.push_back(x);}for (int i = 1; i <= 5; i++){sort(q.begin(), q.end());q[0]++;}cout << q[0] * q[1] * q[2] << endl;;
}
int main()
{cin >> t;while (t--) {solve();}return 0;
}

B. Angry Monk

思路:

贪心思想,最长的片段作为基础片段,其他长度的片段都要经历分解+组合两种操作(除长度为1的片段外),直接计数即可.

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
typedef long long ll;
typedef unsigned long long ull;
ll n, m, t, h, k;
ll a, b, c;
ll ans, num, sum1,sum,sum2, cnt;
ll dp[N], f1[N], f2[N];
ll mp[105][105];
bool flag, vis[N];
string s, ss;
void solve()
{cin >> n >> m;for (int i = 1; i <= m; i++) {cin >> dp[i];}ans = 0;sort(dp + 1, dp + 1 + m);for (int i = 1; i < m; i++) {if (dp[i] != 1) {ans += dp[i] - 1;}}cout << ans + n - dp[m] << endl;
}
int main()
{cin >> t;while (t--) {solve();}return 0;
}

C. Gorilla and Permutation

思路:

优先让满足f条件的数早出现(越大越早),让满足g条件的数晚出现(越小越早)

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
typedef long long ll;
typedef unsigned long long ull;
ll n, m, t, h, k;
ll a, b, c;
ll ans, num, sum1,sum,sum2, cnt;
ll dp[N], f1[N], f2[N];
ll mp[105][105];
bool flag, vis[N];
string s, ss;
void solve()
{cin >> n >> m >> k;for (int i = n; i >= k; i--) cout << i << " ";for (int i = k - 1; i >= m + 1; i--) cout << i << " ";for (int i = 1; i <= m; i++) cout << i << " ";cout << endl;
}
int main()
{cin >> t;while (t--) {cin >> n >> m >> k;for (int i = n; i >= k; i--)cout << i << " ";for (int i = k - 1; i >= m + 1; i--)cout << i << " ";for (int i = 1; i <= m; i++)cout << i << " ";cout << endl;}return 0;
}

D. Test of Love

 

思路:

分情况讨论。 从右往左记录距离当前位置最近的L的位置,用next数组表示。维护一个变量rightmost,表示当前位置~rightmost之间的位置都可以去(初始时为m)。
1: 如果rightmost >= next[i], i = next[i], 更新rightmost。(跳到下一个L位置)
2: 如果当前在陆地上,从当前能跳的最右边的距离往左找,找到第一个W(能到达的最右边的water),如果k <= 0或者没找到W, 无解
3: 如果当前在水里(W),k <= 0或者下一个字母是C,无解。 

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
typedef long long ll;
typedef unsigned long long ull;
ll n, m, t, h, k;
ll a, b, c;
ll ans, num, sum1,sum,sum2, cnt;
ll dp[N], f1[N], f2[N];
ll mp[105][105];
bool flag, vis[N];
string s, ss;
void solve()
{cin >> n >> m >> k;cin >> s;s = " " + s;if (m > n) {cout << "YES" << endl;return;}else {ans = m;for (int i = 1; i <= n; i++) {if (ans <= 0) {cout << "NO" << endl;return;}if (s[i] == 'L')ans = m;if (s[i] == 'W') {if (k > 0) {if (ans > 1)ans--;else {ans = 1;k--;}}elseans--;}if (s[i] == 'C')ans--;}}if (ans > 0)cout << "YES" << endl;elsecout << "NO" << endl;
}
int main()
{cin >> t;while (t--) {solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot集成groovy快速入门Demo

1.什么是groovy&#xff1f; Groovy 是构建在 JVM 上的一个轻量级却强大的动态语言&#xff0c;它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。 Groovy 就是用 Java 写的&#xff0c;Groovy 语法与 Java 语法类似&#xff0c;Groovy 代码能够与 Java 代码很好地结合&…

STM32MP135裸机编程:定时器内核时钟频率计算方法

0 工具准备 STM32MP13xx参考手册 1 定时器内核时钟频率计算方法 1.1 定时器分组 STM32MP135的定时器按照时钟源不同分成了三组&#xff0c;如下&#xff1a; APB1: APB2: APB6&#xff1a; 1.2 定时器内核时钟频率计算方法 APB1DIV是APB1的分频系数&#xff0c;APB2DIV、…

python双下划线怎么打

连续按键盘上的“shift_”键两次即可&#xff0c;不同编辑器可能显示会不太一样。像图1中那样没连起来也是对的&#xff0c;没有语法错误。

基于python豆瓣电影爬虫数据可视化分析推荐系统(完整系统源码+数据库+详细文档+论文+详细部署教程)

文章目录 基于python豆瓣电影爬虫数据可视化分析推荐系统&#xff08;完整系统源码数据库详细文档论文详细部署教程&#xff09;一、 选题背景二、研究目的三、开发技术介绍1、Django框架2、LDA3、机器学习推荐算法4、大数据爬虫5、大数据Echarts可视化 四、系统设计思想五、部…

C++ | Leetcode C++题解之第235题二叉搜索树的最近公共祖先

题目&#xff1a; 题解&#xff1a; class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {TreeNode* ancestor root;while (true) {if (p->val < ancestor->val && q->val < ancestor->val) {anc…

贪心算法案例

1.买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…

代码随想录算法训练营第31天|LeetCode 56. 合并区间、738.单调递增的数字、968.监控二叉树

1. LeetCode 56. 合并区间 题目链接&#xff1a;https://leetcode.cn/problems/merge-intervals/description/ 文章链接&#xff1a;https://programmercarl.com/0056.合并区间.html 视频链接&#xff1a;https://www.bilibili.com/video/BV1wx4y157nD 思路&#xff1a; 本题关…

SpringBoot新手快速入门系列教程十一:自动生成API文档,Springboot3.x集成SpringDoc

本次项目我们用Maven来做&#xff0c;最近发现gradle其实很多项目的支持比较差&#xff0c;所以项目还是用Maven来新建项目。对比了市面上的几种API生成第三方库&#xff0c;只有springdoc 是能够按照文档就能部署出来的。 官网&#xff1a; OpenAPI 3 Library for spring-bo…

链接追踪系列-04.linux服务器docker安装elk

[rootVM-24-17-centos ~]# cat /proc/sys/vm/max_map_count 65530 [rootVM-24-17-centos ~]# sysctl -w vm.max_map_count262144 vm.max_map_count 262144 #先创建出相应目录&#xff1a;/opt/dockerV/es/…docker run -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -d -p 92…

【流媒体】 通过ffmpeg硬解码拉流RTSP并播放

简介 目前RTSP拉流是网络摄像头获取图片数据常用的方法&#xff0c;但通过CPU软解码的方式不仅延时高且十分占用资源&#xff0c;本文提供了一种从网络摄像头RTSP硬解码的拉流的方法&#xff0c;并且提供python代码以便从网络摄像头获取图片进行后续算法处理。 下载ffmpeg F…

2024-07-15 Unity插件 Odin Inspector3 —— Button Attributes

文章目录 1 说明2 Button 特性2.1 Button2.2 ButtonGroup2.3 EnumPaging2.4 EnumToggleButtons2.5 InlineButton2.6 ResponsiveButtonGroup 1 说明 ​ 本章介绍 Odin Inspector 插件中有关 Button 特性的使用方法。 2 Button 特性 2.1 Button 依据方法&#xff0c;在 Inspec…

QT控件篇三

一、微调框 微调框&#xff08;QSpinBox&#xff09;是一个常用的Qt控件&#xff0c;允许用户通过增加或减少值来输入数字。分为两种, 整型-QSpinBox 浮点 QDoubleSpinBoxQSpinBox&#xff08;微调框&#xff09;的 setSingleStep 函数可以用来设置每次调整的步长&#xff08;…

【人工智能】人工智能与传统美工结合,AI美工的详细解析。

AI美工是一个结合了人工智能技术与美工设计的岗位&#xff0c;它利用AI工具和技术来辅助或完成美工设计的各项工作。以下是对AI美工的详细解析&#xff1a; 一、定义与职责 AI美工是指能够熟练使用AI工具和技术&#xff0c;如Midjourney、StableDiffusion等AIGC&#xff08;人…

2024安全行业大模型技术应用态势发展报告

以上是资料简介和目录&#xff0c;如需下载&#xff0c;请前往星球获取&#xff1a;https://t.zsxq.com/dH9bu

Python爬虫入门篇学习记录

免责声明 本文的爬虫知识仅用于合法和合理的数据收集&#xff0c;使用者需遵守相关法律法规及目标网站的爬取规则&#xff0c;尊重数据隐私&#xff0c;合理设置访问频率&#xff0c;不得用于非法目的或侵犯他人权益。因使用网络爬虫产生的任何法律纠纷或损失&#xff0c;由使用…

计算机网络之网络互连

1.什么是网络互连 1.1网络互连的目的 将两个或者两个以上具有独立自治能力的计算机网络连接起来&#xff0c;实现数据流通&#xff0c;扩大资源共享范围&#xff0c;或者容纳更多用户。 网络互连包括&#xff1a; 同构网络、异构网络的互连&#xff0c; 局域网与局域网&…

【Linux】多线程_5

文章目录 九、多线程6. 条件变量7. 生产者消费者模型 未完待续 九、多线程 6. 条件变量 在多线程编程中&#xff0c;一个或多个线程可能需要等待某个条件的发生&#xff0c;然后才能继续执行&#xff0c;而不是一直忙等。这种等待通常会占用CPU资源。条件变量提供了一种机制&…

【Java 的四大引用详解】

首先分别介绍一下这几种引用 强引用&#xff1a; 只要能通过GC ROOT根对象引用链找到就不会被垃圾回收器回收&#xff0c;当所有的GC Root都不通过强引用引用该对象时&#xff0c;才能被垃圾回收器回收。 软引用&#xff08;SoftReference&#xff09;&#xff1a; 当只有软引…

从汇编层看64位程序运行——栈上变量的rbp表达

在《从汇编层看64位程序运行——参数传递的底层实现》中&#xff0c;我们看到了栈帧中的变量是分为两种&#xff1a; 局部非静态变量。调用超过6个参数的函数时&#xff0c;从第7个参数开始的入参。 比如下面的代码 void foo10(int a, int b, int c, int d, int e, int f, i…

Python实现简单的ui界面设计(小白入门)

引言&#xff1a; 当我们书写一个python程序时&#xff0c;我们在控制台输入信息时&#xff0c;往往多有不便&#xff0c;并且为了更加美观且直观的方式输入控制命令&#xff0c;我们常常设计一个ui界面&#xff0c;这样就能方便执行相关功能。如计算器、日历等界面。 正文&a…