K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

ĐÁP ÁN VÒNG 2 CUỘC THI TIN HỌC LẦN 3:

Câu 1(2 điểm)

uses crt;

var a:array[1..100000]of int64;

i,n,x,dem:int64;

begin

clrscr;

readln(n,x);

for i:=1 to n do

read(a[i]);

dem:=0;

for i:=1 to n do

if x=a[i] then inc(dem);

writeln(dem);

readln;

end.

Câu 2(2 điểm)

uses crt;

var n,k,i,dem:int64;

a:array[1..1000000]of int64;

{-----------------chuong-trinh-con-quick-sort------------------------}

procedure qs(d,c:int64);

var i,j,x,tam:int64;

begin

i:=d;

j:=c;

x:=a[(i+j) div 2];

repeat

while a[i]<x do

inc(i);

while a[j]>x do

dec(j);

if i<=j then

begin

tam:=a[i];

a[i]:=a[j];

a[j]:=tam;

inc(i);

dec(j);

end;

until i>j;

if d<j then qs(d,j);

if i<c then qs(i,c);

end;

{---------------chuong-trinh-chinh------------------}

begin

clrscr;

readln(n);

for i:=1 to n do

read(a[i]);

qs(1,n);

k:=a[n];

dem:=0;

for i:=1 to n do

if k=a[i] then inc(dem);

writeln(dem);

readln;

end.

Câu 3(2 điểm) Bài làm của bạn Hưng Nguyễn Thái

var a,b,c:int64;

begin

read(a,b,c);

if (a+b <= c) and ((c-a-b) mod 2 = 0) then write('Yes')

else write('No');

end.

Câu 4(6 điểm) Bài làm của bạn Quý Lương

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
    ios_base::sync_with_stdio(false); cout.tie(NULL);
    ll n, k;
    cin>>n>>k;
    ll d=__gcd(n, k);
    n/=d; k/=d;
    cout << n/k << '.';
    n=n%k*10;
    ll s=0, t=k;
    for (s; t%2==0 or t%5==0; s++) {
        if (t%2==0) t/=2;
        if (t%5==0) t/=5;
    }
    for (s; s>0; s--) {
        cout << n/k;
        n=(n%k) * 10;
    }
    if (t==1) cout << "(0)";
    else {
        ll r =10%t;
        for (s=1; r!=1; s++) r=r*10 % t;
        cout << '(';
        for (s; s>0; s--) {
            cout << n/k;
            n=(n%k)*10;
        }
        cout << ')';
    }
}

Câu 5(8 điểm) Bài làm của bạn Trần Nguyễn Đăng Dương

#include <bits/stdc++.h>
using namespace std;
int n;
long long a[100001];
long long f[100001];
void ans(long long x)
{
    int dem=1;
    for (long long i=2;i*i<=x;i++)
        if (x%i==0)
        {
            f[dem]=i;
            if (i!=sqrt(x))
            {
                f[dem+1]=x/i; dem+=2;
            }
            else dem++;
        }
    f[dem]=x;
    sort(f+1,f+dem);
    for (int i=1;i<=dem;i++) cout<<f[i]<<endl;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr); cout.tie(nullptr);
    cin>>n;
    for (int i=1;i<=n;i++) cin>>a[i];
    long long gcd=abs(a[2]-a[1]);
    for (int i=3;i<=n;i++)
        gcd=__gcd(gcd,abs(a[i]-a[i-1]));
    ans(gcd);
}

5
21 tháng 7 2021

dàiiiiiiiiiiiiiiiiiiiiiiiiiii

21 tháng 7 2021

cmt đầu có được fan cứng không

22 tháng 9 2020

@Nguyễn Minh Lệ

@Nguyễn Lê Phước Thịnh

A. Dạng toán xác định bài toán và xây dựng thuật toán cho bài toán. 1. Xác định bài toán( tìm Input và Output) a. Cho ba cạnh a, b, c của tam giác ABC, tính diện tích S của tam giác đó. b. Cho điểm I(x,y) trên mặt phẳng tọa độ và số thực R. Vẽ trên màn hình đường tròn tâm I, bán kính R c. Cho dãy số A gồm N số nguyên a1, a2,…,aN. Hãy sắp xếp các số hạng để dãy số A trở thành...
Đọc tiếp

A. Dạng toán xác định bài toán và xây dựng thuật toán cho bài toán.

1. Xác định bài toán( tìm Input và Output)

a. Cho ba cạnh a, b, c của tam giác ABC, tính diện tích S của tam giác đó.

b. Cho điểm I(x,y) trên mặt phẳng tọa độ và số thực R. Vẽ trên màn hình đường tròn tâm I, bán kính R

c. Cho dãy số A gồm N số nguyên a1, a2,…,aN. Hãy sắp xếp các số hạng để dãy số A trở thành dãy số tăng dần.

2. Xây dựng thuật toán cho các bài toán sau:

a. Tính và hiển thị tổng của các số dương trong dãy số A= {a1, a2,…,aN}

b. Tìm giá trị nhỏ nhất của dãy số A= {a1, a2,…,aN}

