摘要:
UVA_11538 可以将两个皇后的位置分为横、竖、斜三种情况去计算,每种都可以总结出O(1)的计算公式。#include<stdio.h>#include<string.h>#include<algorithm>typedef long long LL;int N, M;LL sum(int n){ return (LL) n * (n + 1) / 2;}LL sum2(int n){ return (LL)n * (n + 1) * (2 * n + 1) / 6;}int main(){ while(scanf("%d%d", & 阅读全文
摘要:
UVA_11401 如果单纯统计合法的三角形,好像不大好办。但如果去统计不合法的,还算好办一些,因为不合法的三角形就相当于找到任意两条边a、b,并且另外一条边c要满足c>=a+b,那么以a、b为边的不合法的三角形一共就有N-(a+b)+1种(这里假设a+b<=N),当然我们不能直接枚举a、b去计算。但观察到实际上a+b的范围是有限的,3到2*N-1而已,那么不妨考虑如果和为i的时候一共有多少对不同的a、b呢?比较容易发现是有(i-1)/2对的,那么最后不合法的三角形数量就变成了sum{(i-1)/2*(N-i+1)}(3<=i<=N)。但是由于数据的原因,O(N)的办法 阅读全文