Triangle Counting(n范围内能组成多少个三角形)

题意:有边长1--n的棍各一个,能组成多少个三角形...

题目链接:http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=423#problem/B

自己找规律吧,每增加边长为n的棍,是f[n-1]+多少个三角形。

#include <stdio.h>
long long f[1000010],s;
int main()
{
	int i,j,n;
	f[3]=0;f[4]=1;f[5]=3;
	for (i=6;i<=1000000;i++)
	{
		s=0;
		if ((i-3) % 2!=0)
		{
			s=(i-3)/2+1;
			j=s-1;
		}
		else j=(i-3)/2;
		s+=(1+j)*j;
		f[i]=f[i-1]+s;
	}
	while (~scanf("%d",&n))
		printf("%lld\n",f[n]); 
	return 0;
}


 

链接:https://ac.nowcoder.com/acm/contest/118654/E 来源:牛客网 题目描述 honoka最近在研究三角形计数问题。 她认为,满足以下三个条件的三角形是“好三角形”。 1.三角形的三个顶点均为格点,即横坐标和纵坐标均为整数。 2.三角形的面积为 1 1 。 3.三角形至少有一条边和 𝑥 x 轴或 𝑦 y 轴平行。 honoka想知道,在平面中选取一个大小为 𝑛 ∗ 𝑚 n ∗m 的矩形格点阵,可以找到多少个不同的“好三角形”?由于答案可能过大,请对 1000000007 1000000007 取模。 输入描述: 两个正整数 𝑛 n 和 𝑚 m ( 2 ≤ 𝑛 , 𝑚 ≤ 1 0 9 ) (2 ≤n,m≤10 9 ) 输出描述: 面积为1的格点三角形的数量,对 1 0 9 + 7 10 9 +7 取模的结果。 示例1 输入 复制 2 3 输出 复制 6 说明 格点如下: * * * * * * 不妨设左下角坐标为(1,1),右上角坐标为到(3,2)。 那么三点坐标可选: (1,1)(1,2)(3,1) (1,1)(1,2)(3,2) (1,1)(2,2)(3,1) (1,1)(3,1)(3,2) (1,2)(2,1)(3,2) (1,2)(3,1)(3,2) 所以共有6个。 示例2 输入 复制 100 100 输出 复制 7683984 说明 这里太小写不下啦。#include<bits/stdc++.h> using namespace std; #define int long long const int mod=1e9+7; signed main () { int n,m; cin>>n>>m; int sum1=((m-1)*((n-2)*(m-2))%mod)%mod+((n-1)*((m-2)*(n-2)%mod))%mod; sum1*=2; int sum2=((n-1)*((m-2)*m)%mod)%mod+((m-1)*((n-2)*m)%mod)%mod; sum2*=2; //cout<<sum1<<" "<<sum2<<endl; cout<<(sum1+sum2)%mod; }为什么不对
最新发布
10-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值