题目传送门 说是加强版,其实可以把棋盘那道题的代码粘过来(注意要开long long): #include<bits/stdc++.h> using namespace std; ,c; int main(){ cin>>n>>m; ;i<(n>m?m:n);++i) z+=(n-i)*(m-i); c=(+n)*(+m)*n*m/-z; cout<<z<<" "<<c<<endl; ; }…
https://www.luogu.org/problem/show?pid=2241 题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来是100,100) 输出格式: 方格包含多少正方形.长方形 输入输出样例 输入样例#1: 2 3 输出样例#1: 8 10 #include <algorithm> #include <cstdio>…
点击查看代码 #include<bits/stdc++.h> using namespace std; long long n, m, total, sum1, sum2; int main() { cin >> n >> m; int min_mn = min(m ,n); for (int i = 1; i <= min_mn; i++) { sum1 += (n - i + 1) * (m - i + 1); } cout << sum1 <…
洛谷P2241-统计方形 题目描述: 有一个 \(n \times m\) 方格的棋盘,求其方格包含多少正方形.长方形(不包含正方形). 思路: 所有方形的个数=正方形的个数+长方形的个数.对于任意一个\(x\times y\)的矩形,以这个方形右下角的那个块作为要在矩形内选择正方形\长方形的右下角,则正方形的个数为\(min(x,y)\),长方形的个数为\(x*y\). 解释如下:对于一个\(x\times y\)的矩形,右下角的块必选,则能和这个块组成的正方形的右上角块全在这个主对角线上,而…
洛谷P1169 bzoj1057 这个题目跟最大全0子矩阵是类似的.正方形的话,只要把任意极大子正方形(”极大“定义见后面的”论文“)当成把某个极大子矩形去掉一块变成正方形即可,容易解决. 解法1:看论文里面的“算法2“(那个是最大全0子矩阵方法,改一下就可以用在此题) #include<cstdio> #include<algorithm> #include<cstring> #include<vector> using namespace std; #d…
题目背景 1997年普及组第一题 题目描述 有一个n*m方格的棋盘,求其方格包含多少正方形.长方形 输入输出格式 输入格式: n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来是100,100) 输出格式: 方格包含多少正方形.长方形 输入输出样例 输入样例#1: 2 3 输出样例#1: 8 10 计算矩形中小矩形个数公式:(((1+n)*(1+m))*(n*m))/4:注:n,m为其边长,个数中仍包含有特殊矩形(正方形): #include<iostream> #in…
我不是题目的说 这道题运用了一种很巧妙的DP方式:悬线法 如图,蓝色为悬线,黄色为向两边延伸的长度 那么显然,最大子矩形的宽一定是这些黄线中最小的(证明从略) 所以我们可以维护三个数组: Up[i][j]表示向上延伸的长度 Left[i][j]表示向左能延伸到的最远横坐标 Right[i][j]表示向右能延伸到的最远横坐标 Code: #include<bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; int n,m,maxR…
P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章 中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 ). 输入输出格式 输入格式: 输入文件…
棋盘制作 题目链接 这个题是[USACO5.3]巨大的牛棚Big Barn和玉蟾宫的结合 一道顶两道毒瘤! 题解: 首先,棋盘有两种选法: 1.任意白格(x,y) (x+y)%2=0 ,任意黑格(x,y) (x+y)%2=1 2.任意白格(x,y) (x+y)%2=1 ,任意黑格(x,y) (x+y)%2=0 那么我们可以先将所有(x+y)%2=1的格子颜色取反, 就变成了求最大的颜色都为1的正方形和矩形 再把整个棋盘取反,求一遍最大正方形和矩形 正方形:dp[i][j]表示以(i,j)为右下角…
题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章 中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 ). 输入输出格式 输入格式: 输入文件名为stat.in ,2…