2016暑期集訓14A找朋友

2021-07-17 00:05:35 字數 1088 閱讀 1301

時間限制: 1 sec 記憶體限制: 128 mb

題目描述

隨著n名新生開始入學,會產生很多對好朋友。今年新生成為好朋友的方式有些特別。他們會看中成績排名和彼此之間的名字。

給定所有學生的姓名和成績排名,和乙個整數k。兩人能成為朋友,首先兩人的成績排名差距至多為k。例如k=1,那麼只有成績相鄰的才能成為朋友。其次,名字長度相同的才能成為朋友。

輸入 第一行兩個正整數,n(3<=n<=300000)和k(1<=k<=n),分別表示人數和朋友間排名差距。

接下來n行,每行表示新生姓名,給出的順序就是按照成績排名。每個人的姓名長度屬於範圍[2,20]。

輸出 輸出新生中可以產生的朋友對數。

樣例輸入

4 2

iva

ivo

ana

tom

樣例輸出

5 提示

【資料規模】

對於20%的資料,n ≤ 20

對於40%的資料,n ≤ 30000

對於這道題首先想到的自然是暴力n*k

但顯然時間不允許,所以我們必須用更快的方法。

觀察發現,交朋友要名字一樣長,而且資料不大

所以分2-20組,每組作乙個類似於佇列的線掃,統計數量即可.

另外,考試中只得了80分,原因是我寫了st

<

ed,而資料中有執行過程中st=ed的情況,請lwq大神幫助debug,改為st

<

a[i,0]就對了

#include

#include

#include

#include

#define ll long long

using

namespace

std;

int n,k;

char s[25];

int a[25][300005];

int main()

ll ans=0;

for (int i=2;i<=20;i++)

ans+=sum;

}cout

0;}

2016暑期集訓集中貼

暑假期間網上練習的題解將在此部落格公布,具體內容見後文。以下是暑期集訓各隊員題量統計 包括賽後補的題 2016暑期集訓acboard 截至07 23 總題量557 5101010 1163 隊員名稱 cf 1 cf 2 cf 3 cf 4 cf 5 模擬訓練1 模擬訓練2 模擬訓練3 模擬訓練4 模...

2016暑期集訓 搜尋 簡單BFS

雖然,雖然,這道題很簡單。但是我一直覺得我自己關於搜尋可以算是一點都不會的,所以寫得時候也是有點沒底,可是,出乎意料的是我 寫完測了一下樣例是對的,交了之後發現過了,還是很開心的!看題,想題,敲 交題,ac!對,就是沒有debug這一步,這種一順溜,不用debug就過題的感覺真爽。第一次從搜尋的題目...

SDUT14級寒假集訓 找女朋友 快排

個人認為,快排對於剛剛接觸演算法的同學還是比較困難的。具體思路不難理解,的編寫就不是那麼容易了。通過乙個示例來說一下具體思路 1 將一行雜亂的數由下標1開始存入a陣列 256,301,751,129,937,863,742,694,076,438 2 第一次迴圈 現將第乙個數作為關鍵字存入a 0 此...