NOIP 1997 普及组 复赛 棋盘问题

编程入门 行业动态 更新时间:2024-10-07 20:29:05

NOIP 1997 普及组 <a href=https://www.elefans.com/category/jswz/34/1752420.html style=复赛 棋盘问题"/>

NOIP 1997 普及组 复赛 棋盘问题

NOIP 1997 普及组 复赛 棋盘问题

1.初看没什么头绪,但画图模拟,很快能发现好的算法。

2.采用坐标方式,确定左上角,右下角的坐标,进行减法处理,算出边长,很快能数出长方形、正方形个数。

3.该题难在数学建模。

附上AC代码,编译环境Dev-C++4.9.9.2

#include <stdio.h>
int main(){
    int n,m;
    int r1,c1,r2,c2,e1,e2;
    int square=0,rect=0;
    scanf("%d%d",&n,&m);
    for(r1=0;r1<=n;r1++)
        for(c1=0;c1<=m;c1++)
            for(r2=r1+1;r2<=n;r2++)
                for(c2=c1+1;c2<=m;c2++){
                    e1=r2-r1;
                    e2=c2-c1;
                    if(e1>0&&e2>0)
                        if(e1==e2)
                            square++;
                        else
                            rect++;
                }
    printf("%d %d\n",square,rect);            
}

更多推荐

NOIP 1997 普及组 复赛 棋盘问题

本文发布于:2024-03-05 12:30:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1712301.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:复赛   棋盘   NOIP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!