整理(二)——习题1

6 篇文章 0 订阅

1、作为一名大学生的你,现在又到了期末查成绩的时候,当你的成绩大于等于60时请输出“jige,haoye!”,否则输出"laoshi,caicai,laolao"。

#include <iostream>

using namespace std;

int main()
{   int x;
    cin>>x;
    if(x>=60)
      cout << "jige,haoye!" << endl;
    else cout << "laoshi,caicai,laolao" << endl;
    return 0;
}

例:

输入:60
输出:jige,haoye!

2、期末考试结束后,图灵杯出题组的几位同学卑微地留在校出题,但是由于疫情影响,他们不得不尽快乘坐G1024号火车离开学校 ,现在假设图灵杯出题组共nnn人,并且通过APP可以知道G1024在接下来kkk天的已购票数xxx,总票数mmm,现在Phenix想知道在所有人都一起上火车的前提下最早在第几天可以离开学校,如果无论怎样都无法离开请输出“G!” 

#include <iostream>

using namespace std;

int main()
{   int n,k,x,m,i=1,a,j=1;
    cin>>n>>k;
    for(;i<=k;i++)
    {
       cin>>x>>m;
       if(n<=m-x)
          break;
    }
       if(i<=k)
          cout<<i;
       else cout<<"G!";
    return 0;
}

例:

输入:7 5

          100 100

           99 100

           95 100

           900 1000 

           0 1000

输出:4

3、一天Phenix得到了一个长度为nnn的字符串,字符串仅由大写字母A~Z组成,现在Phenix想知道最少需要删除多少个字符使字符串变成NEUQNEUQ……这种由若干个"NEUQ"组成的形式。 

#include<bits/stdc++.h>
using namespace std;
char s[1000005];
 
int main() {
    int n;
    cin >> n;
    scanf("%s", s);
    char str[4] = {'N', 'E', 'U', 'Q'};
    int j = 0, ans = 0, idx;
    for(int i = 0; i < n; i++) {
        if(s[i] != str[j]) {
            //cout << i << endl;
            ans++;
        } else {
            if(s[i] == 'Q') idx = i;
            j = (j+1)%4;
        }
    }
    ans += n-1-idx;
    j = 0;
    for(int i = idx+1; i < n; i++) {
        if(s[i] != str[j]) {
            //cout << i << endl;
            ans--;
        } else {
            j = (j+1)%4;
        }
    }
    //cout << idx << endl;
    cout << ans << endl;
    return 0;
}

例:

输入:10

           NEUUQNEUQQ

输出:2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值