方方是個壞孩子
方方是乙個調皮的孩子,每天到處搞破壞把妹子,鄰居都討厭他。一天
方方不小心把鄰居
老姚神的魔法棒給摔成了n段,長度分別為a0,a
1,……,a
n-1。方方雖然調皮,但還是不敢招惹可怕的
老姚神,修復魔棒是如此的艱難,只能請求另乙個鄰居
哈利波特大
用魔法把魔棒修復,但
哈利波特大
正在忙著統計霍格沃茨的男女比例,沒有太多時間幫
方方修魔棒,只答應只為
方方使用一次魔法。
哈利波特大
的魔法很奇怪,魔法只能把一段
連續的魔棒片段連在一起,並且連線的片段的長度之和必須為p的倍數,(例如n=6,p=11,a0到a
n-1分別為11,11,1,6,7,9,
哈利波特大
可以把a0和a
1連在一起,或者把a
3, a
4, a
5連在一起),注意
老姚神的魔棒必須按順序接,也就是說,
方方不能隨意改動a
0, a
1,... a
n-1的順序。
方方想把盡可能多的魔法棒片段連在一起,現在想找你幫忙。
第一行包含乙個正數 t (t <= 50),表示資料組數。
接下來每組資料報含兩行。
第一行包含兩個整數 n, p (1<=n<=100000, 1<=p<=11),代表魔法棒有n段,連線的長度之和必須為p的倍數。
第二行包含n個正整數分別表示a0,a1……,a(n-1),(1 <= ai <= 1000, 0 <= i < n)。
對於每組資料輸出一行,表示能最多能連線起來的魔棒片段個數。.
56 11
11 11 1 6 7 9
1 21
1 33
10 2
1 2 3 4 5 6 7 8 9 10
4 31 2 3 431
193注意在第二組樣例中,事實上魔法根本無法施展,但是答案是1,因為即使不使用魔法,片段也是乙個乙個的~
#include#include#include#include#define n 100005
const int p=15;
int a[n],sum; //定義 sum(第i個sum)= (a[1] + a[2] +... + a[i]) 稱為i位置的字首和。 (1 <= i <= n),特別的有sum[0] = 0。
int front[p]; //front[i]代表最小的下標x,使得sum[x] % p = i,rear[i]則代表最大的下標x滿足相同的條件。列舉答案即可;
int rear[p];
int max(int a,int b)
int main()
{ int t,i,n,p;
scanf("%d",&t);
while(t--)
{ scanf("%d%d",&n,&p);
sum=0;
for(i=0;i
1901 賞賜 OR 災難
time limit 1 sec memory limit 128 mb submitted 418 solved 110 大g南征北戰終於打下了大片土地成立了g國,大g在開國大典上傳召幫助自己南征北戰的三大開國元勳小a,小b,小c進殿,並要賞賜三人大量寶物以顯示天恩浩蕩。大g在征服其他國家的時候搶...
vue 使用技巧總結 19 01
上面的函式中使用箭頭,會導致 this 捕獲不到 vue 例項。各位道友切記切記.目前通常使用的方式是 然後在查資料的時候翻到了乙個統一管理的方式 asynccomponent.js 檔案 export const component01 import views export const comp...
UESTC 我要長高
題意是 就是題目描述的那樣了吧 題意很顯而易見,一眼dp題 dp i j 代表第i個人身高為j時的最小消耗,dp i j min dp i 1 k abs j k c j h i 2 複雜度o n h i 2 很明顯有點大,學習了一下單調佇列優化dp之後,發現形如dp i min max dp j ...