BZOJ 2083 vector的巧用 二分

2022-05-01 19:45:13 字數 1507 閱讀 7843

time limit: 10 sec  memory limit: 259 mb

submit: 469  solved: 227

[submit][status][discuss]

霸中智力測試機構的一項工作就是按照一定的規則刪除乙個序列的數字,得到乙個確定的數列。lyx很渴望成為霸中智力測試機構的主管,但是他在這個工作上做的並不好,俗話說熟能生巧,他打算做很多練習,所以他希望你寫乙個程式來快速判斷他的答案是否正確。

第一行為乙個整數m(1<=m<=1000000)第二行包括m個用空格分開的整數ai(1<=ai<=1000000),組成了最初的序列,第三行為乙個整數n(1<=n<=1000000),表示n個lyx經過一系列刪除得到的序列,每個序列兩行,第一行給出長度l(1<=l<=m),然後下一行為l個由空格分開的整數bi(1<=bi<=1000000)。

共n行,如果lyx的序列確實是由最初的序列刪除一些數得到,就輸出tak,否則輸出nie。

71 5 4 5 7 8 645

1 5 5 8 6

32 2 2

35 7 8

41 5 7 4

taknie

taknie

思路:= =感覺輸入量好大啊,而且我也沒有會員,不知道我寫的方法是wa還是tle還是ac,就先暫時貼出來就好了

將a中的每個數值都預處理出來,放出vector中,其中定義vectorve[i]表示,數值為i的出現在a中的位置集合。

然後我們暴力b串,並二分在a中的位置即可。(總感覺這個資料範圍好像有毒啊)

//

看看會不會爆int!陣列會不會少了一維!

//取物問題一定要小心先手勝利的條件

#include using

namespace

std;

#pragma comment(linker,"/stack:102400000,102400000")

#define ll long long

#define all(a) a.begin(), a.end()

#define pb push_back

#define mk make_pair

#define fi first

#define se second

#define haha printf("haha\n")

const

int maxn = 2e6 + 5

;int

n, m;

vector

ve[maxn];

vector

::iterator it;

intmain()

scanf("%d

", &n);

for (int i = 1; i <= n; i++)

}if (flag) puts("

tak"

);

else puts("

nie"

); }

return0;

}

view code

bzoj 2083 (二分查詢)

time limit 10 sec memory limit 259 mb submit 352 solved 157 submit status discuss 霸中智力測試機構的一項工作就是按照一定的規則刪除乙個序列的數字,得到乙個確定的數列。lyx很渴望成為霸中智力測試機構的主管,但是他在這個...

C 中vector和vector的區別

在使用stl容器 比如map list vector等 的時候,是用放乙個物件還是放乙個物件指標,即是用vector還是vector,這裡的vector可以換成其他的容器,int可以換成其他基本型別,也可以自定義的資料結構或類。首先,要說明的是,這兩種方式,怎麼用都可以實現功能,把一組整型數放到容器...

vector 比 vector慢的原因和替代方法

vector不是容器,至少,不是標準意義上的容器。vector的名稱有點讓人誤解,因為其內部元素實際上並不是標準的bool值,標準的bool值至少與char擁有一樣的大小,從而可以被 正常 使用。然而c 標準對於vector值有其特殊的實現方法。目的是為了減小空間的耗用。特殊版本內部只使用乙個bit...