時間限制: 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 此...