]手串
時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 64m,其他語言128m
作為乙個手串藝人,有金主向你訂購了一條包含n個雜色串珠的手串——每個串珠要麼無色,要麼塗了若干種顏色。為了使手串的色彩看起來不那麼單調,金主要求,手串上的任意一種顏色(不包含無色),在任意連續的m個串珠裡至多出現一次(注意這裡手串是乙個環形)。手串上的顏色一共有c種。現在按順時針序告訴你n個串珠的手串上,每個串珠用所包含的顏色分別有哪些。請你判斷該手串上有多少種顏色不符合要求。即詢問有多少種顏色在任意連續m個串珠**現了至少兩次。
輸入描述:
第一行輸入n,m,c三個數,用空格隔開。(1 <= n <= 10000, 1 <= m <= 1000, 1 <= c <= 50) 接下來n行每行的第乙個數num_i(0 <= num_i <= c)表示第i顆珠子有多少種顏色。接下來依次讀入num_i個數字,每個數字x表示第i顆柱子上包含第x種顏色(1 <= x <= c)
輸出描述:
乙個非負整數,表示該手鍊上有多少種顏色不符需求。
輸入例子1:
5 2 3
3 1 2 3
02 2 3
1 21 3
輸出例子1:
2例子說明1:
第一種顏色出現在第1顆串珠,與規則無衝突。
第二種顏色分別出現在第 1,3,4顆串珠,第3顆與第4顆串珠相鄰,所以不合要求。
第三種顏色分別出現在第1,3,5顆串珠,第5顆串珠的下乙個是第1顆,所以不合要求。
總計有2種顏色的分布是有問題的。
這裡第2顆串珠是透明的。
思路:看看思路說明,我們可以抽象出乙個鍊錶結構,表頭記錄記錄顏色資訊,元素是改顏色出現的位置,例如:
1:12: 1,3,4
3: 1,3,5
由於位置資訊是遞增的,所以不用排序,
之後判斷每一種顏色的位置,是否負責金主要求,
#include
#include
#include
using namespace std;
int n,m,c,temp,t;
map<
int, vector<
int>
> cd;
intmain()
}int ans=0;
for(
int i=
1;i<=c;i++
)else
if(j==len-
1&&cd[i][0
]+n-cd[i]
[j]cout
}
位元組跳動mysql面試 位元組跳動 Golang面試
應朋友之邀,今天下午去位元組送了顆人頭,最後不負眾望,被面試官攆出來了 一面mysql索引快的原理 回答這個問題需要先看一下資料庫的儲存結構 頁結構頁和頁之間的關係 頁和頁之間的關係 有個知識,之前不知道的 聚集索引 以主鍵建立的索引,葉子節點儲存的是表中的資料 非聚集索引 非主鍵建立的索引,葉子節...
位元組跳動 Magic
題目描述 給乙個包含 n個整數元素的集合 個整數元素的集合 a,乙個包含 m個整數元素的集合 b。定義 magic操作為,從乙個集合中取出元素放到另里且過後每的平均值都大於操作前。注意以下兩點 不可以把乙個集合的元素取空,這樣就沒有平均值了 值為 x的元素從集合 b取出放入集合a,但集合 a中已經有...
位元組跳動 Misc betgame
我太難了 棧溢位都還沒學會去做堆題,硬剛了幾個小時,算了,先回來把這題的wp寫了 一道misc題簽到題,相當於猜拳遊戲 剛開始做的時候還卡了我挺長時間,準備暴力跑的話,理論上最多要試3 30次。然而試了幾次發現,每次進入遊戲,第乙個只要輸和它給的一樣的,都是win。這說明這題其實不是隨機的,然後多試...