栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

HRBU

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HRBU

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

HRBU_20211008训练
  • 系列文章目录
  • 题意
  • 题意
    • 代码
  • 题意
  • 代码
  • 总结

题目来源
A - Keanu Reeves

题意

输入一个长度为n的二进制字符,把它分为尽可能少的子串,且子串要求为1和0的个数不一样,先判断子串的1和0的个数是否相等,如果相等,直接输出该子串,如果不相等,把第一个字符输出,其余字符再输出

#代码

#include
#include
using namespace std;
int main()
{
    int n;
    string s;
    cin>>n;
    cin>>s;
    int o=0,l=0;
    for(int i=0;i 

总结:
这题一开始的时候我老是去想样例三的结果是怎么来的,后来才知道只需要输出任意正确的答案即可,样例的结果只是其中之一的答案,这题只需要1和0的数量不一样即可

B - Number Circle

题意

这题是需要将一个序列组成一个圆圈,要求一个数比左右两个数的和小,输出这个序列就可,这题先用sort进行排序,判断最大的数是否小于第二大的数和第三大的数,如果是输出,交换最大的数和第二大数的位置,交换的原因是让最大的数离较大的数更近,以保证比左右之和更小,如果否,输出no;

代码

#include
#include
#include
using namespace std;
int main()
{
    int n,i;
    int a[100005];
    cin>>n;
    for( i=0;i>a[i];
        sort(a,a+n);
    //int maxn=max(maxn,a[i]);
      if(a[n-1] 

总结:这题如果想到了这个思路还是比较简单的,一开始我就在想怎么比较,让一个数比较左右两个数的和更小,后来,你发现排序之后,右边的数一定比左一个数大,只需要,比较最大的数是否比第二大和第三大之和小即可。

C - Candies!

题意

本题是把第一第二一组,第三第四一组,以此类推,对10取余,直到最后只剩下一个数字,判断需要几次操作,输出即可,这题用前缀和思想,每组之和其实是总的序列之和,只需要判断该序列除以10,取整输出答案

代码
#include
#include
using namespace std;
int main()
{
    int n,q,l,r,d;
    cin>>n;
    int sum[100005];
    for(int i=1;i<=n;i++)
    {
        cin>>d;
        sum[i]=sum[i-1]+d;
    }
    cin>>q;
    while(q--)
    {
        cin>>l;
        cin>>r;
        cout<<(sum[r]-sum[l-1])/10< 

总结
本题其实一开始,我是想每次之和模除10之后存起来,每次遍历判断,后来发现我得开多少数组啊!寻找规律发现只需要用前缀和就好了

总结

这次训练可以说很成功,希望下次可以做到今日事今日毕,加油吧!我们一定赢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302963.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号