c. Hãy đếm các số âm có trong dãy số A= {a1, a2,…,aN}

3. Thuật toán sau làm nhiệm vụ gì?.

Bước 1: Nhập N, các số hạng a1, a2,…, aN và khóa k;

Bước 2: iß1;

Bước 3: Nếu ai = k thì thông báo chỉ số i, rồi kết thúc;

Bước 4: ißi+1;

Bước 5: Nếu i>N thì thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc;

Bước 6: Quay lại bước 3.

1
20 tháng 12 2018

làm hộ mình với

26 tháng 10 2017

a1-a2

Bài 1:

a)

-Bước 1: nhập n và nhập dãy số

-Bước 2: i=1, t=0

-Bước 3: nếu a[i]>0 thì t→t+a[i];

-Bước 4: i→i+1;

-Bước 5: Nếu i<=n thì quay lại bước 3

-Bước 6: xuất t

-Bước 7: kết thúc

b)

-Bước 1: nhập n và nhập dãy số

-Bước 2: i=1, nn=a[1];

-Bước 3: nếu nn>a[i] thì nn→a[i];

-Bước 4: i→i+1;

-Bước 5: Nếu i<=n thì quay lại bước 3

-Bước 6: xuất nn

-Bước 7: kết thúc

c)

-Bước 1: nhập n và nhập dãy số

-Bước 2: i=1, dem=0

-Bước 3: nếu a[i]<0 thì dem→dem+1;

-Bước 4: i→i+1;

-Bước 5: Nếu i<=n thì quay lại bước 3

-Bước 6: xuất dem

-Bước 7: kết thúc

Bài 2:

Thuật toán này thực hiện nhiệm vụ: nhập 1 dãy n số và một khóa k. kiểm tra xem khóa k có trong dãy hay không. nếu có hãy xuất vị trí của khóa k

7 tháng 1 2020

Dấu gán trong thuật toán kí hiệu là ← em nhé. Em chỉ cần ấn tổ hợp bàn phím [Alt]+[2]+[7] .

Ví dụ bước 2: i←1 ; dem←0;

ĐÁP ÁN VÒNG 3 CUỘC THI TIN HỌC LẦN 3Câu 1(2 điểm) Bài làm của bạn Nguyễn Khánh Tài Huyvar a,b,tg1,tg2,UC: longint;    f1,f2: text;function tguoc(x: longint): longint;  var i,tg: longint;    begin      tg:=0;      for i:=1 to trunc(sqrt(x)) do        if x mod i = 0 then          begin            tg:=tg+i;            tg:=tg+x div i;            if i*i=x then tg:=tg-i;          end;      exit(tg);    end;function UCLN(a,b:...
Đọc tiếp

ĐÁP ÁN VÒNG 3 CUỘC THI TIN HỌC LẦN 3

Câu 1(2 điểm) Bài làm của bạn Nguyễn Khánh Tài Huy

var a,b,tg1,tg2,UC: longint;
    f1,f2: text;
function tguoc(x: longint): longint;
  var i,tg: longint;
    begin
      tg:=0;
      for i:=1 to trunc(sqrt(x)) do
        if x mod i = 0 then
          begin
            tg:=tg+i;
            tg:=tg+x div i;
            if i*i=x then tg:=tg-i;
          end;
      exit(tg);
    end;
function UCLN(a,b: longint): longint;
    begin
      if a=0 then exit(b)
      else UCLN:=UCLN(b mod a,a);
    end;
begin
   readln(a);
   readln(b);
   tg1:=tguoc(a);
   tg2:=tguoc(b);
   if tg1*b=tg2*a then
     begin
       UC:=ucln(tg1,a);
       tg1:=tg1 div UC;
       a:=a div UC;
       writeln(tg1);
       writeln(a);
     end
   else writeln(-1);
end.

Câu 2(4 điểm) Bài làm của bạn Trần Nguyễn Đăng Dương

#include <bits/stdc++.h>
using namespace std;
#define div 1000000007
#define arrst {{1,1},{1,0}}
long long x;
void power(long long a[2][2], long long n);
void multi(long long a[2][2], long long b[2][2]);
long long fibo(long long n)
{
    long long f[2][2]=arrst;
    power(f,n-1);
    return f[0][0];
}
void power(long long a[2][2], long long n)
{
    if ((n==0) || (n==1)) return;
    long long b[2][2]=arrst;
    power(a,n/2);
    multi(a,a);
    if (n%2==1)
        multi(a,b);
}
void multi(long long a[2][2], long long b[2][2])
{
    long long x = (((a[0][0]%div) * (b[0][0]%div))%div + ((a[0][1]%div) * (b[1][0]%div))%div)%div;
    long long y = (((a[0][0]%div) * (b[0][1]%div))%div + ((a[0][1]%div) * (b[1][1]%div))%div)%div;
    long long z = (((a[1][0]%div) * (b[0][0]%div))%div + ((a[1][1]%div) * (b[1][0]%div))%div)%div;
    long long w = (((a[1][0]%div) * (b[0][1]%div))%div + ((a[1][1]%div) * (b[1][1]%div))%div)%div;
    a[0][0]=x; a[0][1]=y; a[1][0]=z; a[1][1]=w;
}
int main()
{
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    long long t; cin>>t;
    for (long long i=1;i<=t;i++)
    {
        cin>>x;
        cout<<fibo(x)%div<<endl;
    }
}

Câu 3(4 điểm) Bài làm của bạn Trần Nguyễn Đăng Dương

#include <bits/stdc++.h>
using namespace std;
struct ii{
    long long a; long long b;
};
vector <ii> arr;
long long n,q;
void del(long long numx, long long numy)
{
    long long dem=0;
    while ((arr[dem].a!=numx) || (arr[dem].b!=numy)) dem++;
    arr.erase(arr.begin()+dem);
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr); cout.tie(nullptr);
    cin>>n>>q;
    for (long long i=1;i<=n;i++)
    {
        long long x,y; cin>>x>>y;
        arr.push_back({x,y});
    }
    for (long long i=1;i<=q;i++)
    {
        long long t,x,y; cin>>t>>x>>y;
        if (t==1) arr.push_back({x,y});
        else if (t==2) del(x,y);
        else
        {
            long long maxx=INT_MIN, maxy=INT_MIN;
            for (long long i=0;i<arr.size();i++)
            {
                if (arr[i].b==y) maxx=max(maxx,abs(arr[i].a-x));
                if (arr[i].a==x) maxy=max(maxy,abs(arr[i].b-y));
            }
            if ((maxx!=INT_MIN) && (maxy!=INT_MIN))
            {
                cout<<maxx*maxy/2;
                if (maxx*maxy%2!=0) cout<<".5";
                cout<<endl;
            }
            else cout<<0<<endl;
        }
    }
}

