Trang chủ Tin Học Lớp 11 Rùa 🐢 đi làm thêm tại một cánh đồng có...

Rùa 🐢 đi làm thêm tại một cánh đồng có N hàng và M cột, có số hàng được đánh số từ 1→N từ trên xuống dưới và có số cột được đánh số từ 1→M từ trái sang phải.

Câu hỏi :

Rùa 🐢 đi làm thêm tại một cánh đồng có N hàng và M cột, có số hàng được đánh số từ 1→N từ trên xuống dưới và có số cột được đánh số từ 1→M từ trái sang phải. Nhiệm vụ của Rùa là gieo hạt vào những ô trong cánh đồng này. Rùa 🐢 có một chiến thuật gieo hạt như sau: mỗi lần gieo thứ i, đầu tiên chọn hai ô (a[i],b[i]) là ô bắt đầu và ô (c[i],d[i]) là ô kết thúc và cậu chọn thêm một số x[i] là số hạt thóc sẽ gieo trong mỗi ô. Cậu sẽ rải theo đường ziczac, đầu tiên từ (a[i],b[i]) lần lượt rải từng ô và đi sang phải đến khi đụng ô cuối cùng trong hàng, cậu đi xuống một hàng và lần lượt rải sang trái cho đến khi đụng ô đầu tiên của hàng bên dưới, cậu lại xuống một hàng và rải sang phải,... cho đến khi cậu rải xong ô cuối cùng là (c[i],d[i]). Trong khi gieo hạt, Rùa quên ghi chép lại số liệu nên hiện tại không biết số hạt mỗi ô trên cánh đồng. Cho thông tin những lần gieo hạt của Rùa, hãy giúp Rùa đếm số hạt thóc mỗi ô trong cánh đồng cuối cùng có được. Input Dòng đầu tiên chứa hai số nguyên lần lượt là N và M (1≤N,M≤10^3) Dòng tiếp theo chứa một số nguyên Q, là số lần Rùa gieo thóc (1≤Q≤2∗10^5) Q dòng tiếp theo chứa năm số nguyên dương, dòng thứ i chứa lần lượt là ai,bi,ci,di,xi (1≤a[i],c[i]≤N), (1≤b[i],d[i]≤M), (1≤x[i]≤109). Với (a[i],b[i]) là ô bắt đầu và (c[i],d[i]) là ô kết thúc. Dữ liệu đầu vào đảm bảo nếu a[i]=c[i] thì b[i]≤d[i] Output In ra N dòng, dòng thứ i in ra M số nguyên. Với dòng i, số thứ j là số thóc ở ô tương ứng trên cánh đồng. Sample Test Input 1 3 4 3 1 1 2 2 1 3 3 3 4 2 2 3 3 3 3 Output 1 1 1 1 1 0 1 4 4 0 0 5 5 - Ngôn ngữ: tùy ý :) (Khuyên dùng c++ and pas or golang or python)

Lời giải 1 :

bạn đọc thử code mình đi nếu có gì chưa hiểu mình giải thích thêm

#include<bits/stdc++.h>
using namespace std;
long long n,m,q,z[1005][1005][2],z1[1005][1005][2],t,ans[1005][1005];
int main()
{
 ios_base::sync_with_stdio(false);
 cin.tie(0);cout.tie(0);
 cin>> n>> m>> q;
 
 for ( int i=0; i<q; i++ )
 {
  long long a,b,c,d,x;
  cin>> a>> b>> c>> d>> x;
  if ( a%2 == 1 ) z[a][b][0] += x,z[c][d][1] -= x;
  else z1[a][b][0] += x, z1[c][d][1] -= x;
 }
 
 for ( int i=1; i<=n; i++)
 {
  if ( i%2 == 1)
   for ( int e=1; e<=m; e++)
   {
    t += z[i][e][0];
    ans[i][e]+=t;
    t += z[i][e][1];
   } 
  else 
  {
   for ( int e=m; e>=1; e--)
   {
    t += z[i][e][0];
    ans[i][e]+=t;
    t += z[i][e][1];
   } 
  }
 } 
 
 for ( int i=1; i<=n; i++)
 {
  if ( i%2 == 0)
   for ( int e=1; e<=m; e++)
   {
    t += z1[i][e][0];
    ans[i][e] += t;
    t += z1[i][e][1];
   } 
  else 
  {
   for ( int e=m; e>=1; e--)
   {
    t += z1[i][e][0];
    ans[i][e] += t;
    t += z1[i][e][1];
   } 
  }
 }
 
 for ( int i=1; i<=n; i++)
 {
  for ( int e=1; e<=m; e++) cout<<ans[i][e]<<" ";
  cout<<"\n";
 }
}

Thảo luận

-- bn vô câu hỏi ms nhất của mik nhé
-- nói nè sao cái dấu {}, nó bị rời vậy, bạn chỉnh lại đi dấu nào bạn ?
-- code mìmh ko bình thường mà
-- thuật tón nx âu bẹn
-- bạn đọc thử code mình đi vì mình nghĩ bài này chỉ cần cài đặt thông minh thôi chứ ko có thuật toán mấy =)
-- ok vậy 2 ngôn ngữ nhé bạn
-- mà mình chỉ code c++ thôi sr nha =(
-- -.-😵😵

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

Copyright © 2021 HOCTAP247