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

牛客周赛 Round 99题解

Round 99

思路:我们之间去用字符串去统计即可,输入一个字符串,看相邻有没有99即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
string s;
signed main()
{cin>>s;int n=s.size();for(int i=1;i<n;i++){if(s[i-1]=='9'&&s[i]=='9'){cout<<"YES\n";return 0;}}cout<<"NO\n";return  0;
}

缺陷型电脑

思路:怎么说呢?其实就是去看输入的字符串里面最大的ascii码值是多少,输出这个最大的码值即可

我们之间用字符减去‘a’+97即可

找到最大值

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
string s;
void solve()
{cin>>n;cin>>s;int ans=0;for(char c:s){ans=max(ans,c-'a'+97LL);}cout<<ans<<"\n";
}
signed main()
{cin>>t;while(t--){solve();}return 0;
}

小苯的洞数构造

思路:基本上最高位用4或者8,后面全部用8即可,如果是0,就输出1,否则就是按照洞数去构造

4,8,48,88,488,888这种序列即可

 

#include<bits/stdc++.h>
using namespace std;
#define int long longint k;
void solve()
{cin>>k;int cnt8=k/2;int cnt4=k%2;for(int i=1;i<=cnt4;i++)cout<<"4";for(int i=1;i<=cnt8;i++)cout<<"8";cout<<"\n";
}
signed main()
{int t;cin>>t;while(t--){solve();}return 0;
}

前缀和

思路:其实这题只有在奇偶性变换的时候才会用到计数,否则都是偶数,找到规律直接写即可

那么什么时候回出现奇偶性变换呢?就是当p%x==0的时候

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int x,p;
void solve()
{cin>>x>>p;if(p%x==0){cout<<(p/x)*2-1<<"\n";}else{cout<<(p-(p/x))*2<<"\n";}
}
signed main()
{cin>>t;while(t--){solve();}return 0;
}

小宇

思路:其实仔细想想这道题,其实会将整个序列分成两部分,左部分,会将当前位置的值都变成下标,右半部分就是不需要变化的,我们只需要枚举从哪个位置开始进行右半部分即可,我们可以知道右半部分的值一定是ai>=i的,并且ai<ai+1的,我们只需要去统计左半部分的数的种类,就是最后的答案了

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
int a[200005];
void solve() {int n;cin >> n;vector<int> a(n);map<int, int> cnt, mp;for (int i = 0; i < n; i++) {cin >> a[i];cnt[a[i]]++;}int c = 1E9;for (int i = n - 1; i >= 0; i--) {if (a[i] <= i || a[i] >= c || cnt[a[i]] > 1 || mp.count(a[i])) {mp[a[i]] = 1, c = i + 1;} else {c = a[i];}}cout << mp.size() << '\n';
}
signed main()
{cin>>t;while(t--)solve();return 0;
}

汉堡猪猪分糖果

思路:将n个糖果分到m个人手上,算其与的值,然后想让这个值最大,那么我们知道只有当m个人在这一位都是1的时候,与出来才是1,因此我们可以从最高位开始枚举,也就是第31位,判断剩下的n是否大于等于m*(1<<bit)如果大于等于,就可以直接让这一位全部变成1

否则 我们要去看剩下的是否能让当前位后面的全部变成1,如果不能,就直接跳过,如果可以就在这一位补充k个人有即可,我们可以列一个式子

n-k*(1<<bit)<=m*(1<<bit)-m

不等式的左边表示剩下的总的个数减去k个有糖果的

不等式的右边表示将剩下的位置填满所需的代价,这个是一定满足的

然后最后算k向上取整即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n,m;
void solve()
{cin>>n>>m;int ans=0;for(int i=31;i>=0;i--){int v=1LL<<i;int cost=m*v;if(n>= m*(1LL<<i)){n-=m*(1LL<<i);ans+=(1LL<<i);}else{cost-=m;//后面全1的代价if(n<=cost)continue;int k=(n-cost+v-1)/v;n-=k*v;}}cout<<ans<<"\n";
}
signed main()
{cin>>t;while(t--){solve();}return 0;
}

http://www.dtcms.com/a/268753.html

相关文章:

  • C++ --- list的简单实现
  • 沙箱逃逸漏洞
  • STEP 7 MicroWIN SMART V2.2 的详细安装步骤及注意事项
  • 股票筹码分布及其数据获取
  • validate CRI v1 image API for endpoint “unix:///run/containerd/containerd.sock“
  • 代码详细注释:递归查找指定目录及其子目录中的所有BMP位图文件,并通过双重验证确保找到的文件确实是合法的BMP文件。以下是详细的功能说明:DIY机器人工房
  • Maven 私库
  • [特殊字符] Excel 读取收件人 + Outlook 批量发送带附件邮件 —— Python 自动化实战
  • pyautogui库的一些鼠标操作
  • 医学 LLM 评估相关论文笔记
  • OSPF路由过滤
  • 【python实用小脚本-130】基于 Python 的 HTML 到 Markdown 转换工具:实现高效文档格式转换
  • 深度学习7(梯度下降算法改进)
  • SLAM文献之Efficient and Consistent Bundle Adjustment on Lidar Point Clouds(BALM)
  • 安卓10.0系统修改定制化____实现自动开启 USB 调试​的步骤解析 列举常用的几种修改方法
  • 【氮化镓】​​GaN帽层对HEMTs栅极漏电机制的影响
  • LeetCode 2099.找到和最大的长度为 K 的子序列:自定义排序
  • 前端篇——HTML知识点体系
  • 解决jenkins的Exec command命令nohup java -jar不启动问题
  • 订单初版—1.分布式订单系统的简要设计文档
  • Vue 2 vs Vue 3:核心区别详解与升级指南
  • 使用ansible的角色实现批量安装nginx服务
  • ReAct (Reason and Act) OR 强化学习(Reinforcement Learning, RL)
  • [特殊字符] Python 实战 | 批量统计中文文档词频并导出 Excel
  • iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
  • Spring的Bean原型模式下的使用
  • OpenWebUI(3)源码学习-后端models数据模型模块
  • 【论文撰写】如何把AI生成的文本公式复制在word中,完整的复制公式,拷贝豆包生成的公式
  • 网络安全之注入攻击:原理、危害与防御之道
  • 文件IO day29