bzoj2005 Noi2010 能量採集

2022-03-26 00:30:44 字數 713 閱讀 7954

傳送門:

【題解】

題目要求$\sum_^n\sum_^m ((i,j) * 2 + 1)$

考慮容斥,$t_i$表示有公約數$i$的方案數,顯然是$\lfloor n/i \rfloor \lfloor m/i \rfloor$。

$f_i$表示有最大公約數$i$的方案數,那麼有$f_i = t_i - \sum_^ f_$

倒過來做顯然就行了,複雜度是$o(nlogn)$。

# include # include 

# include

# include

//# include

using

namespace

std;

typedef

long

long

ll;typedef

long

double

ld;typedef unsigned

long

long

ull;

const

int m = 5e5 + 10

;const

int mod = 1e9+7

;int

n, m;

ll f[m], ans;

intmain()

cout

<

return0;

}

view code

bzoj 2005 Noi2010 能量採集

description 棟棟有一塊長方形的地,他在地上種了一種能量植物,這種植物可以採集太陽光的能量。在這些植物採集能量後,棟棟再使用乙個能量匯集機器把這些植物採集到的能量匯集到一起。棟棟的植物種得非常整齊,一共有n列,每列有m棵,植物的橫豎間距都一樣,因此對於每一棵植物,棟棟可以用乙個座標 x,y...

BZOJ2005 Noi2010 能量採集

description 棟棟有一塊長方形的地,他在地上種了一種能量植物,這種植物可以採集太陽光的能量。在這些植物採集能量後,棟棟再使用乙個能量匯集機器把這些植物採集到的能量匯集到一起。棟棟的植物種得非常整齊,一共有n列,每列有m棵,植物的橫豎間距都一樣,因此對於每一棵植物,棟棟可以用乙個座標 x,y...

bzoj2005 Noi2010 能量採集

description 棟棟有一塊長方形的地,他在地上種了一種能量植物,這種植物可以採集太陽光的能量。在這些植物採集能量後,棟棟再使用乙個能量匯集機器把這些植物採集到的能量匯集到一起。棟棟的植物種得非常整齊,一共有n列,每列 有m棵,植物的橫豎間距都一樣,因此對於每一棵植物,棟棟可以用乙個座標 x,...