1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề thi chọn đội tuyển Quốc gia môn Tin học năm 2022-2023 có đáp án (Vòng 1) - Sở GD&ĐT Quảng Bình

9 30 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề thi chọn đội tuyển Quốc gia môn Tin học năm 2022-2023 có đáp án (Vòng 1) - Sở GD&ĐT Quảng Bình
Chuyên ngành Tin học
Thể loại Đề thi
Năm xuất bản 2022-2023
Thành phố Đồng Hới
Định dạng
Số trang 9
Dung lượng 447,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Luyện tập với “Đề thi chọn đội tuyển Quốc gia môn Tin học năm 2022-2023 có đáp án (Vòng 1) - Sở GD&ĐT Quảng Bình” được chia sẻ dưới đây sẽ giúp bạn ôn tập và nâng cao kỹ năng giải bài tập đề thi nhằm chuẩn bị cho bài thi sắp diễn ra đạt kết quả cao. Mời các bạn cùng tham khảo chi tiết đề thi.

Trang 1

S  GD&ĐT QU NG BÌNH Ở Ả

Đ  CHÍNH TH C Ề Ứ

K  THI CH N  Ỳ Ọ Đ I TUY N  Ộ Ể

D  THI  CH N H C SINH GI I QU C GIA  Ọ Ọ Ỏ Ố

NĂM H C 2022­2023

Khóa ngày 20 tháng 9 năm 2022

Môn thi: TIN H C

S  BÁO DANH:……… Ố

BÀI THI TH  NH T Ứ Ấ

Th i gian: 1 ờ 80 phút (không k  th i gian giao đ ) ể ờ ề

Đ  g m có  ề ồ 03 trang và 03 câu 

S  d ng ngôn ng  l p trình đ  gi i quy t các bài toán sau: ử ụ ữ ậ ể ả ế

(* Ph n m  r ng, có th  là PAS ho c CPP)  ầ ở ộ ể ặ

Câu Tên file bài làm Tên file d  li u vào ữ ệ Tên file d  li u ra ữ ệ

1 SALE.* SALE.INP SALE.OUT

2 SEASNAIL.* SEASNAIL.INP SEASNAIL.OUT

Câu 1. Mua hàng (6 đi m)

M t c a hàng có ộ ử N món hàng được bày bán trên qu y theo th  t  t  trái sang ph i, ầ ứ ự ừ ả v iớ  

s  hi u l n lố ệ ầ ượ ừ 1 N. Món hàng th  t t ứ i có giá ti n là Ai

Nhân d p ị trung thu, ch  c a hàng quy t đ nh th c hi n chính sách gi m giá. C  th  v iủ ử ế ị ự ệ ả ụ ể ớ   món hàng th  ứ i, g i  ọ B là m ng giá ti n c a các món hàng còn trên qu y n m bên trái ả ề ủ ầ ằ i có giá 

ti n r  h n ề ẻ ơ A i , sau khi s p x p ắ ế B tăng d n, n u s  lầ ế ố ượng ph n t  c a ầ ử ủ B không nh  h n  ỏ ơ K thì 

có th  mua món hàng ể i v i giá Bớ K. Ngượ ạc l i, n u s  lế ố ượng ph n t  c a ầ ử ủ B nh  h n  ỏ ơ K thì món  hàng i s  v n gi  giá cũ. M t món hàng khi đẽ ẫ ữ ộ ược bán thì s  đẽ ược đem đi kh i qu y.ỏ ầ

An là m t ngộ ười đam mê mua s m. An đ ng đây t  chi u và mu n mua h t t t c  cácắ ứ ừ ề ố ế ấ ả   món hàng. Th t may m n cho anh là ngoài An ra không ai mua c , nên An có th  t  do ch nậ ắ ả ể ự ọ   mua món hàng nào trước mà không s  món hàng b  mua m t. Tuy nhiên, An v n là ngợ ị ấ ẫ ười chi  tiêu h p lý, anh mu n mua h t t t c  món hàng v i s  ti n b  ra là ít nh t. ợ ố ế ấ ả ớ ố ề ỏ ấ

