Trang chủ Tin Học Lớp 11 C++ nha Trò chơi đặt quân cờ được thực hiện...

C++ nha Trò chơi đặt quân cờ được thực hiện trên một bảng gồm 𝑁 ô vuông liên tiếp. Các ô vuông được đánh chỉ số từ 1 đến 𝑁 (từ trái sang phải). Trên mỗi ô vu

Câu hỏi :

C++ nha Trò chơi đặt quân cờ được thực hiện trên một bảng gồm 𝑁 ô vuông liên tiếp. Các ô vuông được đánh chỉ số từ 1 đến 𝑁 (từ trái sang phải). Trên mỗi ô vuông có ghi một số nguyên ai là điểm của ô vuông đó. Khi người chời đặt quân cờ tại vị trí i (i = 1, 2, .., N) thì người chơi sẽ được thêm một số điểm là 𝑎𝑖1 + 𝑎𝑖 + 𝑎𝑖+1, sau lượt chơi này, 𝑎𝑖1, 𝑎𝑖 , 𝑎𝑖+1 trở về 0 (có giá trị 0). Ở đây ta quy ước 𝑎0 = 𝑎𝑁+1 = 0. Yêu cầu: Hãy tìm các đặt các quân cờ sao cho tổng số điểm nhận được là lớn nhất. Ban đầu, điểm của người chơi bằng 0 và người chơi có thể không đặt quân cờ nào. Dữ liệu cho trong file DatCo.Inp gồm: Dòng đầu ghi số nguyên dương 𝑁. Dòng thứ 2 ghi 𝑁 số nguyên 𝑎1, 𝑎2, , 𝑎𝑁(|𝑎𝑖 | 108 ). Kết quả ghi ra file DatCo.Out là tổng điểm lớn nhất có thể nhận được. Ví dụ: DatCo.Inp DatCo.Out 4 1 -2 9 -10 8 4 -2 -2 -2 -2 0 Giới hạn: Sub1: 𝑁 1000; Sub2: 𝑁 5. 105 .

image

Lời giải 1 :

Tự tạo file + đổi tên! 

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
 //ez
 int n;
 int mark = 0;

 scanf("%d" , &n);

 std::vector<int> boxes = {};
 for(int i = 1 ; i <= n ; i++){
  int num;
  scanf("%d",&num);
  boxes.insert(boxes.begin(),num);
 }
 // find the largest number algorithym 
 // all tries
 
 std::vector<int> res = {};
 for(int i = 1 ; i < boxes.size() ; i++)
 {
  int i_minus1;
  int i_plus1;
  if(i - 1 == 0){i_minus1 = 0;}else {i_minus1 = boxes[i-1];}
  if(i + 2 == boxes.size() + 1){i_plus1 =0;}else {i_plus1 = boxes[i + 1];}
  int mark;
  mark = i_minus1 + boxes[i] + i_plus1;
  res.insert(res.begin() + i - 1 , mark);
 } // all possible value
 
 int maxium_value_xd =  *std::max_element(res.begin(),res.end());

 if (maxium_value_xd <= 0)
 {
  maxium_value_xd = 0;
 }

 printf("%d",maxium_value_xd);
 return 0;

 /*
  xin loi ong nhe may comment toi viet = tieng anh vi no de hieu hon 
  nho cho toi 60 diem nhe UwU
  */
}

Thảo luận

-- mình gà mờ mà bạn :)) sao bằng mấy idol kia đc :))
-- thôi chào cao nhân sủi đi giải code đây
-- 2 hôm nữa vào codeforces ko :))
-- cao nhân có discord không?
-- vào contest div 2 làm vài bài :))
-- discord? có v:
-- Solirous#7388 add:v
-- lớp 7 mà ghê thế

Lời giải 2 :

#include <iostream>
using namespace std;

#define long long long
const int N = 1e5 + 5;
long dp[N], a[N], pfs[N];
long n, ans;

int main() {
    cin >> n;
    for (int i = 1; i <= n; ++i) cin >> a[i], pfs[i] = pfs[i - 1] + a[i];
    pfs[n + 1] = pfs[n];
    
    auto get = [](int i, int j) {
        return pfs[j] - pfs[i - 1];
    };
    
    dp[2] = max(0ll, get(1, 2));
    for (int i = 3; i <= n + 1; ++i) {
        dp[i] = max(dp[i], dp[i - 3] + get(i - 2, i));
        if (i > 3) {
            dp[i] = max(dp[i], dp[i - 4]);
            dp[i] = max(dp[i], dp[i - 4] + get(i - 3, i));
        }
        if (i > 4) {
            dp[i] = max(dp[i], dp[i - 5]);
            dp[i] = max(dp[i], dp[i - 5] + get(i - 4, i));
        }
        if (i > 5) {
            dp[i] = max(dp[i], dp[i - 6]);
            dp[i] = max(dp[i], dp[i - 6] + get(i - 5, i));
        }
        // cout << dp[i] << " ";
        ans = max(ans, dp[i]);
    }
    cout << ans;
}

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

Lớp 11 - Năm thứ hai ở cấp trung học phổ thông, gần đến năm cuối cấp nên học tập là nhiệm vụ quan trọng nhất. Nghe nhiều đến định hướng sau này rồi học đại học. Ôi nhiều lúc thật là sợ, hoang mang nhưng các em hãy tự tin và tìm dần điều mà mình muốn là trong tương lai nhé!

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