C 競賽 B yyy的回文陣列

2021-09-28 10:03:04 字數 1032 閱讀 7031

時間限制:1s 記憶體限制:32mb

問題描述

回文串是乙個正讀和反讀都一樣的字串,比如level或者noon就是回文串。回文陣列也是如此,比如[100,200,100]或者[178,256,256,178]就是回文陣列,[1,2,3]和[100,200]不是回文陣列。

現在yyy有乙個陣列,他想僅僅通過合併操作將陣列轉換為回文陣列,

合併操作:將陣列中相鄰兩個的數合併為乙個數,合併後的數為合併前兩個數的和。例如[1,2,3]通過一次合併操作即可變成回文陣列[3,3]。

輸入描述

第一行乙個整數t(1≤t≤10)表示資料組數。

對於每組資料第一行乙個整數n(1≤n≤〖10〗^5),表示陣列的長度。

第二行n個整數a_1,a_2,…,a_n (1≤a_i≤10000)分別表示陣列中的每個數。

輸出描述

對於每組資料輸出一行:乙個整數表示最少的合併次數。

輸入樣例

1 3

1 2 3

輸出樣例

1 【題目鏈結】:

【題解】

用兩個指標,哪個指標指的數字小;則那個指標往中間的方向合併(相鄰的);

如果數字相同則兩個指標都往中間靠;

【完整**】

#include 

#define rep1(i,a,b) for (int i = a;i <= b;i++)

using

namespace

std;

#define pb push_back;

long

long num[100005];

int main()

int l = 1,r = n;

while(1)

else

if(num[r]1] = num[r] + num[r-1];

r--;

ans++;

}else

if(l>=r) break;

}cout

0;}

東華OJ 一維陣列競賽 雙重回文數

日常zb 這oj確實看運氣的嗎,之前抽到的題一點思路都沒有,現在都輕輕鬆鬆 bushi 我自己分解為 1.回文數處理。2.連續進製轉換。3.好像沒了。解決方法 1.我自己的做法喜歡空間換時間,準備兩個等長陣列。然後將第乙個陣列存正序,另乙個存逆序。最後for迴圈比較每一項即可。2.連續進製轉換。因為...

C 實現回文檢測的方法

回文程式設計客棧 稱正讀和反讀都相同的字串行為 回文 如 abba abccba 12321 123321是 回文 abcde 和 ababab 則不是 回文 console.w程式設計客棧rityrukteline 演算法 請輸入乙個字串!string str console.readline s...

演算法競賽中 C 常用方便的函式

目錄 builtin popcount builtin popcountll next permutation p,p n lower bound up bound assert bool a 二進位制運算子 64位最大數的邊界 字串函式 priority queue unique 計算32位二進位...