牛客小白月赛87

说明

        年后第一次写题,已经麻了,这次的题很简单但居然只写了两道题。有种本该发挥80分的水平,但是只做出了20分的水平的感觉。不过剩下几个题(除了G题),比完赛一小时内就AC了。欢迎大家交流学习。(最后的G题没做,目前还不打算开始练这种题)

题目列表

A-小苯的石子游戏

思路

        模拟双方每次都取最大的,然后比较双方大小输出即可。

参考题解
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N = 1e2+5;
int a[N];
void solve(){int n;cin >> n;for(int i = 1;i<=n;i++) cin >> a[i];int Alice=0,Bob=0;for(int i = n;i>=1;i--){if((n&1)==(i&1)) Alice+=a[i];else Bob+=a[i];}if(Alice>Bob) cout << "Alice" << endl;else cout << "Bob" << endl;
}
signed main(){//小苯的石子游戏 ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;cin >> T;while(T--){solve();}return 0;
}

 B-小苯的排序疑惑

思路

        模拟排一下即可。(我这场就是一直卡在这题,我一开始想太复杂了,if讨论没明白,害~)

参考题解
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N = 2e5+5;
int a[N],b[N],c[N];
int n;
bool check(int *a){for(int i = 1;i<=n-1;i++) if(a[i]>a[i+1]) return false;return true;
}
void solve(){cin >> n;for(int i = 1;i<=n;i++) cin >> a[i];for(int i = 1;i<=n;i++){b[i]=a[i];c[i]=a[i];}if(check(a)) cout << "YES" << endl;else{sort(b+1,b+n);sort(c+2,c+n+1);if(!check(b)&&!check(c)) cout << "NO" << endl;else cout << "YES" << endl;}
}
signed main(){//小苯的排序疑惑 ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;cin >> T;while(T--){solve();}return 0;
}

C-小苯的IDE括号问题(easy)

思路

        用双指针模拟即可。

参考题解
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
// const int N = 2e5+5;
string s;
void solve(){int n,k;cin >> n >> k;cin >> s;int pos=s.find('I');int l=pos-1;int r=pos+1;while(k--){string op;cin >> op;if(op=="backspace"){if(l>=0){if(s[l]=='('&&s[r]==')'&&r<n) r++;l--;}}else{if(r<n) r++;}}for(int i = 0;i<=l;i++) cout << s[i];cout << 'I';for(int i = r;i<n;i++) cout << s[i];cout << endl;
}
signed main(){//小苯的IDE括号问题(easy) ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//     cin >> T;while(T--){solve();}return 0;
}

D-小苯的IDE括号问题(hard)

思路

        用两个数组模拟四种情况,用deque似乎也能实现,不过我还不太会用deque。

参考题解
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N = 2e5+5;void solve(){int n,k;cin >> n >> k;string s;cin >> s;int pos = s.find('I');vector<char> l;vector<char> r;for(int i = 0;i<pos;i++){l.emplace_back(s[i]);}for(int i = pos+1;i<n;i++){r.emplace_back(s[i]);}reverse(r.begin(),r.end());while(k--){string op;cin >> op;if(op=="backspace"){if(l.size()){if(l.back()=='('&&r.back()==')'&&r.size()) r.pop_back();l.pop_back();}}else if(op=="delete"){if(r.size()) r.pop_back();}else if(op=="->"){if(r.size()){l.emplace_back(r.back());r.pop_back();}}else{if(l.size()){r.emplace_back(l.back());l.pop_back();}}}
//     for(int i = 0;i<l.size();i++) cout << l[i];for(char &c:l) cout << c;cout << 'I';if(r.size()){reverse(r.begin(),r.end());for(char &c:r) cout << c;}
//     for(int i = r.size()-1;i>=0;i--) cout << r[i];cout << endl;
}
signed main(){//小苯的IDE括号问题(hard) ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//     cin >> T;while(T--){solve();}return 0;
}

E-小苯的数组构造

思路

        读懂题就很好做,需要考虑前缀最大值,然后模拟一下。

参考题解
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N = 2e5+5;void solve(){int n;cin >> n;vector<int> a(n+1);for(int i = 1;i<=n;i++) cin >> a[i];int maxn = a[1];vector<int> ans(n+1);
//     ans[1]=0;for(int i = 2;i<=n;i++){int now=max(0,maxn-a[i]);ans[i]=now;maxn=max(maxn,a[i]);}for(int i = 1;i<=n;i++) cout << ans[i] << " \n"[i==n];
}
signed main(){//小苯的数组构造  ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//     cin >> T;while(T--){solve();}return 0;
}

G-小苯的逆序对

思路

        主要的思路是贪心,我们知道多个数如果做与运算,值肯定变小,根据题意,与的和就求最后一个数即可,前面的异或和或运算用前缀和的思想求一遍,然后最后用一个循环求和的最大值。

