首页 > 其他分享 >CSP历年复赛题-P1548 [NOIP1997 普及组] 棋盘问题

CSP历年复赛题-P1548 [NOIP1997 普及组] 棋盘问题

时间:2024-05-20 09:22:30浏览次数:25  
标签:int long 方向 NOIP1997 容纳 矩形 CSP P1548

原题链接:https://www.luogu.com.cn/problem/P2241

题意解读:要在整个n*m区域计算正方形和长方形的个数,枚举法即可。

解题思路:

此题枚举的对象是矩形的高i和宽j,高的范围[1, n],宽的范围[1, m],然后计算在n * m区域内有多少个i * j,i==j即属于正方形,i!=j属于长方形。

那么,问题就集中在了如何计算n * m的区域内有多少个i * j的矩形:

如上图,要在n * m范围内计算有多少个i * j的矩形,只需要看该矩形在水平、垂直方向各能移动多少步,

水平方向:可以移动m - j步,即水平方向可容纳m - j + 1个矩形,

垂直方向:可以移动n - i步,即垂直方向可容纳n - i + 1个矩形,

则整个n * m区域可容纳的i * j矩形数为(m - j + 1) * (n - i + 1)。

需要注意结果可能爆int!

100分代码:

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

int main()
{
    int n, m;
    cin >> n >> m;
    long long area = 0, rect = 0;
    for(int i = 1; i <= n; i++) //枚举矩形的高
    {
        for(int j = 1; j <= m; j++) //枚举矩形的宽
        {
            //对于一个i * j的矩形, 计算在n * m范围内有几个
            if(i == j) area += (n - i + 1) * (m - j + 1); //正方形
            else rect += (n - i + 1) * (m - j + 1); //长方形
        }
    }

    cout << area << " " << rect;

    return 0;
}

 

标签:int,long,方向,NOIP1997,容纳,矩形,CSP,P1548
From: https://www.cnblogs.com/jcwy/p/18201186

相关文章

  • csp2023 游记
    2023.10.20(Day0)S1拿了\(68.5\)分,顺利晋级。但是J1只拿了\(60.5\),没了。S2就在自己的学校(而且甚至是我上信息技术课的教室),所以试机了和没试机没有任何区别qwq。在luogu上面打了一下a+b,回顾了一下编译就走了。2023.10.21(Day1)正序开题,发现T1好像是\(5\)个fo......
  • 梦熊四月 csp-s 模拟赛2 T2 排序
    小B想要对一个长为\(n\)的序列\(A\)排序。已知\(A\)中只包含\(0,1,\cdots,n-1\)且对任意\(i\nej\)有\(A_i\neA_j\)且\(n\)为\(2\)的次幂。为了排序,小B只想用以下两种操作:交换相邻的两个位置,也就是说选择\(1\lei\len-1\)并且交换\(A_i,A_{i+1}\)。......
  • P5664 [CSP-S2019] Emiya 家今天的饭
    题意简述有\(n\)种方法和\(m\)种食材,第\(i\)种方法第\(j\)种食材做出来的菜有\(a_{i,j}\)种。有以下限制:至少做一盘菜。每种方法做出来的菜品数至多为\(1\)。所有以第\(i\)种食材做出来的菜品数不超过菜品种数的一半。求方案数。\(n\le100,m\le2\times10^......
  • P9753 [CSP-S 2023] 消消乐
    P9753[CSP-S2023]消消乐这题想到了50pts,想不出来怎么优化了。50pts:考虑枚举子串左端点,模拟操作过程,直接用栈模拟,遇到相同的则删去,如果某个时刻栈为空,那么合法子串数加一。考场上只想到为空的时候可消除,下面的性质才是关键的。因为我们枚举左端点,每次只判断了\([l,r]\)的......
  • P7914 [CSP-S 2021] 括号序列
    P7914[CSP-S2021]括号序列看起来非常复杂的括号题,看到数据范围,大概确定是区间dp,所以我们考虑怎么定义状态。条件非常多,所以二维的状态肯定表示不了,考虑多加一维来定义不同的状态。\(dp_{i,j,0}\):区间形式是***...***的方案数。\(dp_{i,j,1}\):区间形式是(...)的方案数......
  • [CSP-J2019] 数字游戏
    [CSP-J2019]数字游戏题目描述小K同学向小P同学发送了一个长度为8的01字符串来玩数字游戏,小P同学想要知道字符串中究竟有多少个1。注意:01字符串为每一个字符是0或者1的字符串,如101为一个长度为3的01字符串。输入格式输入文件只有一行,一个长度为8的0......
  • 洛谷 P8818 [CSP-S 2022] 策略游戏
    https://www.luogu.com.cn/problem/P8818什么玩意儿。。这种策略题不就是你来我往的,你如果选那个我就选这个,到了最后俩人都做不了决策,一直在博弈吗放个示例跑不过去的代码真不想调,这种题就是恶心啊,你说说怎么调呢针对一方的选择,另一方总能选出更优的策略来。然后这一方针对另......
  • CSP 2023 游记
    非常好csp,使我RP旋转。没挂分但也没发挥超常,分数看来不算低。针不戳。Day-6~-2一直在打板子,同时写了篇板子博。后面效率有点低就鸽掉了。心情不是很稳定,有点心不在焉,效率被猫薄纱,%。whk的话精神状态也不是很好。把除了dp和网络流的板子几乎都打了一遍,感觉捡回了许......
  • 【CSP】201909-3 字符画
    大模拟,butintersting!因为我在MacOS上写代码,所以确实能看见颜色控制字符如何控制终端颜色,非常的漂亮啊(赞赏)。总之大约用时2h,最后30min排查bug,没认真读题导致的。写这种大模拟的思路还是解耦模块分别测试。有时候实在不想做算法题就写下大模拟放松心情,因为确实不用动脑子。也许......
  • 【CSP】202109-4 收集卡牌
    题目大意:小明抽卡,卡池共有n张卡,每张抽到的概率为pi,且每张重复的卡可以兑换成硬币,k个硬币可以兑换任意一张卡(硬币会攒起来在恰好可以兑换所有n张卡的时候一次性兑换)。问小明得到n张卡的期望抽卡次数是多少。(n<=16)分析:氪佬小明一看到n<=16就知道要状压dp,思路就是存储每一个状态......