折騰筆記 計蒜客t1156AC記

2021-09-25 21:15:09 字數 1212 閱讀 7316

歡迎檢視原題位址

此題思路(最初版):

暴力,得出最相近的,1000ms呢,除非資料超大,否則不超時。

說明: 爆搜,搜出結果,時間複雜度基本 $o(n^2)$

注:本文所有時間(與空間)複雜度僅為估計,不排除坑爹資料卡大複雜度的可能

#include using namespace std;

bool kkk(int a,int k)

cin>>m;

for(int i = 0;i>k;

int mink = 2345678;

int minv = 2345678;

for(int j = 0;j詳細提交結果:

測試資料共20組:

$\color$ 6組

$\color$ 14組

$\color\text$

於是,我開始**為什麼沒過。。。

經研究表明:有一部分資料很大,一般的暴力水過是困難(難上加難)了,與其糾結所謂「怎麼水過多騙騙分」還不如花一點時間想想正解,終於,功夫不負有心人,我找到了upper_bound()

先看看他的用法:

#include using namespace std;

int main() ;

int b,c;

b = upper_bound(a,a+10,7)-a;

cout《這是例項,暫時不提供執行結果。

那麼我們不難想到使用upper_bound()查詢不小於這個數的最大數那麼。。。

有兩種情況:

設不小於這個數的最大數 = a;

一種:a==n

二種:a< n

那麼就出來了這段**:

#include using namespace std;

int kkk(int a,int b,int k)

if(tmp2==0)

if(tmp2>tmp1) else

}int main()

sort(a,a+n);

cin>>m;

for(int i = 0;i>m;

int j = upper_bound(a,a+n,m)-a;

int k = j-1;

//cout《詳細提交結果:

測試資料共20組:

$\color$ 20組

$\color\text$

計蒜客T1156 查詢最近的元素 二分

題目貼上 在乙個非降序列中,查詢與蒜頭君的給定值最接近的元素。輸入格式 第一行包含乙個整數 n,為非降序列長度。1 n 100000。第二行包含 n 個整數,為非降序列各元素。所有元素的大小均在 0 1,000,000,000 之間。第三行包含乙個整數 m,為要詢問的給定值個數。1 m 10000。...

計蒜客t36352 魔法

肯定我要佔滿所有的葉子結點,否則以乙個葉子節點建樹的時候你選的所有點就都在一棵子樹裡,也就不符合要求。反過來,選擇了所有葉子節點,可以證明它是可行的,所以葉子節點構成的集合滿足要求而且最小。如果k 0 k 0k 0直接求出度為1 11的點的數目就好了 如果k 1 k 1k 1,列舉刪哪條邊,我用 x...

紅與黑 計蒜客 T1211

題目鏈結 典型的深搜題,基礎題。蒜廠有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入格式第一行是兩個整數 w和 h,分別表示 x 方向和 y 方向瓷磚的數量。w 和 h 都不超過 ...