Hãy tính s  ti n nh  nh t mà An b  ra đ  mua h t t t c  món hàng. ố ề ỏ ấ ỏ ể ế ấ ả

D  li u ữ ệ  vào: Cho trong file văn b n có tên ả SALE.INP có c u trúc:ấ

Dòng 1: Ch a 2 s  nguyên dứ ố ương N và K (1 ≤ N ≤ 3000; 1 ≤ K ≤ N )

Dòng 2: Ch a N s  nguyên dứ ố ương Ai là giá ti n c a món hàng th  i (1 ≤ Aề ủ ứ i ≤ 10 9 )

(Hai s  liên ti p trên cùng m t dòng đố ế ộ ược ghi cách nhau b i ít nh t m t d u cách)ở ấ ộ ấ

D  li u ra: ữ ệ  Ghi vào file văn b n có tên ả SALE.OUT v i c u trúcớ ấ :

Dòng 1: Ghi s  ti n nh  nh t mà An ph i tr  đ  mua h t t t c  các món hàng.ố ề ỏ ấ ả ả ể ế ấ ả

Ví d :  

SALE.INP SALE.OUT

5  2

1  3  2  4  3

10

Trang 2

Gi i thích:  An ch n mua các món hàng theo v  trí l n lọ ị ầ ượt là: 5,4,3,2,1 v i giá ti n mua ớ ề

t ng món hàng l n lừ ầ ượt là: 2,2,2,3,1. T ng giá ti n Anh ph i tr  là 10.ổ ề ả ả

Câu 2. Chu i  c (7 đi m).ỗ ố ể

Bi n Nh t L  ­ TP Đ ng H i để ậ ệ ồ ớ ược nhi u du khách bi t đ n nh  m t trong nh ng đi mề ế ế ư ộ ữ ể   ngh  ng i lý tỉ ơ ưởng và đượ ạc t p chí Forbes (M ) bình ch n là m t trong nh ng bãi bi n đ pỹ ọ ộ ữ ể ẹ  

nh t th  gi i. Các bãi t m có đ  d c l n, nấ ế ớ ắ ộ ố ớ ước trong xanh thích h p cho nh ng du kháchợ ữ  

mu n thố ưởng th c nh ng lo i hình d ch v  gi i trí ngh  dứ ữ ạ ị ụ ả ỉ ưỡng câu cá, lướt ván, l n, ng m sanặ ắ   hô…

Trong m t đ t đi du l ch   TP Đ ng H i, sáng s m Đông thộ ợ ị ở ồ ớ ớ ường đi d o d c b  bi nạ ọ ờ ể  

Nh t L  và nh t nh ng v   c r i xâu chúng l i thành m tậ ệ ặ ữ ỏ ố ồ ạ ộ  chu i. Nguyên t c t o chu i  cỗ ắ ạ ỗ ố  

c a Đông nh  sau: Ban đ u chu i  c r ng, không có v   c, khi g p m t v   c m i có th  l yủ ư ầ ỗ ố ỗ ỏ ố ặ ộ ỏ ố ớ ể ấ  

đ  xâu vào 1 trong hai đ u c a chu i ho c b  đi không l y, cu i cùng nh n để ầ ủ ỗ ặ ỏ ấ ố ậ ược m t chu iộ ỗ  

v   c mà tính t  đ u đ n cu i chu i các v   c có kích thỏ ố ừ ầ ế ố ỗ ỏ ố ước tăng d n và g m càng nhi u vầ ồ ề ỏ 

c càng t t

Yêu c u:ầ  Cho trước dãy a1, a2,…,aN là kích thước các v   c mà Đông l n lỏ ố ầ ượ ặt g p khi đi d cọ  

b  bi n, hãy tìm cách nh t và xâu chu i đ  đờ ể ặ ỗ ể ược nhi u v   c nh t.ề ỏ ố ấ

D  li u ữ ệ  vào: Cho trong file văn b n có tên ả SEASNAIL.INP có c u trúc:ấ

