美麗序列(暴力dp)

2021-09-25 21:43:58 字數 1010 閱讀 7241

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 524288k,其他語言1048576k

64bit io format: %lld

第一行輸入乙個整數n (1 ≤ n ≤ 40)

第二行輸入n個整數

輸出乙個整數
示例1

複製

2

3 -1

複製

4
示例2

複製

3

5 3 -1

複製

2
示例3

複製

3

-1 0 40

複製

0
示例4

複製

11

-1 40 -1 -1 -1 10 -1 -1 -1 21 -1

複製

579347890
子任務1: n <= 10

子任務2: n <= 20

子任務3: 無限制

缺啥補啥

dp[i][j][flag][sum]處理完前i位,以j結尾,第flag個遞減數,和為sum

暴力~~~

本地跑樣例都有點慢,交上去竟然過了

#includeusing namespace std;

typedef long long ll;

const int mod=1e9+7;

ll dp[45][45][3][1605];

int a[45];

int main()

else dp[1][a[1]][1][a[1]]=1;

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

else }}

}} else

else }}

} } ll ans=0;

for(int j=0;j<=40;j++)

} printf("%lld\n",ans);

return 0;

}

暴力 分治 貪心 DP 最大子串行和

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6 暴力 暴力列舉所有可能的連續子陣列,演算法複雜度o n 3 演算法1 1 int maxsubs...

美麗序列(動態規劃)

第一行輸入乙個整數n 1 n 40 第二行輸入n個整數輸出乙個整數示例1 2 3 14示例2 5 3 1 2示例3 3 1 0 400示例4 11 1 40 1 1 1 10 1 1 1 21 1579347890子任務1 n 10 子任務2 n 20 子任務3 無限制 解題思路 按照動態規劃的一般...

序列合併(暴力 剪枝)

題目描述 有兩個長度都是n的序列a和b,在a和b中各取乙個數相加可以得到n 2個和,求這n 2個和中最小的n個。輸入第一行乙個正整數n 第二行n個整數ai,滿足ai ai 1且ai 10 9 第三行n個整數bi,滿足bi bi 1且bi 10 9.輸出僅一行,包含n個整數,從小到大輸出這n個最小的和...