Câu 4(5 điểm) Bài làm của bạn Nguyễn Khánh Tài Huy

#include <cstdio>

#include <cstdlib>

#include <numeric>

#include <vector>

#include <algorithm>

#include <cstring>

using namespace std;

const int MAXN = 16;

const int MAXL = 1 << 20;

const int inf = 1 << 30;

 

int n;

char str[MAXN][MAXL];

int cnt[MAXN][26];

int dp[1 << MAXN];

 

int calc_pref(int mask) {

  int len = 0;

  int tmp[26];

  fill(tmp, tmp+26, inf);

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

    if (mask&(1 << i))

      for (int j = 0; j < 26; ++j)

tmp[j] = min(tmp[j], cnt[i][j]);

  for (int i = 0; i < 26; ++i)

    len += tmp[i];

  return len;

}

int solve(int mask) {

  int &ret = dp[mask];

  if (ret != -1) return ret;

  int pref = calc_pref(mask);

  if ((mask&-mask) == mask) return ret = pref;

  ret = inf;

  for (int i = (mask - 1) & mask; i > 0; i = (i - 1) & mask) {

    int curr = solve(i) + solve(mask ^ i) - pref;

    ret = min(ret, curr);

  }

  return ret;

}

int main (void){

  memset(dp, -1, sizeof dp);

  scanf("%d", &n);

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

    scanf("%s", str[i]);

 

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

    for (int j = 0; str[i][j]; ++j)

      cnt[i][str[i][j] - 'a']++;

  printf("%d\n", solve((1 << n)-1) + 1);

  return 0;

}

Câu 5(5 điểm) Bài làm của bạn Trần Nguyễn Đăng Dương

 

#include <bits/stdc++.h>

using namespace std;

vector <bool> sang(1000000000,true);

vector <long long> snt;

void sangnt(long long x)

{

for (long long i=2;i<=x;i++)

{

if (sang[i])

{

    snt.push_back(i);

for (long long j=i;j*i<=x;j++) sang[i*j]=false;

}

}

}

void num(long long input)

{

    long long step_count = 1;

    long long step_limit = 2;

    long long adder = 1;

    long long x = 0, y = 0;

    for (long long n = 2; n != input + 1; n++,step_count++)

    {

        if (step_count <= .5 * step_limit) x += adder;

        else if (step_count <= step_limit) y += adder;

        if (step_count == step_limit)

        {

            adder *= -1;

            step_limit += 2;

            step_count = 0;

        }

    }

    cout << x << " " << y;

}

int main()

{

    long long n; cin>>n;

    sangnt(n);

    long long l=0;

    while (snt[l]!=n) l++;

    l++;

    num(l);

}

7
Nguyễn Lê Phước Thịnh CTV       nhìn chữ CTV   mà ham
30 tháng 10 2019

Bạn phải cho đề mình mới hiểu thuật toán được.

Theo mình điểm sai là ý b. Vì chưa có điều kiện đã gán a[i]=min và i lại gán = a[i]

30 tháng 10 2019

Đề chỉ có vậy thôi đó bạn

4 tháng 10 2019

các bạn ơi giúp mình với.....

25 tháng 4 2020

a) Minh họa thuật toán :

i 1 2 3 4 5 6
S 1 3 6 10 15 21

b) Ý nghĩa của thuật toán : Tính tổng từ 1 đến N