Dòng 1:  Ch a s  nguyên dứ ố ương N (N≤105)

Dòng 2: Ch a N s  nguyên dứ ố ương a1, a2,…,aN (ai≤10 9). 

(Các s  đố ược ghi cách nhau ít nh t 1 d u cách)ấ ấ

D  li u ra: ữ ệ  Ghi vào file văn b n có tên ả SEASNAIL.OUT v i c u trúc.ớ ấ

Dòng 1: Ghi m t s  nguyên duy nh t là s  lộ ố ấ ố ượng v   c trong chu i t o đỏ ố ỗ ạ ược:

Ví d :

SEASNAIL.INP SEASNAIL.OUT 5

4   4   5   3   1

4

Câu: 3. Đường truy n quan tr ngề ọ  (7 đi m)

Cho m t m ng g m t p h p các nút và t p các độ ạ ồ ậ ợ ậ ường truy nề  tr c ti pự ế  hai chi u n i gi aề ố ữ   các c p ặ nút trong m ng. Ngạ ười ta bi t r ng m ng này thông su t, t c là m i c p nút trongế ằ ạ ố ứ ọ ặ  

m ng đ u có th  truy n tin cho nhau. ạ ề ể ề

M t s  nút trong m ng cung c p d ch v  A còn m t s  nút khác cung c p d ch v  B choộ ố ạ ấ ị ụ ộ ố ấ ị ụ  

t t c  các nút (k  c  nó). Có th  có m t nút cung c p c  hai d ch v  ấ ả ể ả ể ộ ấ ả ị ụ

N u m t đế ộ ường truy n tr c ti p b  h ng có th  làm cho m t s  nút trong m ng khôngề ự ế ị ỏ ể ộ ố ạ  

th  s  d ng m t trong hai d ch v  Các để ử ụ ộ ị ụ ường truy n nh  v y đề ư ậ ược g i  là các đọ ường truy nề   quan tr ng. ọ

B n hãy vi t chạ ế ương trình xác đ nh s  ị ố lượng đường truy n quan tr ng trong m ng.ề ọ ạ

D  li u vào: ữ ệ  Cho trong file văn b n có tên ả  IMPONET.INP có c u trúc:ấ

Dòng 1: Ghi 4 s  N, M, K và L. Trong đó N là s  nút trong m ng, M là s  đố ố ạ ố ường truy nề  

tr c ti p trong m ng, K là s  nút cung c p d ch v  A và L là s  nút cung c p d ch v  B. Cácự ế ạ ố ấ ị ụ ố ấ ị ụ   nút được đánh s  t  1 đ n N (1≤N≤10ố ừ ế 5; 1≤M≤106; 1≤K≤N; 1≤L≤N)

Dòng 2: Ghi K s  là s  hi u các nút cung c p d ch v  A.ố ố ệ ấ ị ụ

Trang 3

Dòng 3: Ghi L s  là s  hi u các nút cung c p d ch v  B.ố ố ệ ấ ị ụ

Trong M dòng ti p theo, m i dòng ghi hai s  p, q th  hi n m t đế ỗ ố ể ệ ộ ường truy n tr c ti pề ự ế  

n i nút p và nút q (1≤p, q≤N, p≠q).ố

(Hai s  liên ti p trên cùng m t dòng đố ế ộ ược ghi cách nhau b i ít nh t m t d u cách)ở ấ ộ ấ

D  li u ra: ữ ệ  Ghi vào file văn b n có tên ả IMPONET.OUT v i c u trúc: ớ ấ

Dòng 1: Ghi m t s  nguyên là s  lộ ố ố ượng đường truy n quan tr ng trong m ng.ề ọ ạ

Ví dụ:

IMPONET.INP IMPONET.OUT Gi i thích

9   10  3   4 

2   4    5  

4   9    8   3  

1   2

4   1  

2   3  

4   2  

1   5  

5   6  

6   7  

6   8  

7   9  

8   7

3 Các đường truy n quan tr ng ề ọ

là: 

3 2 

5 6 

7 9

Trang 4

S  GD&ĐT QU NG BÌNH Ở Ả

