牛客编程巅峰赛S1第5场 - 黄金&钻石&王者 A.枚举 B.逆序对

链接:https://ac.nowcoder.com/acm/contest/6489/A
来源:牛客网

完全平方数的尾巴
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 65536K,其他语言131072K
64bit IO Format: %lld
题目描述
我们把一个能被表示成某个整数的平方的数称为完全平方数。
例如4 = 2 * 24=2∗2,16 = 4 * 416=4∗4,所以44,1616是完全平方数。
现在输入一个整数为xx(0\leq x \leq9990≤x≤999),请聪明的你判断它是不是由某个完全平方数对10001000取模得到的呢。

示例1
输入
复制
24
输出
复制
true
说明
1024 = 32 *32
24 = 1024 mod1000
备注:
1024 = 32 *32
24 = 1024mod 1000

class Solution {
public:
    /**
     * 
     * @param x int整型 
     * @return bool布尔型
     */
    bool solve(int x) {
      for(int i=1;i<=1000;i++){
          if(i*i%1000==x){
              return true;
          }
      }
        return false;
    }
};

链接:https://ac.nowcoder.com/acm/contest/6489/B
来源:牛客网

题目描述
牛牛有一个长度为N的由小写字母组成的字符串S,还有一个整数K。在每一步中,牛牛都可以选择一个位置 i 并在 i 和 i + K 处交换字符(i + K < N)并且S_i < S_{i+k}S
i

<S
i+k

,即交换之后,新形成的字符串应字典序大于旧字符串。牛牛想尽可能交换尽量多的步数。他想知道最多可以交换多少步呢。
示例1
输入
复制
“cbexa”,2
输出
复制
2
说明
cbexa -> cxeba -> excba 步数为2
备注:
1 \leq N \leq 1e5, 1 \leq k \leq N1≤N≤1e5,1≤k≤N

class Solution {
public:
    /**
     * 
     * @param s string字符串 s.size() <= 1e5
     * @param k int整型 k <= s.size()
     * @return int整型
     */
    int c[30];
    int lowbit(int x){
        return x&(-x);
    }
   void add(int x,int k){
       while(x<30){
           c[x]+=k;
           x+=lowbit(x);
       }
   }
    int  query(int x){
        int ans=0;
        while(x){
            ans+=c[x];
            x-=lowbit(x);
        }
        return ans;
    }
    int turn(string s, int k) {
      int ans=0;
        int len=s.size();
        for(int i=0;i<k;i++){
            memset(c,0,sizeof(c));
            for(int j=i;j<len;j+=k){
                add(s[j]-'a'+1,1);
                ans+=query(s[j]-'a');
            }
            
        }
        return ans;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值