P11020 「LAOI-6」Radiation 题解

一道简单的构造题,其实不用想的十分复杂的说。

首先,最多发射的宇宙射线 sum 也最多为 summax=min(m,n) 也就是说,无论如何摆放石子,也只能达到这个数量。那么我们的目的便变成了如何让石子变成这一个形状。

如上图,在一个 3×6 的矩阵中,其实只要三颗石子即可满足最多的射线,那其他的石子呢?随便放,直到放完,其他的石子并无作用。

将上一个特殊的例子推广一下,对于一个矩阵 a[m][n] 来说,只需沿着 a[i][j](i=j) 放置即可达到最多的射线量,剩下的石子即可随便摆放。

#include <bits/stdc++.h>
#define seq(q, w, e) for (int q = w; q <= e; q++)
#define ll long long
using namespace std;
const int maxn = 2010;
int t,n,m,k;
char a[maxn][maxn];
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n>>m>>k;
        seq(i,1,n){
            seq(j,1,m){
                if(j==i&&k>0){           //为对角线,且有石子剩余
                    a[i][j]='S';         //摆放石子
                    k--;
                }
                else{
                    a[i][j]='.';
                }
            }
        }
        seq(i,1,n){
            seq(j,1,m){
                if(k>0&&a[i][j]!='S'){
                    cout<<'S';           //能放就放,随便
                    k--;
                }
                else{
                    cout<<a[i][j];
                }
            }
            cout<<'\n';
        }
    }
    return 0;
}
posted @   adsd45666  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示