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 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
ĐÁ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;beginclrscr;readln(n,x);for i:=1 to n doread(a[i]);dem:=0;for i:=1 to n doif 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;begini:=d;j:=c;x:=a[(i+j) div 2];repeatwhile a[i]<x doinc(i);while a[j]>x dodec(j);if...
Đọc tiếp

ĐÁ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

ĐÁP ÁN VÒNG 1 CUỘC THI TIN HỌC LẦN 3Câu 1(2 điểm)uses crt;var n,dv,ch:integer;beginclrscr;readln(n);if (0<=n) and (n<=19) thenbegincase n of0: write('zero');1: write('one');2: write('two');3: write('three');4: write('four');5: write('five');6: write('six');7: write('seven');8: write('eight');9: write('nine');10: write('ten');11: write('eleven');12: write('twelve');13: write('thirteen');14: write('fourteen');15: write('fifteen');16: write('sixteen');17: write('seventeen');18:...
Đọc tiếp

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

Câu 1(2 điểm)

uses crt;

var n,dv,ch:integer;

begin

clrscr;

readln(n);

if (0<=n) and (n<=19) then

begin

case n of

0: write('zero');

1: write('one');

2: write('two');

3: write('three');

4: write('four');

5: write('five');

6: write('six');

7: write('seven');

8: write('eight');

9: write('nine');

10: write('ten');

11: write('eleven');

12: write('twelve');

13: write('thirteen');

14: write('fourteen');

15: write('fifteen');

16: write('sixteen');

17: write('seventeen');

18: write('eighteen');

19: write('nineteen');

end;

end

else

begin

dv:=n mod 10;

ch:=n div 10;

case ch of 2:

write('twenty');

3: write('thirty');

4: write('forty');

5: write('fifty');

6: write('sixty');

7: write('seventy');

8: write('eighty');

9: write('ninety');

end;

if dv>0 then

begin

write('-');

case dv of 1:

write('one');

2: write('two');

3: write('three');

4: write('four');

5: write('five');

6: write('six');

7: write('seven');

8: write('eight');

9: write('nine');

end;

end;

end;

end.

Câu 2(2 điểm)

uses crt;

var a,b,t,bcnn:int64;

begin

readln(a,b);

bcnn:=a*b;

t:=b mod a;

while t<>0 do

begin

t:=a mod b;

a:=b;

b:=t;

end;

bcnn:=bcnn div a;

writeln(a,' ',bcnn);

readln;

end.

Câu 3(4 điểm)

uses crt;

var q,i:longint;

n:array[1..10] of longint;

begin

clrscr;

readln(q);

for i:=1 to q do

readln(n[i]);

for i:=1 to q do

begin

if (n[i] mod 4=0) and (n[i] mod 100<>0) then writeln('YES')

else if n[i] mod 400=0 then writeln('YES')

else writeln('NO');

end;

end.

Câu 4(2 điểm)

uses crt;

var n,p,x,dem:int64;

{----------------------chuong-trinh-con-tim-ucln---------------------}

function ucln(a,b:int64):int64;

var t:int64;

begin

t:=b mod a;

while t<>0 do

begin

t:=a mod b;

a:=b;

b:=t;

end;

ucln:=a;

end;

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

begin

readln(n,p);

dem:=0;

for x:=1 to n do

if ucln(x,n)=p then inc(dem);

writeln(dem);

end.

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

#include<bits/stdc++.h>

using namespace std;

#define ll long long #define mod (ll)(1e7+7)

const ll N = 1000000;

ll lp[N+1];

vector<ll > pr;

void solve()

{ for (ll i=2; i<=N; ++i)

{ if (lp[i] == 0)

{ lp[i] = i; pr.push_back (i);

}

for (ll j=0; j<(ll )pr.size() && pr[j]<=lp[i] && i*pr[j]<=N; ++j)

lp[i * pr[j]] = pr[j];

}

}

ll po(ll a,ll n)

{ ll res=a, ans=1; while(n)

{ if(n%2) ans=ans*res%mod; res=res*res%mod; n/=2;

}

return ans;

}

ll aka(ll p, ll alpha)

{

if(alpha==0) return 1;

if(alpha==1) return (p+1);

if(alpha%2==1) return p*aka(p,alpha-1)+1;

if(alpha%2==0) return (po(p,alpha/2)+1)*(aka(p,alpha/2)-1)+1;

}

ll f(ll n)

{

ll tmp,i=0,so_mu,res=1;

while(pr[i]<=n)

{

tmp=pr[i];

so_mu=0;

while(tmp<=n)

{

so_mu = so_mu+ (n/tmp);

tmp=tmp*pr[i];

}

res=res*(so_mu+1)*(so_mu+2)/2%mod; i++;

}

return res;

}

int main(){ ll n,res; solve();

while(1)

{

cin>>n;

if(n==0) break;

res=f(n);

cout<<res<<'\n';

}

}

9

Nhìn dài quá

Ngủ thôi

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 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

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;

Câu 2: Cho thuật toán sauBước 1:  Nß10; Bước 2: S f 0; i f 1,  Bước 3: Nếu i  > N thì Thông báo S, kết thúc. Bước 4: S ! S + i; Bước 5: if i + 1,  quay lại B3;a. Hãy điền giá trị tương ứng của i và S khi chạy thuật toán. i12345678910S           b. Thuật toán trên dùng để giải quyết bài toán gì……………………………………………………………………………………………..Câu 3: Cho dãy A gồm N số nguyên a1, a2,…, aN. Xây dựng thuật toán tính tổng các số nguyên dương có trong...
Đọc tiếp

Câu 2: Cho thuật toán sau

Bước 1:  Nß10; 

Bước 2: S f 0; i f 1,  

Bước 3: Nếu i  > N thì Thông báo S, kết thúc. 

Bước 4: S ! S + i; 

Bước 5: if i + 1,  quay lại B3;

a. Hãy điền giá trị tương ứng của i và S khi chạy thuật toán.

 

i

1

2

3

4

5

6

7

8

9

10

S

 

 

 

 

 

 

 

 

 

 

 

b. Thuật toán trên dùng để giải quyết bài toán gì

……………………………………………………………………………………………..

Câu 3: Cho dãy A gồm N số nguyên a1, a2,…, aN. Xây dựng thuật toán tính tổng các số nguyên dương có trong dãy.

+        Input:...............................................................................................................................

+        Output: ...........................................................................................................................

+        Thuật toán:

 

1
23 tháng 10 2021

Câu 3: 

#include <bits/stdc++.h>

using namespace std;

long long n,i,x,t;

int main()

{

cin>>n;

t=0;

for (i=1; i<=n; i++)

{

cin>>x;

if (x>0) t=t+x;

}

cout<<t;

return 0;

}

10 tháng 5 2023

chỉ em câu này dới ạ em cảm ơm ạ

NameError:  name 'S' is not defined Câu 4
SyntaxError: expected ':' Câu 2

A=[3,-9,1,-4,15,7]
S=0
for i in range(len(A)):
    if A[i]%2!=0 :
        S=S+A[i]
print(S)