Trang chủ Tin Học Lớp 7 REVERSE Trong lúc buồn chán, Dũng đã tìm một xâu s gồm |s| kí tự là các chữ cái tiếng...
Câu hỏi :

REVERSE Trong lúc buồn chán, Dũng đã tìm một xâu s gồm |s| kí tự là các chữ cái tiếng Anh in thường và đảo ngược một số xâu con liên tiếp của xâu s. Hãy viết chương trình tìm xâu s sau khi Dũng thực hiện lần lượt m lần đảo. Dữ liệu Dòng đầu tiên gồm một xâu s mà Dũng tìm được (2 |s| 2 × 105 ). Dòng thứ hai gồm một số nguyên m (1 m 105 ) là số lần Dũng đảo một xâu con liên tiếp của xâu s. Dòng thứ bai gồm m số nguyên ai (1 ai |s| 2 ), mỗi số mô tả lần đảo một xâu con liên tiếp từ kí tự thứ ai đến kí tự thứ |s| ai + 1 của Dũng. Các kí tự trong xâu s được đánh số từ 1 đến |s|. Kết quả Gồm một dòng duy nhất chứa một xâu là xâu s sau khi Dũng thực hiện lần lượt m lần đảo. Ví dụ REVERSE.inp REVERSE.out kcchinbayble kcchinbayble 4 2 2 2 2 haideu uediah 1 1 Giải thích Ở ví dụ đầu tiên, Dũng đảo xâu con từ kí tự thứ 2 đến kí tự thứ 11 một số chẵn lần nên xâu không thay đổi. Ở ví dụ thứ hai, Dũng đảo cả xâu s một lần.

Lời giải 1 :

`\color{red}{\text{@hoangduy67}}`

#include<bits/stdc++.h>
using namespace std;
string s;
int n,q,maxx=0,temp,d[100068];
void daoxau(int x,int y){
    //reverse()
    for(int i=x;i<=y;i++)
        swap(s[i-1],s[n-i]);
}
int main() {
   // ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  // freopen("REVSTR.inp", "r", stdin);
   // freopen("REVSTR.out", "w", stdout);
    cin>>s>>q;
    n=s.size();
    temp=q;
    while(q--){
        int x;
        cin>>x;
       /* if(x>n/2){
           maxx=max(n-x+1,maxx);
        else
            maxx=max(maxx,n);*/
        if(x>n/2)
            x=n-x+1;
        maxx=max(x,maxx);
        d[x]++;
    }
    q=temp;
    if(q%2==1)
        daoxau(maxx,n/2);
    q=q-d[maxx];
    maxx--;
    for(int i=maxx;i>=1;i--){
        if(d[i]!=0){
            if(q%2==1)
                daoxau(i,maxx);
                maxx=i-1;
            q-=d[i];
        }
    }
    cout<<s;
    //daoxau(3,3);
    //cout<<s;
}

 

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một chuỗi quay mới lại đến và chúng ta vẫn bước tiếp trên con đường học sinh. Học tập vẫn là nhiệm vụ chính, hãy luôn kiên trì và không ngừng cố gắng!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK