2018牛客多校第一場 dp Removal

2021-08-25 19:20:15 字數 648 閱讀 1663

參考部落格

題意:乙個陣列s,長度為n(n≤1e5),陣列元素s[i]≤10, 要求從中刪除m(m≤10)個數字,求能得到多少個不重複的結果, mod 1e9+7

思路

注意坑點在二維陣列的初始化,直接 szieof(dp)是不行的

還有取模也需要略微注意,只要遇到減法,就要進行先加後取模。

#include 

#include

using

namespace

std;

int n,m,k;

const

int n = 1e5+127;

int a[n],pre[n],pos[n];

int dp[n][100];

const

int mod = 1e9+7;

int main()

dp[0][0]= 1;

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

dp[i][j] = (dp[i][j]+mod)%mod;}}

cout

0;}

2018 牛客多校第一場J

題意 就是給了乙個陣列a,和q個查詢l,r,問 a1 al,ar an中有多少個不同的數字 題解 首先把陣列a拷貝乙份拼接起來,這樣兩個區間 a1 al,ar an 就合併成乙個區間 ar al n 之後就是問區間上不同的數字個數,經典的題方法看這個 在陣列上將數字i出現最後乙個位置 置為1,然後就...

2018 牛客多校第一場 D

題目 題意 給你乙個小圖,乙個大圖。問你在大圖中能找到多少個形狀和小圖一樣的。思路 因為n為8,我們可以暴力找,全排列把所有情況找到,再把可行的狀態用二進位制表示,用map對映防止重複 includeusing namespace std define ll long long int mp1 11...

2018牛客多校第一場 E Removal dp

戳這裡 題意 長度為n的序列,刪掉m個數字後有多少種不同的序列。n 10 5,m 10。題解 dp i j 表示加入第i個數字後,總共刪掉j個數字時,有多少種不同的序列。假設不考慮有重複的情況,dp方程為 dp i j dp i 1 j 第i個數字不刪 dp i 1 j 1 第i個數字刪 現在考慮重...