H ƯỚ NG D N CH M Ẫ Ấ

K  THI CH N  Ỳ Ọ Đ I TUY N D  THI  Ộ Ể Ự

H C SINH GI I QU C GIA NĂM H C 2022­ Ọ Ỏ Ố Ọ

2023 Khóa ngày 20 tháng 9 năm 2022

Môn thi: TIN H C

BÀI THI TH  NH T Ứ Ấ

Đap an nay g m có ́ ́ ̀ ồ  05 trang

YÊU C U CHUNG

I. PH ƯƠ NG PHÁP

­ Bài thi c a thí sinh đ ủ ượ c ch m b ng ch ấ ằ ươ ng trình ch m t  đ ng Themis ấ ự ộ

­ Test c a các bài đ ủ ượ c đ t c u hình nh  sau: ặ ấ ư

+ Câu 1: GK t o ít nh t  ạ ấ 12 test,  m i test t ỗ ươ ng  ng v i s  đi m  ứ ớ ố ể 6đ/s  test ố  Th i gian ờ   cho m i test c a câu 1 là 1 giây ỗ ủ

+  Câu 2: GK t o ít nh t 14 test ạ ấ ,  m i test t ỗ ươ ng  ng v i s  đi m  ứ ớ ố ể 7đ/s  test ố , th i gian ờ   cho m i test c a câu 2 là 1 giây ỗ ủ

+ Câu 3: GK t o ít nh t 14 test ạ ấ ,  m i test t ỗ ươ ng  ng v i s  đi m  ứ ớ ố ể 7đ/s  test ố , th i gian ờ   cho m i test c a câu 2 là 1 giây ỗ ủ

­ T ng đi m đ ổ ể ượ c làm tròn đ n m t ch  s    hàng th p phân ế ộ ữ ố ở ậ

II. CH ƯƠ NG TRÌNH G I Ý

#include<bits/stdc++.h>

#define ll long long

#define v first

Trang 5

using namespace std;

int main(){

    int n,k;

    long long res=0;

    freopen("sale.inp","r",stdin);

    freopen("sale.out","w",stdout);

    ios_base::sync_with_stdio(false);

    cin.tie(0); cout.tie(0);

    cin>>n>>k;

    vector<pair<ll,int> > a(n);

    for (int i=0;i<n;++i){

        cin>>a[i].v;

        a[i].i=i;

    }

    sort(a.begin(),a.end());

    for (int i=n­1;i>=0;­­i){

        ll newprice=a[i].v;

        int count=0;

        for (int j=0;j<i;++j){

      if (a[j].i<a[i].i && a[j].v<a[i].v){       ++count;

      if (count==k){

      newprice=a[j].v;

      break;

      }

      }

        }

        res+=newprice;

    }

    cout<<res<<"\n";

}

Câu 2. Chu i  c  ỗ ố (7 đi m).    

SEASNAIL.*

Program SEASNAIL;

Uses Math;

Const

  maxN =100000;

Var

  n,res,ans :LongInt;

  A,F,L1,L2 :Array[1 maxN] of LongInt;   f1,g:text;

  procedure Enter;

Trang 6

    i :LongInt;

  begin

    Read(f1,n);

    for i:=1 to n do Read(f1,A[i]);

  end;

  function Search1(i :LongInt) :LongInt;

  var

    left,right,mid :LongInt;

  begin

    left:=1; right:=res;

    while (left<right) do

      begin

        mid:=(left+right) div 2;

        if (A[F[mid]]>A[i]) then left:=mid+1 else right:=mid;       end;

    Exit(left);

  end;

  function Search2(i :LongInt) :LongInt;

  var

    left,right,mid :LongInt;

  begin

    left:=1; right:=res;

    while (left<right) do

      begin

        mid:=(left+right) div 2;

        if (A[F[mid]]<A[i]) then left:=mid+1 else right:=mid;       end;

    Exit(left);

  end;

  procedure Optimize;

  var

    i,j :LongInt;

  begin

    F[1]:=n; L1[n]:=1; res:=1;

    for i:=n­1 downto 1 do

      if (A[i]<A[F[res]]) then

        begin

      Inc(res); F[res]:=i; L1[i]:=res;

        end

      else

        begin

      j:=Search1(i); F[j]:=i; L1[i]:=j;

        end;

