這道題目就是一道很為簡單的模擬題。
但是,我從做這道題中,發現了一種思維的轉換。對於簡單的題目,不應該想的太過於糾纏。雖然都能做對,但是map的做法最慢,hash較快,而用類似單調佇列的思想的模擬看起來見簡潔,跑得也最快
如下可以什麼都不管,將a陣列排序(從小到大),顯然是乙個單調的佇列,而我們只需要比較兩個之間的關係就可以了。沒必要像下面我敲的map,hash那樣麻煩。
#include
#include
#include
#include
#include
#define rr register
using
namespace std;
struct nodea[
200001];
string g; mapint> m;
int n,len;
bool
cmp(node x,node y)
intmain()
sort
(a+1
,a+len+
1,cmp)
;for
(rr int i=
1;i<=len;i++
) cout<.s<<
" "<.num<}
#include
#include
using
namespace std;
const
int inn=
200003
;int ma,ta,t,q[inn]
,a[inn]
,num[inn]
;int
hash
(int x)
intlclate
(int x)
void
insert
(int x)
boolok(
int x)
intmain()
}sort
(q+1
,q+t+1)
;for
(int i=
1;i<=t;i++
)printf
("%d %d\n"
,q[i]
,num[
lclate
(q[i])]
+1);
}
洛谷 P1097 統計數字
某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 10 9 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。輸入格式 輸入檔案count.in包含n 1行 第一行是整數n,表示自然數的個數 第2 n 1每行乙個...
洛谷 P1097 統計數字
題目鏈結 ac 1 include 2 include 3 include 4using namespace std 5 mapct number 6int main 716 for map iterator it ct number.begin it ct number.end it 1720 r...
模擬 洛谷 P1097 統計數字
某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 10 9 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。輸入格式 輸入檔案count.in包含n 1行 第一行是整數n,表示自然數的個數 第2 n 1每行乙個...