参考题解
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){int n;cin >> n;
//     cout << fixed << setprecision(20);vector<ll> a(n);for(ll& ai:a) cin >> ai;vector<ll> x(n);vector<ll> o(n);for(int i = 0;i<n-1;i++){if(i==0) x[i]=0LL^a[i];else x[i]=x[i-1]^a[i];}for(int i = n-2;i>=0;i--){o[i]=o[i+1]|a[i];}ll ans=0;for(int i = 0;i<n-2;i++){ans=max(ans,x[i]+o[i+1]+a.back());}cout << ans << endl;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//     cin >> T;while(T--){solve();}return 0;
}

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

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

相关文章

java8-用optional取代nu11

本章内容口nu11引用引发的问题&#xff0c;以及为什么要避免nu11引用从nu11到optiona1:以nu11安全的方式重写你的域模型让optiona1发光发热:去除代码中对nu11的检查 读取optiona1中可能值的几种方法口对可能缺失值的再思考 如果你作为Java程序员曾经遭遇过Nu11PointerException…

【动态规划初识】不同的二叉搜索树

每日一道算法题之不同二叉搜索树个数 一、题目描述二、思路三、C++代码一、题目描述 题目来源:LeetCode 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 C++程序要求输入输出格式如下: 示例1:…

BUUCTF misc 专题(47)[SWPU2019]神奇的二维码

下载附件&#xff0c;得到一张二维码图片&#xff0c;并用工具扫描&#xff08;因为图片违规了&#xff0c;所以就不放了哈。工具的话&#xff0c;一般的二维码扫描都可以&#xff09; swpuctf{flag_is_not_here}&#xff0c;&#xff08;刚开始出了点小差错对不住各位师傅&am…

【机器学习笔记】5 机器学习实践

数据集划分 子集划分 训练集&#xff08;Training Set&#xff09;&#xff1a;帮助我们训练模型&#xff0c;简单的说就是通过训练集的数据让我们确定拟合曲线的参数。 验证集&#xff08;Validation Set&#xff09;&#xff1a;也叫做开发集&#xff08; Dev Set &#xf…

基于Springboot的社区物资交易互助平台(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的社区物资交易互助平台&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

在已有代码基础上创建Git仓库

在已有代码基础上创建Git仓库 背景方法处理问题 背景 先进行了代码编写&#xff0c;后续想放入仓库方便大家一起合作开发&#xff0c;此时需要在已有代码的基础上建立仓库。 方法 首先在Gitee或者GitHub上创建仓库&#xff0c;这里以Gitee为例。创建完后&#xff0c;我们可以…

阿里云BGP多线精品EIP香港CN2线路低时延,价格贵

阿里云香港等地域服务器的网络线路类型可以选择BGP&#xff08;多线&#xff09;和 BGP&#xff08;多线&#xff09;精品&#xff0c;普通的BGP多线和精品有什么区别&#xff1f;BGP&#xff08;多线&#xff09;适用于香港本地、香港和海外之间的互联网访问。使用BGP&#xf…

kali无线渗透之WEP加密模式与破解13

WEP加密是最早在无线加密中使用的技术&#xff0c;新的升级程序在设置上和以前的有点不同&#xff0c;功能当然也比之前丰富一些。但是随着时间的推移&#xff0c;人们发现了WEP标准的许多漏洞。随着计算能力的提高&#xff0c;利用难度也越来越低。尽管WEP加密方式存在许多漏洞…

【二叉树层序遍历】【队列】Leetcode 102 107 199 637 429 515 116 117 104 111

【二叉树层序遍历】【队列】Leetcode 102 107 199 637 429 515 116 117 102. 二叉树的层序遍历解法 用队列实现107. 二叉树的层序遍历 II解法199. 二叉树的右视图 解法637. 二叉树的层平均值 解法429. N叉树的层序遍历515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节…

102.网游逆向分析与插件开发-网络通信封包解析-解读喊话道具数据包并且利用Net发送

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;解读聊天数据包并且利用Net发送 码云地址&#xff08;游戏窗口化助手 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;cc6370dc5ca6b0176aafc…

【C语言】指针的进阶篇,深入理解指针和数组,函数之间的关系

欢迎来CILMY23的博客喔&#xff0c;本期系列为【C语言】指针的进阶篇&#xff0c;深入理解指针和数组&#xff0c;函数之间的关系&#xff0c;图文讲解其他指针类型以及指针和数组&#xff0c;函数之间的关系&#xff0c;带大家更深刻理解指针&#xff0c;以及数组指针&#xf…

【DDD】学习笔记-四色建模法

或许正是认识到彩色 UML 在建模过程的不足之处&#xff0c;ThoughtWorks 的徐昊才在彩色 UML 基础之上提出了自己的“四色建模法”。可考的四色建模法资料仅见于徐昊在 InfoQ 上发表的文章运用四色建模法进行领域分析。在这篇文章中&#xff0c;徐昊回答了建模活动的一个关键问…