題目傳送門
提前打了一下表,發現好像就1和24可以,試了一下a了附上大佬的證明:如何證明 1²+2²+…+n² 為平方數的解只有 n=1 或 n=24?
#include
intmain()
return0;
}
題目傳送門
mask allocation
對於n*m個口罩,將其分成可以組合成n個m個m個n,只能序列內疊加,不能拆分,答案按照字典序排序輸出
每次選擇當前可以組合的最大數即可
#include
#include
#include
using
namespace std;
const
int n=
1e5+9;
// #define tds_acm_local
int n, m, a[n]
, ans;
void
solve()
cout<
for(
int i=
1; i<=ans; i++
) cout<
<<
" ";
cout<
return;}
intmain()
題目傳送門
看一下上圖,稍微推一下其實很容易就能發現規律了, 每列的公式為n∗k∑i=n∗kn∗
k 或者 n∗k
−(n−
1)n∗k−(n−1)
n∗k−(n
−1),n為n的行,直接跑o(n)的話很明顯t了,所以我們講將公式換一種方式寫一下:
1n(n
/i)+
∑i=2
n(n−
1)/i
+k−1
∑^n_(n/i)+∑^n_ (n-1)/i+k-1
∑i=1n
(n/i
)+∑i
=2n
(n−1
)/i+k−1
很明顯的除法分塊(∑i=1nn/
i∑^n_n/i
∑i=1n
n/i)的變形,然後兩個求和公式的上界應該是min
(n,k
)min(n,k)
min(n,
k)和m in
(n−1
,k)min(n-1,k)
min(n−
1,k)
#include
#include
#include
using
namespace std;
#define ll long long
const
int mod=
1e9+7;
// #define tds_acm_local
inline ll division
(ll n,ll k, ll t)
//除法分塊
return ans;
}void
solve()
intmain()
2020牛客暑期多校訓練營 第七場
可以看成把乙個m n m nm n的長方形劃成若干個寬為1 11的矩形,使得存在兩種分割方法能恰好填滿長和寬。然後只要不斷在矩形裡劃分正方形就行了。include using namespace std typedef long long ll intmain for int i 1 i n i a...
2020牛客暑期多校訓練營(第七場)
b題 傳送門 link 題意 有n m個口罩,需要要把它們裝到一些箱子裡面,要使箱子數盡可能少,並且滿足兩個條件,這些箱子可以分成m組,每組n個口罩,或者分成n組,每組m個口罩。思路 分配方案其實就是乙個迭代的過程。為了使得箱子數最少,每個箱子就應該盡可能的多裝。每次優先裝min n,m 個箱子,每...
2020牛客暑期多校訓練營(第七場)
難度係數 dd fake news 講題人所謂的 暖暖的簽到題 完全平方和,只要特判1和21即可即可 includeusing namespace std typedef long long ll define t ll t scanf lld t while t intmain else b ma...