2023河南ccpc省赛总结

目录

前言

题目

Problem A. 小水獭游河南

2.读入数据

总结


前言

        本人目前大二,第一次参加ccpc线下赛,去年参加线上赛的时候跟队友拿了一个铜牌(手速慢了四题是可以手速银但我们被诈骗题卡了),今年四题拿了银60名中等银还可以。

解题情况

Problem A. 小水獭游河南

输入文件: standard input 输出文件: standard output

时间限制: 1 second

空间限制: 256 megabytes

        

小水獭来到河南旅游,它认为一个字符串 s 是 HENAN 的当且仅当存在两个非. 空. 字符串 a 和 b 满 足如下三个条件:a 由小写字母组成,且 a 中每种字母只出现了一次。  b 由小写字母组成,且 b 是回文串,也就是说将 b 翻转后得到的字符串和 b 相同。将 a 和 b 顺序拼接得到的字符串和 s 相同,也就是说 s = a + b。 例如 henan 是 HENAN 的,因为 henan=he+nan,此外也可分解为 hena+n。但 hhnan 和 ysmihoyocom 不是 HENAN 的。 现在给定一个字符串,请你帮助小水獭判断它是不是 HENAN 的

        输入格式本题包含多组数据 。第一行包含一个整数 T(1 ≤ T ≤ 103),表示数据组数。 对于每组数据: 一行包含一个由小写字母组成的字符串 s(1 ≤ |s| ≤ 105),表示小水獭询问的字符串。 保证所有数据的 P|s| ≤ 105。

输出格式 对于每组数据: 输出一行包含一个字符串。如果 s 是 HENAN 的,输出 HE;否则输出 NaN

思路

        对前二十六个字符进行分隔每次判断后面的字符串是否能满足回文串的条件

Problem B. Art for Rest

输入文件:

standard input

输出文件: standard output

时间限制: 1 second

空间限制: 256 megabytes

         给定一个长度为 n 的非负整数序列 a1, a2, . . . , an,记作 A。 对于正整数 k,按照以下方式得到序列 A′ k将 A 划分为 n/k 段,第 i 段为 ak(i−1)+1, ak(i−1)+2, . . . , amin{ki,n} 每一段升序排序后依次连接得到 A′ k。 试求有多少个 k 满足 1 ≤ k ≤ n,且对于任意 1 ≤ i < j ≤ n 有 A′ k,i ≤ A′ k,j。

输入格式

第一行包含一个正整数 n(1 ≤ n ≤ 106),表示非负整数序列 A 的长度。 第二行包含 n 个非负整数 a1, . . . , an(0 ≤ ai ≤ 109),表示给定的序列 A。

输出格式

一行包含一个整数,表示答案。

思路:用前缀最大值来表示i前面的最大值与i+1的后缀最小值相比较判断,但是考场上想的是线段树来处理一个区间的最大值和最小值可惜时间不够没写出来


#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int r=1e6+10;
int a[r],b[r],c[r];
signed main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
        b[i]=max(b[i-1],a[i]);
    }
    c[n]=a[n];
    for(int i=n-1;i>=1;i--){
    c[i]=min(c[i+1],a[i]);
    
        
    }
    int res=0;
    for(int i=1;i<=n;i++)
    {
        int w=0;
        for(int j=i+1;j<=n;j+=i){
            
             if(c[j]<b[j-1])w=1;
        }
        if(w==0)res++;
    }
    cout<<res;
}

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值