Trang 7

    for i:=n­1 downto 1 do

      if (A[i]>A[F[res]]) then

        begin

      Inc(res); F[res]:=i; L2[i]:=res;

        end

      else

        begin

      j:=Search2(i); F[j]:=i; L2[i]:=j;

        end;

  end;

  procedure Escape;

  var

    i :LongInt;

  begin

    ans:=0;

    for i:=1 to n do ans:=Max(ans,L1[i]+L2[i]­1);

    Write(g,ans);

  end;

Begin

  Assign(f1,'SEASNAIL.INP'); Reset(f1);

  Assign(g,'SEASNAIL.OUT'); Rewrite(g);

  Enter;

  Optimize;

  Escape;

  Close(f1); Close(g);

End.

Câu 3. Đ ườ ng truy n quan tr ng  ề ọ (7 đi m).     IMPONET.*

#include <bits/stdc++.h>

#define maxn 100001

#define maxm 1000001

#define mp make_pair

#define ft first

#define sc second

using namespace std;

typedef pair<int,int> II;

int n,m,K,L, a[maxn], b[maxn];

II e[maxm];

int deg[maxn];

vector<int> g[maxn];

int sla[maxn], slb[maxn];

int sn, s[maxn], cl[maxn], p[maxn], prev1[maxn];

int id, num[maxn], low[maxn];

Trang 8

void dfs(int xp) {

    sn=0;

    s[++sn]=xp, cl[xp]=1, p[xp]=0, prev1[xp]=0;     num[xp]=low[xp]=++id;

    sla[xp]=(a[xp]==1) ? 1 : 0;

    slb[xp]=(b[xp]==1) ? 1 : 0;

    while (sn) {

        int u=s[sn];

        if (cur[u]<deg[u]) {

      int i=g[u][cur[u]++];

      if (i!=p[u]) {

      int v=(e[i].ft==u) ? e[i].sc : e[i].ft;

      if (cl[v]==0) {

      s[++sn]=v, cl[v]=1, p[v]=i, prev1[v]=u;       num[v]=low[v]=++id;

      sla[v]=(a[v]==1) ? 1 : 0;

      slb[v]=(b[v]==1) ? 1 : 0;

      } else low[u]=min(low[u],num[v]);

      }

        } else {

      int w=prev1[u];

      if (w) {

      low[w]=min(low[w],low[u]);

      sla[w]+=sla[u];

      slb[w]+=slb[u];

      }

      ­­sn;

        }

    }

}

int main() {

    freopen("imponet.inp","r",stdin);

    freopen("imponet.out","w",stdout);

    scanf("%d%d%d%d",&n,&m,&K,&L);

    for(int i=1;i<=K;i++) {

        int u; scanf("%d",&u);

        a[u]=1;

    }

    for(int i=1;i<=L;i++) {

        int v; scanf("%d",&v);

        b[v]=1;

    }

    for(int i=1;i<=m;i++) {

        int u, v; scanf("%d%d",&u,&v);

Trang 9

    }

    for(int i=1;i<=m;i++) {

        int u=e[i].ft, v=e[i].sc;

        g[u].push_back(i); deg[u]++;

        g[v].push_back(i); deg[v]++;

    }

    for(int i=1;i<=n;i++) cur[i]=cl[i]=0;

    id=0;

    for(int i=1;i<=n;i++) if (cl[i]==0) dfs(i);

    int ans=0;

    for(int i=1;i<=m;i++) {

        int u=e[i].ft, v=e[i].sc;

        if (prev1[u]==v) swap(u,v);

        if (prev1[v]==u && low[v]>num[u]) {

      if (sla[v]==0 || sla[v]==K || slb[v]==0 || slb[v]==L) ans++;         }

    }

    printf("%d",ans);

}

Ngày đăng: 25/11/2022, 20:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w