Trang chủ Tin Học Lớp 7 $\color{red}{\text{Hơi dài nhưng dễ lắm =)))}}$ Sắp thi rồi nhưng...

$\color{red}{\text{Hơi dài nhưng dễ lắm =)))}}$ Sắp thi rồi nhưng L lại chưa thể làm bài tin học, L muốn nhờ một người bạn của mình là T kèm mình. Tuy nhiên, T

Câu hỏi :

$\color{red}{\text{Hơi dài nhưng dễ lắm =)))}}$ Sắp thi rồi nhưng L lại chưa thể làm bài tin học, L muốn nhờ một người bạn của mình là T kèm mình. Tuy nhiên, T là một người "vui buốn thất thường". T chỉ rep tin nhắn của L vào những ngày "bình thường". Còn N ngày nữa là L phải thi rồi và số ngày tối thiểu để L có thể làm được bài tin học là X. Để không bị "nổ thông báo", T đã thiết lập một mạng lưới "vui buồn", mạng lưới này có thể giúp các người bạn của T nắm rõ tâm trạng của T. Mạng lưới "vui buồn" được T thiết lập như sau: - Nếu số lượng số nguyên tố trong xâu "vui buồn" là một số nguyên tố thì đó là ngày "bình thường" - Nếu không thì đó là ngày mà T "đóng cửa" Hãy giúp L xác định xem T có thể giúp L vượt qua bài kiểm tra hay không. Ràng buộc: N$\leq$$10^{3}$; S.length()$\leq$$100$; X$\leq$N Input: - Dòng đầu là số tự nhiên N - Dòng thứ hai là số tự nhiên X - N dòng tiếp theo, mỗi dòng là một xâu "vui buồn" trong mạng lưới "vui buồn" của T Output: In ra YES nếu T có thể giúp L vượt qua bài kiểm tra, ngược lại in ra NO Testcase: Input: 3 2 arg19jf53ui66 rytuujhn23wjr89mnf7hh abf72hsu85ud54320jk Output: YES Giải thích: - Xâu "arg19jf53ui66" có 2 số nguyên tố là 19 và 53 - Xâu "rytuujhn23wjr89mnf7hh" có 3 số nguyên tố là 23, 89 và 7 - Xâu "abf72hsu85ud54320jk" không có số nguyên tố nào `->` T sẽ rep L 2 ngày `->` T có thể giúp L vượt qua bài kiểm tra. $\color{blue}{\text{Giới hạn thời gian: 3s}}$ $\color{blue}{\text{Giới hạn ngôn ngữ: Không giới hạn}}$ $\color{blue}{\text{Giới hạn bộ nhớ: 10MB}}$

Lời giải 1 :

#include <bits/stdc++.h>
#define ll long long
using namespace std;


// Các số trong xâu nhỏ hơn 10^5 nên sàng cho nhanh :)
const int Lim = 1e5;
vector<int> pr;
vector<int> lpf;
void Linear_sieve(int n = Lim) {
    pr.assign(1, 2);
    lpf.assign(n + 1, 2);

    for (int x = 3; x <= n; x += 2) {
        if (lpf[x] == 2) pr.push_back(lpf[x] = x);
        for (int i = 1; i < pr.size() && pr[i] <= lpf[x] && pr[i] * x <= n; ++i)
            lpf[pr[i] * x] = pr[i];
    }
}

bool isPrime(int x) {
    if (x < 2) return false;
    return lpf[x] == x;
}

auto solve() {
    int n, x, cnt;
    cin >> n >> x;
    
    while (n--) {
        string ss;
        cin >> ss; 
        ss += "#";
        int num = 0, r = 0;
        
        for (char c: ss) {
            if ('0' <= c && c <= '9') num *= 10, num += c - 48; else r += isPrime(num), num = 0;
        }
        cnt += isPrime(r);
    }
    cout << (cnt >= x ? "YES" : "NO");
}

int main() {
    Linear_sieve();
    
    int t = 1;
    while (t--) solve();
}

Thảo luận

-- không biết có bị quá bộ nhớ ko thôi :))
-- cho mik nick của bạn nhé

Lời giải 2 :

const xd = trunc(1e5);
var p:array[0..xd] of boolean;
    i,j,n,x,res,a,c:longint;t,s:string;
procedure sieve;
var i,j:longint;
begin
for i := 2 to trunc(sqrt(xd)) do
 if not p[i] then
   for j := i to xd div i do
           p[i*j] := true;
end;
begin
readln(n);readln(x);sieve;
while n <> 0 do
 begin
   readln(s); s := s + '?'; c:=0;
    for i := 1 to length(s) do
     if s[i] in ['0'..'9'] then t := t + s[i]
     else if length(t)>0 then
       begin
         val(t,a);
         if (not p[a]) and (a>1) then inc(c);
         t := '';
       end;
     if (not p[c]) and (c>1) then inc(res);
     dec(n);
 end;
if res >= x then writeln('YES') else writeln('NO');
end.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, 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 (ảo). Với cách hiểu hiện nay, 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.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một cuồng quay mới lại đến vẫn bước tiếp trên đường đời học sinh. Học tập vẫn là nhiệm vụ chính!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247