Trang chủ Tin Học Lớp 12 Input: Đọc từ file văn bản ROBOT.INP có cấu trúc...

Input: Đọc từ file văn bản ROBOT.INP có cấu trúc như sau: - Dòng đầu tiên chứa 2 số nguyên dương N và M (mỗi số cách nhau 1 dấu cách; M < N). - M dòng tiếp

Câu hỏi :

Input: Đọc từ file văn bản ROBOT.INP có cấu trúc như sau: - Dòng đầu tiên chứa 2 số nguyên dương N và M (mỗi số cách nhau 1 dấu cách; M < N). - M dòng tiếp theo, mỗi dòng ghi 2 số nguyên dương i và j (mỗi số cách nhau một dấu cách) là chỉ số hàng và chỉ số cột của ô được đặt vào đó một viên đá là vật cản. Output: Ghi ra file văn bản ROBOT.OUT một số k là số đường đi của robot từ ô (1; 1) đến ô (N; N). Ví dụ: ROBOT.INP 3 2 1 3 2 1 ROBOT.OUT 2 Giới hạn: 30% test ứng với N 10; 40% test ứng với 10 < N 30; 30% test ứng với 30 < N 100;

image

Lời giải 1 :

#include <bits/stdc++.h>

using namespace std;

#define ll long long 
#define ld long double
#define ull unsigned long long
#define bigint __int128
#define pb push_back

const int N = 1e2 + 2, TT = 1e5 + 2, mod = 1e9 + 7;
const ll MAX = 1e18, MOD = 1000000000000000009;
const string palin = "ilovwxAHIMOTUVWXY";

string dp[N][N];
bool c[N][N];
int n, m;

string Sum(string a, string b)
{
 if(a.size() > b.size()) swap(a, b);
 a.insert(0, b.size() - a.size(), '0');
 
 string ans;
 int nho = 0;
 for(int i = a.size() - 1; i >= 0; i--)
 {
  int s = a[i] - 48 + b[i] - 48 + nho;
  ans += char(s % 10 + 48);
  nho = s / 10;
 }
 if(nho) ans += '1';

 reverse(ans.begin(), ans.end());
 return ans;
}

int main()
{

    freopen("ROBOT.INP", "r", stdin);

    freopen("ROBOT.OUT", "w", stdout);


    ios_base::sync_with_stdio(false);
 cin.tie(NULL);
 cout.tie(NULL);
 
// cout << Sum("1223844", "1233434485995493483");
 
 cin >> n >> m;
 while(m--)
 {
  int x, y;
  cin >> x >> y;
  c[x][y] = true;
 }
 
 for(int i = 0; i <= n; i++)
  for(int j = 0; j <= n; j++)
   dp[i][j] = "0";
   
 dp[1][1] = "1";
 for(int i = 1; i <= n; i++)
  for(int j = 1; j <= n; j++)
   if(!c[i][j])
   {
    if(!c[i - 1][j]) dp[i][j] = Sum(dp[i][j], dp[i - 1][j]);
    if(!c[i][j - 1]) dp[i][j] = Sum(dp[i][j], dp[i][j - 1]);
   }
 
 cout << dp[n][n];
}

Thảo luận

-- :v Ghê phết
-- ^^
-- Tui mà bt C++ là làm rồi >.<
-- ò.
-- nhưng nhớ phải bignum
-- https://hoidap247.com/cau-hoi/4603434 Giúp coi ^.^
-- ai biết làm đou
-- Kì v trời : Kì vọng bạn lắm mừ :(

Lời giải 2 :

#include <iostream>
#include <algorithm>
using namespace std;

string add(string a, string b) {
    a = "0" + a;
    b = "0" + b;
    if (a.size() < b.size()) swap(a, b);
    
    string res = "";
    int r = 0;
    for (int i = a.size() - 1, j = b.size() - 1; i >= 0; --i, j -= (j > 0)) {
        int tmp = a[i] + b[j] + r - 96;
        if (tmp > 9) tmp -= 10, r = 1; else r = 0;
        res += char(tmp + 48);
    }
    
    while (res.back() == '0' && res.size() > 1) res.pop_back();
    reverse(res.begin(), res.end());
    return res;
}

string dp[105][105];
bool m[105][105];
int n, q;

int main() {
    freopen("ROBOT.INP", "r", stdin);
    freopen("ROBOT.OUT", "w", stdout);
    
    cin >> n >> q;
    while (q--) {
        int u, v;
        cin >> u >> v;
        m[u][v] = 1; 
    }
    
    dp[1][1] = "1";
    m[1][1] = 1;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j)
            if (!m[i][j]) dp[i][j] = add(dp[i - 1][j], dp[i][j - 1]);
    }
    cout << dp[n][n];
}

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

Lớp 12 - Năm cuối ở cấp tiểu học, năm học quan trọng nhất trong đời học sinh trải qua bao năm học tập, bao nhiêu kì vọng của người thân xung quanh ta. Những nỗi lo về thi đại học và định hướng tương lai thật là nặng. Hãy tin vào bản thân là mình sẽ làm được rồi tương lai mới chờ đợi các em!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK