题解 | #格点三角形#

格点三角形

https://www.nowcoder.com/practice/7fa081e985b2422fb20e0136222f1f6c

  • 个人思路:
    • 场景1:当高为1,宽为n时

    • 计算:

      • 固定(0,0)和(0,1)为边界
        • 以(0,0),(0,1),(1,0)和(1,1)为顶点的区域内,符合要求的三角形有4个
        • 以(0,0),(0,1),(2,0)和(2,1)为顶点的区域内,符合要求的三角形有4个
        • ...
        • 以(0,0),(0,1),(n,0)和(n,1)为顶点的区域内,符合要求的三角形有4个
        • 上述符合要求的有4n
      • 固定(1,0)和(1,1)为边界
        • 以(1,0),(1,1),(2,0)和(2,1)为顶点的区域内,符合要求的三角形有4个
        • 以(1,0),(1,1),(3,0)和(3,1)为顶点的区域内,符合要求的三角形有4个
        • ...
        • 以(1,0),(1,1),(n,0)和(n,1)为顶点的区域内,符合要求的三角形有4个
        • 上述符合条件的三角形有4(n-1)
      • ...
      • 固定以(n-1,0)和(n-1,1)为边界
        • 以(n-1,0),(n-1,1),(n,0)和(n,1)为顶点的区域内,符合要求的三角形有4个
        • 上述符合条件的三角形有4(1)
      • 综上所述,当高为1,宽为n时,符合要求的三角形有4*(1+2+3+...n) = 4*(n*(n+1))/2
    • 场景2:当高为2,宽为n时

    • 计算:

      • 可以将该图形分割成两个高为1,宽为n的两个矩形,根据场景1中的结论可以得到2 * 4*(n*(n+1))/2个 符合要求的三角形
      • 然后仅考虑高为2的情况,然后宽可以为1,2,3...n,这种情况与场景1类型,所以也可以得到4*(n*(n+1))/2 个符合要求的三角形
      • 综上所述,当高为2,宽为n时,符合要求的三角形有4*(n*(n+1))/2 + 2*4*(n*(n+1))/2 = (1+2)*4*(n*(n+1))/2个符合要求的三角形
    • 场景3:当高为3,宽为n时

    • 计算:

      • 可以将该图形分割成三个高为1,宽为n的矩形,根据场景1中的结论可以得到3 * 4*(n*(n+1))/2个 符合要求的三角形
      • 然后将该图形分割成两个高为2,宽为n的矩形,根据场景1中的结论可以得到2 * 4*(n*(n+1))/2个 符合要求的三角形
      • 接着仅考虑高为3的情况,然后宽可以为1,2,3...n,这种情况与场景1类型,所以也可以得到4*(n*(n+1))/2 个符合要求的三角形
      • 综上所述,当高为3,宽为n时,符合要求的三角形有4*(n*(n+1))/2 + 2*4*(n*(n+1))/2 + 3*4*(n*(n+1))/2 = (1+2+3)*4*(n*(n+1))/2个符合要求的三角形
    • 由此可以类推出:当高为m宽为n的矩形,符合要求的三角形 (1+2+3+...+m)*4*(n*(n+1))/2 = (m*(m+1))/2 * 4 * (n*(n+1))/2 = (m*(m+1))*(n*(n+1))

const long long mod = 1000000007;
int getNums(int n, int m) {
	int answer = 0;
	long long temp = 0;
	n--;
	m--;
	temp = (long long)n * (long long)(n + 1) % mod;
	temp = temp * (long long)m % mod;
	temp = temp * (long long)(m + 1) % mod;
	answer = temp;
	return answer;
}
全部评论

相关推荐

点赞 收藏 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151063次浏览 17148人参与
# 通信和硬件还有转码的必要吗 #
11188次浏览 101人参与
# OPPO开奖 #
19192次浏览 267人参与
# 和牛牛一起刷题打卡 #
18863次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203338次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4965次浏览 30人参与
# 不去互联网可以去金融科技 #
20320次浏览 255人参与
# 通信硬件薪资爆料 #
265873次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2210次浏览 34人参与
# 互联网公司评价 #
97664次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25034次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454801次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53895次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14633次浏览 349人参与
# 硬件人的简历怎么写 #
82284次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19392次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28035次浏览 248人参与
# 学历对求职的影响 #
161219次浏览 1804人参与
# 你收到了团子的OC了吗 #
538658次浏览 6386人参与
# 你已经投递多少份简历了 #
344156次浏览 4963人参与
# 实习生应该准时下班吗 #
96958次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63516次浏览 622人参与
牛客网
牛客企业服务